Google Tìm kiếm không chỉ giúp người dùng tiếp cận thông tin dễ dàng mà còn cung cấp các tính năng dịch thuật, cho phép truy cập nội dung đã dịch từ các ngôn ngữ khác nhau. Tuy nhiên, nếu bạn điều hành một mạng quảng cáo, việc quảng cáo không hiển thị đúng cách trên các trang đã dịch có thể là một vấn đề lớn. Bài viết này sẽ hướng dẫn chi tiết cách giúp mạng quảng cáo của bạn hoạt động hiệu quả và chính xác khi người dùng truy cập vào các trang web đã dịch thông qua Google Tìm kiếm.
Google Tìm kiếm cung cấp nhiều tính năng liên quan đến dịch thuật, cho phép người dùng truy cập nội dung đã dịch một cách dễ dàng. Tuy nhiên, nếu bạn đang quản lý một mạng quảng cáo và nhận thấy rằng quảng cáo của bạn không hiển thị đúng cách trên các trang web đã dịch, thì cần thực hiện theo các hướng dẫn dưới đây để đảm bảo quảng cáo được hiển thị và phân bổ chính xác.
Phương pháp xử lý
Khi người dùng truy cập vào nội dung đã dịch từ Google Dịch thông qua kết quả tìm kiếm, Google sẽ lấy trang từ nhà xuất bản, viết lại URL nguồn và sau đó dịch trang sau khi người dùng nhấp vào kết quả đã dịch.
Chuyển đổi URL từ Google Dịch về URL gốc
Nếu mạng quảng cáo của bạn dựa trên URL gốc của nhà xuất bản, việc chuyển đổi URL do Google Dịch cung cấp là cần thiết để đảm bảo quảng cáo hiển thị đúng cách. Dưới đây là các bước chi tiết để giải mã tên máy chủ của nhà xuất bản:
- Trích xuất tiền tố miền: Xóa hậu tố
.translate.googtừ tên máy chủ để lấy tiền tố miền. - Tách thông số _x_tr_enc: Phân tách thông số này theo dấu phẩy và lưu lại dưới dạng
encoding_list. - Thêm giá trị của thông số _x_tr_hp: Nếu thông số này tồn tại, thêm giá trị của nó vào tiền tố miền.
- Xử lý tiền tố 1-: Nếu
encoding_listchứa1và kết quả bắt đầu bằng1-, xóa tiền tố1-khỏi kết quả. - Xử lý tiền tố 0-: Nếu
encoding_listchứa0và kết quả bắt đầu bằng0-, xóa tiền tố0-khỏi kết quả và đặt giá trịis_idnthànhtrue. Nếu không, đặtis_idnthànhfalse. - Thay thế ký tự đặc biệt: Sử dụng biểu thức chính quy để thay thế ký tự
-bằng dấu chấm.. - Thay thế dấu gạch nối đôi: Thay dấu gạch nối đôi
--bằng dấu gạch ngang-. - Thêm tiền tố punycode: Nếu
is_idnlàtrue, thêm tiền tố punycodexn--vào tên miền. - Chuyển đổi sang Unicode (tùy chọn): Cuối cùng, nếu cần, bạn có thể chuyển đổi tên miền đã giải mã sang định dạng Unicode.
Mã JavaScript mẫu để giải mã tên máy chủ từ URL của Google Dịch
function decodeHostname(proxyUrl) {
const parsedProxyUrl = new URL(proxyUrl);
const fullHost = parsedProxyUrl.hostname;// 1. Trích xuất tiền tố miền từ tên máy chủ bằng cách xóa hậu tố “.translate.goog”let domainPrefix = fullHost.substring(0, fullHost.indexOf(‘.’));
// 2. Tách tham số _x_tr_enc bằng dấu phẩy và lưu lại dưới dạng encodingListconst encodingList = parsedProxyUrl.searchParams.has(‘_x_tr_enc’) ?
parsedProxyUrl.searchParams.get(‘_x_tr_enc’).split(‘,’) :
[];
// 3. Thêm giá trị của tham số _x_tr_hp vào tiền tố miền, nếu tham số này tồn tại
if (parsedProxyUrl.searchParams.has(‘_x_tr_hp’)) {
domainPrefix = parsedProxyUrl.searchParams.get(‘_x_tr_hp’) + domainPrefix;
}
// 4. Xóa tiền tố ‘1-‘ khỏi kết quả của bước 2 nếu encodingList chứa ‘1’ và kết quả bắt đầu bằng ‘1-‘
if (encodingList.includes(‘1’) && domainPrefix.startsWith(‘1-‘)) {
domainPrefix = domainPrefix.substring(2);
}
// 5. Xóa tiền tố ‘0-‘ khỏi kết quả của bước 3 nếu encodingList chứa ‘0’ và kết quả bắt đầu bằng ‘0-‘
// Đặt giá trị isIdn thành true nếu đã xóa tiền tố, nếu không thì đặt thành false
let isIdn = false;
if (encodingList.includes(‘0’) && domainPrefix.startsWith(‘0-‘)) {
isIdn = true;
domainPrefix = domainPrefix.substring(2);
}
// 6. Thay thế biểu thức chính quy /\b-\b/ bằng ký tự ‘.’
// 7. Thay thế ‘–‘ (dấu gạch nối đôi) bằng ‘-‘
let decodedSegment =
domainPrefix.replaceAll(/\b-\b/g, ‘.’).replaceAll(‘–‘, ‘-‘);
// 8. Nếu isIdn là true, thêm tiền tố punycode ‘xn--‘
if (isIdn) {
decodedSegment = ‘xn--‘ + decodedSegment;
}
return decodedSegment;
}
Tạo lại URL
- Sử dụng URL gốc của trang và thay thế tên máy chủ bằng tên máy chủ đã được giải mã.
- Hãy loại bỏ tất cả các tham số x_tr* để đảm bảo URL hoạt động bình thường.
Kiểm tra mã
Bạn có thể tạo các bài kiểm thử đơn vị cho mã bằng cách sử dụng bảng dưới đây. Với mỗi proxyUrl, hàm decodeHostname phải trả về kết quả khớp với giá trị mong đợi.
Bảng này chỉ sử dụng để kiểm tra kết quả giải mã tên máy chủ. Đảm bảo rằng các thành phần khác của URL như đường dẫn, phân đoạn và các tham số gốc được giữ nguyên.
Việc phối hợp mạng quảng cáo với các tính năng dịch thuật của Google Tìm kiếm là yếu tố quan trọng để đảm bảo quảng cáo của bạn hiển thị chính xác và hiệu quả. Bằng cách hiểu rõ cách Google xử lý các trang đã dịch và áp dụng đúng các bước chuyển đổi URL, bạn có thể tối ưu hóa mạng quảng cáo của mình để đạt hiệu suất tốt nhất, đồng thời cung cấp trải nghiệm người dùng mượt mà và liền mạch.
