فعال کردن شبکه تبلیغاتی شما برای کار با ویژگیهای جستجوی Google مرتبط با ترجمه
جستجوی Google چندین ویژگی های مرتبط با ترجمه را ارائه می دهد که کاربران را قادر می سازد به محتوای ترجمه شده دسترسی داشته باشند. اگر یک شبکه تبلیغاتی اجرا می کنید و تبلیغات شما نیست کار کردن به درستی روی صفحات وب ترجمه شده، باید مراحل این راهنما را دنبال کنید مطمئن شوید که تبلیغات شما به درستی نمایش داده می شود یا مشخص می شود.
رویکرد ما
وقتی کاربران به محتوای ترجمه شده ارائه شده توسط Google دسترسی پیدا می کنند ترجمه از داخل نتایج جستجو، Google صفحه را از ناشر بازیابی می کند، بازنویسی می کند URL منبع، و صفحه وب را پس از کلیک کاربر بر روی نتیجه ترجمه شده ترجمه می کند.
URL مترجم گوگل را به URL اصلی تبدیل کنید
اگر شبکه تبلیغاتی را اجرا می کنید که به URL منبع ناشر متکی است، باید آن را تبدیل کنید. URL مترجم گوگل برای اطمینان از اینکه تبلیغات شما به درستی کار می کند. این مراحل را برای رمزگشایی نام میزبان ناشر دنبال کنید:
- با حذف پسوند
.translate.goog، پیشوند دامنه را از نام میزبان استخراج کنید. - پارامتر
_x_tr_encرا با نویسه,(کاما) تقسیم کنید و آن را به عنوانencoding_listذخیره کنید. - در صورت وجود، مقدار پارامتر
_x_tr_hpرا به پیشوند دامنه اضافه کنید. - اگر
encoding_listحاوی1باشد و خروجی با1-شروع شود،1-پیشوند از خروجی مرحله 2. - اگر
encoding_listحاوی0باشد و خروجی با0-شروع شود،0-پیشوند از خروجی مرحله 3. اگر پیشوند را حذف کردید،is_idnرا رویtrueتنظیم کنید. در غیر این صورت،is_idnرا رویfalseتنظیم کنید. -
/\b-\b/(regex) را با نویسه.(نقطه) جایگزین کنید. - کاراکتر
--(دو خط تیره) را با نویسه-(فاصله) جایگزین کنید. - اگر
is_idnرویtrueتنظیم شده است، پیشوند punycodexn--را اضافه کنید. - اختیاری: تبدیل به یونیکد.
نمونه کد جاوا اسکریپت برای رمزگشایی نام میزبان از URL مترجم گوگل
function decodeHostname(proxyUrl) {
const parsedProxyUrl = new URL(proxyUrl);
const fullHost = parsedProxyUrl.hostname;
// 1. Extract the domain prefix from the hostname, by removing the
".translate.goog" suffix
let domainPrefix = fullHost.substring(0, fullHost.indexOf('.'));
// 2. Split _x_tr_enc parameter by "," (comma), save as encodingList
const encodingList = parsedProxyUrl.searchParams.has('_x_tr_enc') ?
parsedProxyUrl.searchParams.get('_x_tr_enc').split(',') :
[];
// 3. Prepend value of _x_tr_hp parameter to the domain prefix, if it exists
if (parsedProxyUrl.searchParams.has('_x_tr_hp')) {
domainPrefix = parsedProxyUrl.searchParams.get('_x_tr_hp') + domainPrefix;
}
// 4. Remove '1-' prefix from the output of step 2 if encodingList contains
// '1' and the output begins with '1-'.
if (encodingList.includes('1') && domainPrefix.startsWith('1-')) {
domainPrefix = domainPrefix.substring(2);
}
// 5. Remove '0-' prefix from the output of step 3 if encodingList contains
// '0' and the output begins with '0-'.
// Set isIdn to true if removed, false otherwise.
let isIdn = false;
if (encodingList.includes('0') && domainPrefix.startsWith('0-')) {
isIdn = true;
domainPrefix = domainPrefix.substring(2);
}
// 6. Replace /\b-\b/ (regex) with '.' (dot) character.
// 7. Replace '--' (double hyphen) with '-' (hyphen).
let decodedSegment =
domainPrefix.replaceAll(/\b-\b/g, '.').replaceAll('--', '-');
// 8. If isIdn equals true, add the punycode prefix 'xn--'.
if (isIdn) {
decodedSegment = 'xn--' + decodedSegment;
}
return decodedSegment;
}
URL را بازسازی کنید
- با استفاده از URL صفحه اصلی، نام میزبان را با نام میزبان رمزگشایی شده جایگزین کنید.
- همه پارامترهای
_x_tr_*را حذف کنید.
کد خود را تست کنید
با استفاده از جدول زیر می توانید تست های واحد برای کد خود ایجاد کنید. با توجه به proxyUrl،
decodeHostname باید با مقدار مورد انتظار مطابقت داشته باشد.
از جدول زیر فقط می توان برای آزمایش رمزگشایی نام میزبان استفاده کرد. شما باید از آن اطمینان حاصل کنید مسیر، قطعه و پارامترهای اصلی URL همانطور که هست حفظ می شوند.
proxyUrl
|
decodeHostname
|
|---|---|
https:/
|
example.
|
https:/
|
foo.
|
https:/
|
foo-example.
|
https:/
|
xn--57hw060o.
|
https:/
|
en-us.
|
https:/
|
xn--en--w45as309w.
|
https:/
|
xn----16pw588q.
|
https:/
|
llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.
|
https:/
|
www.
|
https:/
|
a-xn-xn-xn-xn-xn-------------aa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
|
https:/
|
xn--g5h3969ntadg44juhyah3c9aza87iiar4i410avdl8d3f1fuq3nz05dg5b.
|