في السابق، كان يتم تضمين العنوان User-Agent في طلبات عروض الأسعار لتقديم بيانات استهداف مفيدة، مثل المتصفّح والنظام الأساسي للجهاز المُشغِّل. ومع ذلك، غالبًا ما تُخفِي المتصفّحات User-Agent بشكل كبير بسبب صعوبة استخدامه ولحماية خصوصية المستخدم بشكل أفضل. استجابةً لذلك، تتيح Google استخدام تعديلات برنامج وكيل المستخدم، والتي يتم تضمينها في طلبات عروض الأسعار عند توفّرها لتكملة عنوان User-Agent. يمكن الحصول على "إشارات العميل" هذه (اختصارًا) من رؤوس Sec-Ch-UA* أو من Javascript Client Hints API.
يتم عرض رأس User-Agent كسلسلة في الحقل BidRequest.device.ua
.
سيتمّ تعبئة رسالة UserAgent
بـ "إشارات العميل" عندما تكون متاحة، ولكن سيتمّ
تعبئتها بخلاف ذلك استنادًا إلى القيم التي تمّ تحليلها من عنوان User-Agent. يتم عرض هذه القيمة
في حقل BidRequest.device.sua
.
ننصحك بشدة باستخدام رسالة UserAgent
بدلاً من سلسلة وكيل المستخدم.
كيفية تعبئة UserAgent
على عكس عنوان User-Agent، تمثّل رسالة UserAgent
معلومات وكيل المستخدم
المقسّمة إلى حقول متعددة للحصول على معلومات محدّدة.
استنادًا إلى ما إذا كانت "ملاحظات العميل" متاحة في طلب الإعلان، يمكن تعبئة رسالة
UserAgent
بالطُرق التالية:
- إذا كان الطلب يحتوي على ملاحظات العميل
ذات التشويش المنخفض
على الأقل، تتم تعبئة
UserAgent
استنادًا إلى محتوياتها. - إذا كان الطلب يحتوي على رأس User-Agent فقط، تتم تعبئة
UserAgent
استنادًا إلى ما يمكن تحليله من العنوان.
مثال: تعبئة UserAgent
استنادًا إلى عنوان User-Agent
لنفترض أنّ هناك طلب إعلان يُرسِل فيه المتصفّح العناوين التالية:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
قد يبدو UserAgent
الذي تمّ ملؤه استنادًا إلى عنوان User-Agent فقط على النحو التالي:
browsers: [{ brand: "Mozilla", version: ["5", "0"] },
{ brand: "AppleWebKit", version: ["537", "36"] },
{ brand: "Chrome", version: ["103", "0", "0", "0"] },
{ brand: "Safari", version: ["537", "36"] }],
platform: { brand: "Windows NT", version: ["10", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
model: "x64",
source: USER_AGENT_STRING
مثال: تعبئة UserAgent
استنادًا إلى "إشارات العميل"
لنفترض أنّ هناك طلب إعلان يُرسِل فيه المتصفّح العناوين التالية:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Sec-Ch-Ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"
Sec-Ch-Ua-Arch: x86
Sec-Ch-Ua-Full-Version: 103.0.5060.134
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: Windows
Sec-Ch-Ua-Platform-Version: 15.0.0
في الحالات التي يتم فيها تضمين Client Hints ذات إنتروبيا منخفضة على الأقل، سيتمّ ملء UserAgent
استنادًا إلى محتوى هذه الرؤوس حتى في حال توفّر رؤوس User-Agent. سيظهر على النحو التالي:
browsers: [{ brand: ".Not/A)Brand", version: ["99", "0", "0", "0"] },
{ brand: "Google Chrome", version: ["103", "0", "5060", "134"] },
{ brand: "Chromium", version: ["103", "0", "5060", "134"] }],
platform: { brand: "Windows", version: ["15", "0", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
source: CLIENT_HINTS_HIGH_ENTROPY
تعبئة البيانات استنادًا إلى عنوان User-Agent بدلاً من Client Hints
تتم تعبئة بعض الحقول بشكل مختلف حسب ما إذا كانت تستند إلى عنوان User-Agent أو Client Hints. في ما يلي ملخّص لهذه الاختلافات:
- بالنسبة إلى المتصفّحات والمنصات المتطابقة، غالبًا ما يختلف
UserAgent.browsers.brand
وUserAgent.platform.brand
بينUserAgent
استنادًا إلى عنوان User-Agent أو Client Hints. على سبيل المثال،UserAgent.platform.brand
قد يظهر على أنّه "Windows NT" إذا كان يستند إلى عنوان User-Agent، أو "Windows" إذا كان يستند إلى Client Hints. - تكون بعض إدخالات
UserAgent.browsers
فريدة لعنوان User-Agent أو لتعديلات العميل. على سبيل المثال، سيظهر "AppleWebKit" إذا كانUserAgent
يستند إلى عنوان User-Agent، بينما لن يظهر "Chromium" إلا إذا كان يستند إلى Client Hints. - لا يمكن أن يحتوي سوى
UserAgent
استنادًا إلى عنوان User-Agent على قيم مجمّدة. على سبيل المثال، إذا كان النظام الأساسي هو Windows 11 22H2، سيتم ضبطUserAgent.platform.brand
على "Windows NT" وUserAgent.platform.version
على[“10”, “0”]
لأنّه القيمة المجمّدة لأي إصدار من Windows 10 أو إصدار أحدث.
إنّ البيانات في UserAgent
التي تستند إلى "ملاحظات العميل" لن تكون عادةً
بديلاً غير دقيق للمعلومات المجمّدة أو المحذوفة. في حال توفّر أي اختلاف بين عنوان User-Agent وUserAgent
استنادًا إلى Client
Hints، يجب تفضيل المعلومات الواردة من UserAgent
.
حقول عنصر وكيل المستخدم
يلخّص هذا القسم كل حقل، مع التركيز على سلوك "الاستجابة للعروض الترويجية من Google" العميق وأفضل الممارسات المتعلّقة باستخدامه.
المتصفحات
يحتوي على قائمة بتسجيلات
BrandVersion
التي يتم ترتيبها بشكل عام حسب النوع. على سبيل المثال، إذا أردت
إدراج محتوى browsers
، قد تظهر brand
لكل إدخال
بالترتيب التالي:
العلامة التجارية | المعنى |
برنامج المتصفح Mozilla | متوافقة مع Mozilla |
AppleWebKit | يستند إلى AppleWebKit، وهو مجموعة فرعية من Mozilla. |
Chrome | متصفّح Chrome، وهو مجموعة فرعية من المتصفّحات المتوافقة مع AppleWebKit |
Safari | نسخة أجهزة الكمبيوتر المكتبي، في مقابل الأجهزة الجوّالة |
لن يُدرج UserAgent
المتصفّحات دائمًا بأي ترتيب محدّد، خاصةً
إذا كان يستند إلى Client Hints. في ما يلي وصف للاختلافات الأخرى
التي يمكنك توقّعها استنادًا إلى قيمة source
:
USER_AGENT
: قد يتم تقليل حقلversion
إلى إصدار رئيسي أو تجميده (يعتمد ذلك على السياسة الخاصة بموظف الدعم). يُرجى العِلم أنّه لن يظهر أي إشارة تدل على تجميد القيمة.-
CLIENT_HINTS_LOW_ENTROPY
وCLIENT_HINTS_HIGH_ENTROPY
: لا يتم ترتيب الإدخالات حسب أي معايير. على سبيل المثال، قد يرسل المتصفّح نفسه هذه الادخالات بترتيبات مختلفة في كل طلب. وقد تحتوي أيضًا على إدخال GREASE، والذي ينبغي تجاهله. CLIENT_HINTS_HIGH_ENTROPY
: قد يتم ضبط جميع حقولversion
في المتصفّحات على الإصدارات الكاملة.
النظام الأساسي
إدخال BrandVersion
يصف المنصة قد لا يكون ذلك متوافقًا مع عنوان User-Agent
و"ملاحظات العميل"، لذا قد يتطلّب استهداف بعض المنصّات اختبار
اسمَين. على سبيل المثال، يتم وضع علامة تجارية على نظام التشغيل Macintosh من Apple باسم
"Macintosh" في عنوان User-Agent، ولكن باسم "macOS" في Client Hints.
في ما يلي وصف للاختلافات الأخرى التي يمكنك توقّعها استنادًا إلى
قيمة source
:
USER_AGENT
: قد يتم تقليل حقلversion
إلى إصدار رئيسي أو تجميده. يُرجى العلم أنّه لن تظهر أي إشارة إلى أنّ القيمة تم تجميدها.CLIENT_HINTS_LOW_ENTROPY
: لن تتم تعبئة حقلversion
.CLIENT_HINTS_HIGH_ENTROPY
: يمكن ضبط الحقلversion
على الإصدار المتكامل.
الجهاز الجوّال
يشير إلى ما إذا كان يجب تحسين المحتوى، مثل الإعلانات، للتوافق مع الشاشات الصغيرة و/أو استخدام شاشة اللمس. يُرجى العِلم أنّ هذا الإجراء ليس بالضرورة مؤشرًا على نوع الجهاز، لأنّه يمكن ضبط متصفحات الأجهزة الجوّالة لطلب "موقع إلكتروني متوافق مع أجهزة الكمبيوتر المكتبي".
الهندسة المعمارية
يحدِّد بنية النظام الأساسي، مثل "x86" أو "arm".
بالنسبة إلى UserAgent
المستنِد إلى Client Hints، يُرجى العِلم أنّه لن تتم تعبئة هذا الحقل إلا عند ضبط source
على CLIENT_HINTS_HIGH_ENTROPY
.
عدد وحدات البت
تُحدِّد عدد بتات النظام الأساسي، مثل ما إذا كان يحتوي على وحدة معالجة مركزية (CPU) 32 بت أو 64 بت. الحقل هو سلسلة عدد صحيحة تقدّم معلومات إضافية عن بنيته، على سبيل المثال، يمكن ضبط عدد البتات في بنية "x86" على إما "32" أو "64".
بالنسبة إلى UserAgent
المستنِد إلى Client Hints، يُرجى العِلم أنّه لن تتم تعبئة هذا الحقل إلا عند ضبط source
على CLIENT_HINTS_HIGH_ENTROPY
.
الطراز
لتحديد طراز الجهاز بالنسبة إلى الأجهزة الجوّالة، أي غير أجهزة الكمبيوتر المحمول أو أجهزة الكمبيوتر المكتبي، سيتم ملء هذا الحقل باسم طراز مثل "Pixel 6 Pro".
يوضّح ما يلي الاختلافات التي يمكنك توقّعها استنادًا إلى
قيمة source
:
USER_AGENT
- الأجهزة غير الجوّالة: سيحتوي حقل
model
غالبًا على قيمة ملفتة للبنية وعدد البتات، مثل "x64" لنظام التشغيل Windows. لا يمكن استخدام هذه القيمة على جميع المنصات. على سبيل المثال، قد يستخدم نظام التشغيل Linux القيمة "x86_64" للأجهزة نفسها. - الأجهزة الجوّالة: لن يتضمّن هذا الحقل البنية وعدد البتات.
إذا كنت مهتمًا بهذه القيم، اطّلِع على
UserAgent.architecture
وUserAgent.bitness
.
- الأجهزة غير الجوّالة: سيحتوي حقل
CLIENT_HINTS_LOW_ENTROPY
: لن تتم تعبئة حقلmodel
.CLIENT_HINTS_HIGH_ENTROPY
: لن يتم ملء حقلmodel
إلا لتحديد طراز الجهاز على الأجهزة الجوّالة. لم يتم ضبط أي قيمة لمنصّات أجهزة الكمبيوتر المكتبي.
المصدر
لتحديد العناوين التي تم استخدامها لإنشاء UserAgent
. بالنسبة إلى Client Hints،
يميز هذا أيضًا بين الحالتَين التاليتَين:
CLIENT_HINTS_LOW_ENTROPY
: تتوفّر حقول معلومات العميل الأساسية فقط.CLIENT_HINTS_HIGH_ENTROPY
: تتوفّر "إشارات العميل"، بما في ذلك حقل واحد على الأقل مصنّف على أنّه ذو بيانات عشوائية عالية.