استهداف وكيل المستخدم

في السابق، كان يتم تضمين العنوان 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: تتوفّر "إشارات العميل"، بما في ذلك حقل واحد على الأقل مصنّف على أنّه ذو بيانات عشوائية عالية.