تم في السابق تضمين عنوان وكيل المستخدم في طلبات عروض الأسعار لتوفير بيانات استهداف مفيدة، مثل متصفّح الجهاز ونظامه الأساسي الذي يبدأ بتشغيله. ومع ذلك، غالبًا ما تحجب المتصفحات وكيل المستخدم بشكل كبير بسبب صعوبة استخدامها ولحماية خصوصية المستخدم بشكل أفضل. استجابةً لذلك، تتيح Google استخدام ميزة User-Agent Client Hints، التي يتم تضمينها في طلبات عروض الأسعار عندما تكون متاحة لإكمال عنوان وكيل المستخدم. يمكن الحصول على تلميحات العميل هذه (باختصار) من عناوين Sec-Ch-UA* أو من Javascript Client Hints API.
وفقًا للبروتوكول المستخدَم، يتم عرض عنوان وكيل المستخدم مع أحد حقول السلسلة التالية:
- Google:
BidRequest.user_agent
- OpenRTB:
BidRequest.device.ua
ستتم تعبئة رسالة UserAgent
بـ "تلميحات العميل" عندما تكون
متاحة، ولكن ستتم تعبئتها استنادًا إلى القيم التي يتم تحليلها من
عنوان وكيل المستخدم. وفقًا للبروتوكول المستخدَم، سيظهر هذا الحقل كأحد الحقول التالية:
- Google:
BidRequest.user_agent_data
- OpenRTB:
BidRequest.device.sua
ننصح مقدِّمي عروض الأسعار بشدة باستخدام رسالة UserAgent
بدلاً من سلسلة وكيل المستخدم.
كيفية تعبئة UserAgent
على عكس عنوان وكيل المستخدم، تمثّل الرسالة UserAgent
معلومات وكيل المستخدم
مقسّمة إلى حقول متعددة للحصول على معلومات محدّدة.
استنادًا إلى ما إذا كانت "تلميحات العميل" متوفّرة في طلب الإعلان، يمكن تعبئة رسالة UserAgent
بالطرق التالية:
- إذا كان الطلب يحتوي على ما لا يقل عن
إنتروبيا
منخفضة تلميحات العميل، ستتم تعبئة
UserAgent
استنادًا إلى المحتوى. - إذا كان الطلب يحتوي على عنوان وكيل المستخدم فقط، ستتم تعبئة
UserAgent
بناءً على ما يمكن تحليله من العنوان.
مثال: تعبئة 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
قد يبدو عنوان UserAgent
الذي تتم تعبئته استنادًا إلى عنوان وكيل المستخدم فقط
على النحو التالي:
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
في الحالات التي تتضمّن فيها تلميحات عميل ذات قصور منخفض على الأقل، ستتم تعبئة UserAgent
استنادًا إلى محتوى هذه العناوين حتى في حال توفّر عناوين وكيل المستخدم. سيظهر على النحو التالي:
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
التعبئة استنادًا إلى عنوان وكيل المستخدم مقابل تلميحات العميل
تتم تعبئة بعض الحقول بشكل مختلف بناءً على ما إذا كانت تستند إلى عنوان وكيل المستخدم أو تلميحات العميل. في ما يلي ملخّص لهذه الاختلافات:
- بالنسبة إلى المتصفّحات والأنظمة الأساسية المتطابقة، ستختلف غالبًا
UserAgent.browsers.brand
وUserAgent.platform.brand
بينUserAgent
استنادًا إلى عنوان وكيل المستخدم أو تلميحات العميل. على سبيل المثال، قد يظهر الرمزUserAgent.platform.brand
بالصيغة "Windows NT" إذا كان يستند إلى عنوان وكيل المستخدم أو "Windows" إذا كان يستند إلى "تلميحات العميل". - تكون بعض إدخالات
UserAgent.browsers
فريدة لعنوان وكيل المستخدم أو لـ Client Hints. على سبيل المثال، سيظهر "AppleWebKit" إذا كانUserAgent
يستنِد إلى عنوان وكيل المستخدم، بينما سيظهر "Chromium" فقط إذا كانت تستند إلى "تلميحات العميل". - يمكن أن يحتوي
UserAgent
فقط المستنِد إلى عنوان وكيل المستخدم على قيم ثابتة. على سبيل المثال، إذا كان النظام الأساسي هو Windows 11 22H2، سيتم ضبطUserAgent.platform.brand
على "Windows NT" وضبطUserAgent.platform.version
على[“10”, “0”]
لأنّ هذه هي القيمة الثابتة لأي إصدار من إصدارات Windows في الإصدار 10 أو أعلى.
لن تكون عادةً البيانات في UserAgent
المستندة إلى "تلميحات العميل" بديلاً غير دقيق للمعلومات المجمّدة أو المخفية. إذا كان هناك أي اختلاف بين عنوان وكيل المستخدم وUserAgent
استنادًا إلى تلميحات
العميل، يجب تفضيل المعلومات الواردة من UserAgent
.
حقول عناصر UserAgent
يلخّص هذا القسم كل حقل، مع التركيز على السلوك المحدّد لعرض الأسعار في الوقت الفعلي (RTB) من 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
يصف النظام الأساسي. وقد لا يكون ذلك متوافقًا مع عنوان "وكيل المستخدم" و"تلميحات العميل"، لذلك قد يتطلب استهداف بعض الأنظمة الأساسية اختبار اسمَين. على سبيل المثال، تتم الإشارة إلى نظام تشغيل Macintosh من Apple باسم "Macintosh" في عنوان وكيل المستخدم، ولكن تتم الإشارة إلى "macOS" في Client Hints.
يوضّح ما يلي الاختلافات الأخرى التي يمكنك توقّعها استنادًا إلى قيمة source
:
USER_AGENT
: قد يتم تصغير الحقلversion
إلى إصدار رئيسي أو قد يتم تجميده. يُرجى العلم أنّه لن يكون هناك ما يشير إلى أنّ القيمة ثابتة.CLIENT_HINTS_LOW_ENTROPY
: لن تتم تعبئة الحقلversion
.CLIENT_HINTS_HIGH_ENTROPY
: يمكن ضبط الحقلversion
على النسخة الكاملة.
الأجهزة الجوّالة
تشير إلى ما إذا كان يجب تحسين محتوى مثل الإعلانات ليتوافق مع الشاشات الصغيرة و/أو الإدخال باللمس. يُرجى العلم أنّ هذا ليس بالضرورة مؤشرًا على نوع الجهاز، لأنّه يمكن ضبط متصفّحات الأجهزة الجوّالة لطلب "موقع إلكتروني متوافق مع أجهزة الكمبيوتر المكتبي".
هندسة معمارية
تحدد بنية النظام الأساسي مثل "x86" أو "arm".
بالنسبة إلى UserAgent
استنادًا إلى "تلميحات العميل"، يُرجى العِلم أنّه لن تتم تعبئة هذه السمة إلا عند ضبط السمة source
على CLIENT_HINTS_HIGH_ENTROPY
.
البت
يحدد عدد وحدات البت في النظام الأساسي، مثل ما إذا كان يحتوي على وحدة معالجة مركزية (CPU) 32 بت أو 64 بت. الحقل عبارة عن سلسلة عدد صحيح توفر معلومات إضافية حول بنيته الأساسية؛ على سبيل المثال، يمكن تعيين وحدة بت لبنية "x86" على "32" أو "64".
بالنسبة إلى UserAgent
استنادًا إلى "تلميحات العميل"، يُرجى العِلم أنّه لن تتم تعبئة هذه السمة إلا عند ضبط السمة 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_LOW_ENTROPY
: تتوفّر تلميحات العميل الأساسية فقط.CLIENT_HINTS_HIGH_ENTROPY
: تتوفّر تلميحات العميل، بما في ذلك حقل واحد على الأقل مصنّف على أنّه قصور مرتفع.