ما معنى "تقليل معلومات وكيل المستخدم"؟

يؤدي تقليل المعلومات في سلسلة وكيل المستخدم (UA) إلى تقليل المعلومات التعريفية التي تتم مشاركتها في سلسلة وكيل المستخدم، والتي قد يتم استخدامها لتحديد الهوية بشكل سلبي. بعد طرح هذه التغييرات للجمهور العام، تم تقليل حجم عنوان User-Agent في جميع طلبات موارد البيانات. ونتيجةً لذلك، تمّ تقليل القيم المعروضة من بعض واجهات Navigator، بما في ذلك: navigator.userAgent وnavigator.appVersion و navigator.platform.

على مطوّري الويب مراجعة رمز مواقعهم الإلكترونية للتحقّق من استخدامهم لسلاسل User-Agent. إذا كان موقعك الإلكتروني يعتمد على تحليل سلسلة User-Agent لقراءة طراز الجهاز أو إصدار النظام الأساسي أو إصدار المتصفّح الكامل، عليك تنفيذ User-Agent Client Hints API.

User-Agent Client Hints (UA-CH)

تسمح إشارات العميل User-Agent بالوصول إلى المجموعة الكاملة من بيانات User-Agent، ولكن فقط عندما تعلن الخوادم بشكل نشط عن حاجة صريحة إلى أجزاء معيّنة من البيانات.

من خلال إزالة بيانات المستخدمين المعروضة بشكل سلبي، يمكننا قياس ومقدار كمية المعلومات التي يتم عرضها عن قصد من خلال رؤوس الطلبات وواجهات برمجة تطبيقات JavaScript وغيرها من الآليات.

لماذا نحتاج إلى تقليل Universal Analytics وUniversal Analytics - Channel؟

في السابق، كانت سلسلة User-Agent تبث سلسلة كبيرة من البيانات حول متصفّح المستخدم ونظام التشغيل والإصدار مع كل طلب HTTP. كان هذا الإجراء مشكلاً لسببَين:

  • يمكن أن تؤدي الدقة وكثرة التفاصيل إلى تحديد هوية المستخدم.
  • يمكن أن يؤدي توفّر هذه المعلومات تلقائيًا إلى التتبّع الخفي.

تعمل الإصدارات المُعدَّلة من Universal Analytics وUniversal Analytics - حملة على تحسين خصوصية المستخدِم من خلال مشاركة المعلومات الأساسية فقط تلقائيًا.

يتضمّن وكيل المستخدم المُخفَّض علامة تجارية للمتصفّح وإصدارًا مهمًا، ومصدر الطلب (جهاز كمبيوتر مكتبي أو جهاز جوّال)، والمنصّة. للوصول إلى مزيد من البيانات، تتيح لك إشارات العميل User-Agent طلب معلومات محدّدة حول جهاز المستخدم أو ظروفه.

بالإضافة إلى ذلك، مع مرور الوقت، أصبحت سلسلة User-Agent أطول وأكثر تعقيدًا، ما أدى إلى تحليل السلسلة بشكل معرّض للأخطاء. يوفّر Universal Analytics Channel Hierarchy بيانات منظَّمة وموثوقة يسهل تفسيرها. من المفترض ألا يؤدي الرمز الحالي الذي يفكّك سلسلة Universal Analytics إلى تعطُّل (على الرغم من أنّه سيعرض بيانات أقل)، وسيكون عليك نقل البيانات إلى Universal Analytics‏ (CH) إذا كان موقعك الإلكتروني يحتاج إلى معلومات محددة عن العميل.

كيف تعمل الإصدارات المُعدَّلة من Universal Analytics وUniversal Analytics - Channel؟

في ما يلي مثال موجز على آلية عمل سلسلة User-Agent المُخفَّضة وUA-CH. للحصول على مثال أكثر تفصيلاً، راجِع مقالة تحسين خصوصية المستخدم وتجربة المطوّر باستخدام إشارات العميل User-Agent.

يفتح أحد المستخدمين المتصفّح ويُدخل example.com في شريط العناوين:

  1. يرسل المتصفّح طلبًا لتحميل صفحة الويب.

    1. يُدرِج المتصفّح العنوان User-Agent مع سلسلة User-Agent المُخفَّضة. على سبيل المثال: User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.0.0 Mobile Safari/537.36
    2. ويُدرِج المتصفّح هذه المعلومات نفسها في رؤوس User-Agent Client Hint التلقائية. على سبيل المثال:

      Sec-CH-UA: "Chrome"; v="98"
      Sec-CH-UA-Mobile: ?1
      Sec-CH-UA-Platform: "Android"
      
  2. يمكن أن يطلب الخادم من المتصفّح إرسال إشارات إضافية عن العميل، مثل طراز الجهاز، باستخدام عنوان الاستجابة Accept-CH. على سبيل المثال: Accept-CH: Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, Sec-CH-UA-Model

  3. يطبِّق المتصفّح السياسات وإعدادات المستخدم لتحديد البيانات المسموح بإرسالها إلى الخادم في رؤوس الطلبات اللاحقة. على سبيل المثال:

    Sec-CH-UA: "Chrome"; v="93"
    Sec-CH-UA-Mobile: ?1
    Sec-CH-UA-Platform: "Android"
    Sec-CH-UA-Model: "Pixel 2"
    

تعديلات العميل المهمة

إذا كنت بحاجة إلى مجموعة محدّدة من Client Hints في طلبك الأوّلي، يمكنك استخدام عنوان الاستجابة Critical-CH. يجب أن تكون قيم Critical-CH مجموعة فرعية من القيم التي يطلبها Accept-CH.

على سبيل المثال، قد يتضمّن الطلب الأولي طلبًا للحصول على Device-Memory و Viewport-Width، حيث يُعدّ Device-Memory أمرًا بالغ الأهمية.

GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Content-Type: text/html
Accept-CH: Device-Memory, Viewport-Width
Vary: Device-Memory, Viewport-Width
Critical-CH: Device-Memory

إذا كان المتصفّح يتطلّب تلميحًا مهمًا (Critical-CH) لعرض صفحة الويب بشكل صحيح، يمكن للخادم طلب هذه المعلومات الإضافية باستخدام الرأس Accept-CH. بعد ذلك، يمكن للمتصفّح إرسال طلب جديد للصفحة، بما في ذلك التلميح المهم.

باختصار، يطلب Accept-CH جميع القيم التي تريدها للصفحة، في حين لا يطلب Critical-CH سوى المجموعة الفرعية من القيم التي يجب أن تكون لديك عند التحميل لتحميل الصفحة بشكل صحيح. يُرجى الرجوع إلى مواصفات موثوقية Client Hints لمزيد من المعلومات.

رصد الأجهزة اللوحية باستخدام واجهة برمجة التطبيقات UA-CH

مع بدء تمييز الأجهزة الجوّالة واللوحية وأجهزة الكمبيوتر المكتبي بشكلٍ متزايد، أصبح شكل الأجهزة أكثر ديناميكية (الشاشات القابلة للطي، والانتقال بين وضع الكمبيوتر المحمول ووضع الجهاز اللوحي)، لذا ننصحك باستخدام التصميم السريع الاستجابة وميزة رصد الميزات لتقديم واجهة مستخدم مناسبة.

ومع ذلك، تأتي المعلومات التي يقدّمها المتصفّح لكلّ من سلسلة User-Agent وإشارات العميل User-Agent من المصدر نفسه، لذا من المفترض أن تعمل أشكال المنطق نفسها.

على سبيل المثال، في حال وضع علامة في المربّع بجانب هذا النمط في سلسلة Universal Analytics:

  • نمط القفل على الهاتف: 'Android' + 'Chrome/[.0-9]* Mobile'
  • نمط الجهاز اللوحي: 'Android' + 'Chrome/[.0-9]* (?!Mobile)'

يمكن التحقّق من واجهة رؤوس UA-CH التلقائية المطابقة:

  • نمط الهاتف: Sec-CH-UA-Platform: "Android"، Sec-CH-UA-Mobile: ?1
  • نمط الجهاز اللوحي: Sec-CH-UA-Platform: "Android" وSec-CH-UA-Mobile: ?0

أو واجهة JavaScript المكافئة:

  • نمط القفل على الهاتف: navigator.userAgentData.platform === 'Android' && navigator.userAgentData.mobile === true
  • نمط الجهاز اللوحي: navigator.userAgentData.platform === 'Android' && navigator.userAgentData.mobile === false

بالنسبة إلى حالات الاستخدام الخاصة بالأجهزة، يمكن طلب اسم طراز الجهاز من خلال التلميح Sec-CH-UA-Model ذي التشويش العالي.

كيف يمكنني استخدام "Universal Analytics المُخفَّض" واختباره؟

للبدء، راجِع رمز موقعك الإلكتروني للاطّلاع على حالات استخدام سلسلة User-Agent. إذا كان موقعك الإلكتروني يعتمد على تحليل سلسلتَي User-Agent وUA-CH لقراءة طراز الجهاز أو إصدار النظام الأساسي أو إصدار المتصفّح بالكامل، عليك تنفيذ واجهة برمجة التطبيقات UA-CH.

بعد التحديث إلى UA-CH API، عليك إجراء الاختبار للتأكّد من حصولك على البيانات التي تتوقّعها من User-Agent. هناك ثلاث طرق للاختبار، وكلّ منها يزداد تعقيدًا.

يعني مدى التوفّر الموسّع لميزة "تقليل المعلومات في سلسلة وكيل المستخدم" أنّ سلسلة وكيل المستخدم المُخفَّضة بالكامل يتم إرسالها على جميع أجهزة Chrome. بدأ الخفض مع إصدار Chrome الفرعي في الربع الثاني من عام 2022.

اختبار السلاسل المخصّصة محليًا

إذا كنت تريد اختبار موقعك الإلكتروني باستخدام سلاسل User-Agent مخصّصة لمحاكاة أجهزة مختلفة، يمكنك تشغيل Chrome باستخدام الخيار "--user-agent="Custom string here"" في سطر الأوامر. يمكنك الاطّلاع على مزيد من المعلومات حول علامات سطر الأوامر هنا.

بدلاً من ذلك، يمكنك استخدام محاكي الجهاز في "أدوات مطوّري برامج Chrome".

تحويل السلسلة في رمز موقعك الإلكتروني

إذا كنت تعالج سلسلة user-agent الحالية في Chrome من جهة العميل أو الرمز من جهة الخادم، يمكنك تحويل هذه السلسلة إلى التنسيق الجديد لاختبار التوافق. يمكنك إجراء الاختبار إما عن طريق إلغاء السلسلة واستبدالها، أو إنشاء الإصدار الجديد واختباره جنبًا إلى جنب.

إتاحة اقتراحات العميل والاقتراحات المهمة

هناك ثلاث معلومات تلقائية عن العميل يتم عرضها على الخادم، بما في ذلك اسم المتصفّح وإصداره الرئيسي، وقيمة منطقية تشير إلى ما إذا كان المتصفّح على جهاز جوّال، واسم نظام التشغيل. ويتم إرسال هذه الرسائل بعد تأكيد الاتصال عبر بروتوكول أمان طبقة النقل (TLS). هذه الميزات متاحة في المتصفّح ومتوافقة معه.

ومع ذلك، قد تحتاج أحيانًا إلى استرداد معلومات مهمة لعرض موقعك الإلكتروني.

تحسين التلميحات المهمة

تأكيد الاتصال عبر بروتوكول TLS هو الخطوة الأولى لإنشاء اتصال آمن بين المتصفّح وخادم الويب. في حال عدم التدخل، تم تصميم عنوان استجابة Critical-CH لإعلام المتصفّح بإعادة محاولة إرسال الطلب على الفور إذا تم إرسال الطلب الأول بدون تلميح مهم.

مخطّط تسلسلي لتعديلات البرامج مع تلميحات مهمة
عندما يطلب الخادم تلميحًا مهمًا، سيحاول العميل إعادة إرسال الطلب الأول لصفحة الويب مع تضمين التلميح المهم. في هذا المثال، يتم طلب التلميح Sec-CH-UA-Model مرّتين: مرّة كـ "تلميح من العميل" باستخدام Accept-CH ومرّة أخرى كـ "تلميح مهم" باستخدام Critical-CH.

لتحسين الإشارات المهمة (عنوان Critical-CH)، يجب اعتراض عملية الربط هذه وتقديم نموذج للإشارات المخصّصة للعملاء. قد تكون هذه الخطوات معقدة وتتطلّب معرفة متقدمة.

إنّ ACCEPT_CH إطارات HTTP/2 وHTTP/3، بالاشتراك مع إضافة TLS ALPS، هي عملية تحسين على مستوى الاتصال لعرض إعدادات "ملاحظة العميل" الخادم في الوقت المناسب لطلب HTTP الأول. تتطلّب هذه الإعدادات عملية برمجة معقدة، وننصح بعدم استخدامها إلا للمعلومات المهمة حقًا.

يساعدك BoringSSL (نسخة من OpenSSL) في استخدام ميزات Google التجريبية في Chromium. في الوقت الحالي، يتم تنفيذ ALPS فقط في BoringSSL.

إذا كنت بحاجة إلى استخدام التلميحات المهمة، يمكنك الرجوع إلى دليلنا حول موثوقية التلميحات المهمة وتحسينها.

الأسئلة الشائعة

ما هي المدة التي سيتم فيها إرسال التلميح المحدّد من خلال عنوان Accept-CH؟

سيتم إرسال التلميحات المحدّدة من خلال عنوان Accept-CH طوال مدّة جلسة المتصفّح أو إلى أن يتم تحديد مجموعة مختلفة من التلميحات.

هل يعمل Universal Analytics مع HTTP/2 وHTTP/3؟

يعمل Universal Analytics مع كلّ من اتصالات HTTP/2 وHTTP/3.

هل تتطلّب النطاقات الفرعية (وأسماء CNAME) صفحة من المستوى الأعلى Permissions-Policy للوصول إلى UA-CH ذات التشويش العالي؟

يتم حظر عناوين طلبات UA-CH ذات التشويش العالي في طلبات المصادر الخارجية بغض النظر عن كيفية تحديد هذا المصدر من جانب نظام أسماء النطاقات. يجب التعامل مع التفويض من خلال Permissions-Policy لأي مورد فرعي من مصدر خارجي أو الحصول عليه من خلال JavaScript الذي يتم تنفيذه في سياق مصدر خارجي.

كيف يؤثّر تقليل معلومات الوكيل المستخدِم في رصد برامج التتبُّع؟

لا يؤثّر تغيير Chrome في سلسلة User-Agent مباشرةً في سلسلة User-Agent التي يختار الروبوت إرسالها.

قد يختار برامج التتبُّع تعديل سلاسل النصوص الخاصة بها لتعكس المعلومات المُخفَّضة التي يرسلها Chrome، ولكن هذا اختيار تنفيذي تابع لها بالكامل. لا يزال Chrome يرسل تنسيق User-Agent نفسه، ويمكن للبرامج الآلية التي تُلحق معرّفها الخاص بنهاية سلسلة User-Agent في Chrome مواصلة إجراء ذلك.

إذا كانت لديك أي استفسارات بشأن برامج التتبّع المحدّدة، ننصحك بالتواصل مع مالكي هذه البرامج مباشرةً لمعرفة ما إذا كانت لديهم أي خطط لتغيير سلسلة User-Agent.

التفاعل مع الملاحظات ومشاركتها

التعرف على المزيد