Google Search proporciona varias funciones relacionadas con la traducción que permiten a los usuarios acceder al contenido traducido. Si su red publicitaria no funciona correctamente en las páginas web traducidas, debe seguir las recomendaciones dadas en este manual para que sus anuncios se muestren correctamente y los atributos se adjunten correctamente.
Cuando los usuarios recurren al contenido traducido proporcionado por Google Translate de los resultados de búsqueda, Google recibe una página del editor, cambia la URL de origen y traduce la página web después de que el usuario hizo clic en el resultado traducido.
Si su red publicitaria depende del editor de URL inicial, debe convertir la URL Google Translate para que los anuncios se muestren correctamente. Siga estos pasos para decodificar el nombre del host del editor:
function decodeHostname(proxyUrl) {
const parsedProxyUrl = new URL(proxyUrl);
const fullHost = parsedProxyUrl.hostname;
// 1. Извлеките префикс домена из имени хоста, удалив суффикс ".translate.goog"
let domainPrefix = fullHost.substring(0, fullHost.indexOf('.'));
// 2. Разделите параметр _x_tr_enc на части, используя запятую, и сохраните как encodingList
const encodingList = parsedProxyUrl.searchParams.has('_x_tr_enc') ?
parsedProxyUrl.searchParams.get('_x_tr_enc').split(',') : [];
// 3. Добавьте значение параметра _x_tr_hp к префиксу домена, если оно существует
if (parsedProxyUrl.searchParams.has('_x_tr_hp')) {
domainPrefix = parsedProxyUrl.searchParams.get('_x_tr_hp') + domainPrefix;
}
// 4. Удалите префикс '1-' из результата шага 2, если encodingList содержит '1' и результат начинается с '1-'.
if (encodingList.includes('1') && domainPrefix.startsWith('1-')) {
domainPrefix = domainPrefix.substring(2);
}
// 5. Удалите префикс '0-' из результата шага 3, если encodingList содержит '0' и результат начинается с '0-'.
// Установите isIdn в true, если префикс был удален, в false в противном случае.
let isIdn = false;
if (encodingList.includes('0') && domainPrefix.startsWith('0-')) {
isIdn = true;
domainPrefix = domainPrefix.substring(2);
}
// 6. Замените /-/ на точку (.)
// 7. Замените двойное тире на одно тире.
let decodedSegment = domainPrefix.replaceAll(/-/g, '.').replaceAll('--', '-');
// 8. Если isIdn равно true, добавьте префикс 'xn--'.
if (isIdn) {
decodedSegment = 'xn--' + decodedSegment;
}
return decodedSegment;
}
Puede crear pruebas unitarias para su código utilizando la siguiente tabla. Al enviar proxyUrl, la función DecodeHostName debería devolver el valor esperado.
La siguiente tabla se usa solo para probar el nombre del host. Es necesario asegurarse de que la ruta, el fragmento y los parámetros de URL originales se mantengan sin cambios.
| Proxyurl | DecodehostName |
|---|---|
| Https: // Ejemplo-kom. Translavita. Hogo | ejemplo.com |
| Https: // fo-exame-kom. Translavita. Hogog | Fu. Ejemplo.kom |
| Https: // fo --- Ejemplo-kom. Translavita. Hogog | Fooo-exame.kom |
| Https: //0-57xh060o-ko.salyt. Goog/? _C_tr_ents = 0 | HN-57XH060O.K. |
| https: // 1-en-us-exame-com/? _x_tr_enc = 1 | En-USA Exmple.k. |
| https: //lanfairpwlgwyngylgogogogorychwyrndrobwllantyogogógogo-co-uk.translate .goog/? _ x_tr_hp = lllanfairpwlgwyngylgogogogoGorndrobwllantysiliogogoch.co.uk | Lllanfirepvlgvalgogergartychyrndrovlelandiliogogoch.so.uk |
Si tiene preguntas sobre la integración de transferencias en su sitio y la visualización correcta de publicidad, puede comunicarse con la compañía SEO.COMPUTER SEO para cualquier problema por correo electrónico info@seo.computer O en whatsapp +79202044461.
ID 168