نظرة عامة على عنوان URL المحدّد

تتيح لك ميزة "اختيار عنوان URL" تحديد المحتوى الذي سيظهر للمستخدم استنادًا إلى بياناته في Shared Storage، بدون الكشف عن البيانات الأساسية المخزّنة.

في الحالات التي تريد فيها عرض محتوى استنادًا إلى بيانات من مواقع إلكترونية متعدّدة بطريقة تحافظ على الخصوصية، يمكنك استخدام Select URL API. تعمل واجهة برمجة التطبيقات Select URL بشكل جيد في حالات الاستخدام التالية:

  • اختبار A/B للمحتوى من أجل توفير تجربة مستخدم متسقة على مستوى مواقع إلكترونية متعددة
  • عرض زر تسجيل دخول مختلف للمستخدمين الذين لديهم حساب وللمستخدمين الذين ليس لديهم حساب
  • تغيير تصاميم الإعلانات بشكل متكرّر للحدّ من عدد مرات ظهور الإعلان نفسه للمستخدم على مواقع إلكترونية متعدّدة

ما هي Select URL API؟

تتيح لك واجهة برمجة التطبيقات Select URL API الاختيار من بين مجموعة من عناوين URL استنادًا إلى بيانات المواقع الإلكترونية المختلفة. تم إنشاء واجهة برمجة التطبيقات استنادًا إلى مساحة التخزين المشتركة، وتستخدم SharedStorageWorklet لقراءة البيانات المتاحة على مستوى المواقع الإلكترونية واختيار أحد عناوين URL المقدَّمة. يتم عرض عنوان URL المحدّد للمتصل بطريقة تمنع قراءته إلا داخل إطار محصور. يمكن أيضًا عرض عنوان URL في إطار iframe حتى عام 2026 على الأقل.

مخطّط بياني يعرض إطار shoes.example iframe المضمّن في مواقع إلكترونية لناشرين مختلفين، بما في ذلك news.example وblog.example يمكن للموقع الإلكتروني shoes.com الوصول إلى مساحة التخزين غير المقسّمة الخاصة به من كل موقع إلكتروني ذي مستوى أعلى.

في الرسم البياني السابق، يمكن تضمين الموقع الإلكتروني shoes.example في مواقع إلكترونية أخرى للناشرين، مثل news.example، وسيظل بإمكانه الوصول إلى البيانات نفسها باستخدام Select URL مع Shared Storage لاختيار المحتوى المناسب للتضمين.

طريقة عمل ميزة "اختيار عنوان URL"

يمكنك استخدام Select URL API لاختيار عنوان URL سيتم عرضه في إطار محمي أو iframe باستخدام بيانات من مواقع إلكترونية مختلفة. استخدِم JavaScript لقراءة البيانات على مستوى المواقع الإلكترونية وكتابتها في Shared Storage، ثم اختَر عنوان URL من قائمة مقدَّمة استنادًا إلى البيانات المخزَّنة.

يمكن لأي موقع إلكتروني أو مصدر مسجَّل كتابة البيانات في Shared Storage، وبعد ذلك يمكن للمواقع الإلكترونية قراءة هذه البيانات فقط باستخدام Select URL API.

يمكن أن يتضمّن عنوان URL المعروض أي نوع من المحتوى، مثل الإعلانات والمقالات والصور وشفرة HTML وعبارات الحث على اتّخاذ إجراء (مثل الأزرار) وغير ذلك.

في هذا المثال، تدير موقعًا إلكترونيًا للسفر وتُطلق حملة إعلانية تتضمّن ثلاثة تصاميم إعلانات مختلفة. تريد ترتيب تصاميم الإعلانات هذه حسب تفاعلات المستخدم (عرض أو نقر).

ثلاثة تصاميم إعلانات يتم عرضها للمستخدمين استنادًا إلى تفاعلهم السابق
يقول تصميم الإعلان الأول للمشاهد الجديد: "انطلق في مغامرتك التالية". وبعد مشاهدة الإعلان بدون النقر عليه، يظهر للمستخدم تصميم الإعلان التالي الذي يقول "استكشِف وجهات لقضاء عطلة نهاية الأسبوع". بعد عرض الإعلان أو النقر عليه، تشجّع مادة العرض الثالثة المستخدمين على "النقر للحصول على خصم على الفندق". إذا نقر المستخدِم على الإعلان الأول، سيكون الإعلان التالي الذي سيراه هو تصميم الإعلان الثالث.

عندما يرصد موقع إلكتروني مساحة إعلانية رابحة لأول مرة، يمكنك تخزين معرّف وحالة نقرة لهذا التصميم في "مساحة التخزين المشتركة".

على سبيل المثال:

await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');

وهذا يعني أنّه عند الفوز بمزاد إعلانات على مواقع إلكترونية أخرى يزورها هذا المستخدم، يمكنك عرض إعلان مختلف استنادًا إلى هذه البيانات.

شرح Shared Storage API مع ثلاثة تصاميم إعلانية وتفاعل المستخدم

يتم تشغيل JavaScript في SharedStorageWorklet لاسترداد هذه المعلومات، ولكن لا يمكن أن يتفاعل الرمز أو يتواصل خارج إطار iframe أو الإطار المحصور في الصفحة الرئيسية.

كمثال آخر، قد تريد اختبار المقالة التي ستحقّق أداءً أفضل في سياق مضمّن. لاختبار ذلك، يمكنك تعيين مستخدم لمجموعة تجريبية عندما تراه على موقعك الإلكتروني، ثم تخزين رقم تعريف المجموعة في Shared Storage ليتم الوصول إليه في سياق متعدد المواقع الإلكترونية. في موقع إلكتروني آخر، يمكنك استخدام Select URL API لاختيار عنوان URL الأنسب لعرضه في إطار محمي، استنادًا إلى مجموعة التجربة الخاصة بهذا المستخدم كما تم تخزينها باستخدام Shared Storage.

تتيح لك ميزة "اختيار عنوان URL" اتّخاذ قرارات مستنيرة استنادًا إلى بيانات على مستوى المواقع الإلكترونية، بدون مشاركة معلومات المستخدم (مثل سجلّ التصفّح أو التفاصيل الشخصية الأخرى) مع موقع إلكتروني مضمّن أو نقل البيانات إلى خوادمك الخاصة.

الميزانيات

للحدّ من مخاطر تسرُّب البيانات على مستوى المواقع الإلكترونية، تستخدم Select URL API نظامًا لتحديد الميزانية يجمع بين ميزانيتَين طويلة الأجل وقصيرة الأجل:

  • الميزانية الطويلة الأمد: تبلغ الميزانية الطويلة الأمد 12 بت لكل موقع إلكتروني للمتصل، في اليوم الواحد عند استخدام selectURL(). لا يتم تحصيل رسوم هذه الميزانية إلا إذا نفّذ الإطار الذي يستضيف عنوان URL المحدّد عملية تنقّل على المستوى الأعلى، ويتم احتساب التكلفة على النحو التالي: log2(number of URLs). لذا، إذا قدّمت 8 عناوين URL للاختيار من بينها، ستكون التكلفة 3 بتات. يتم احتساب أي ميزانية متبقية لليوم على النحو التالي: 12 - (sum of bits deducted in the last 24 hours). إذا لم يتبقَّ رصيد كافٍ في الميزانية، سيتم عرض عنوان URL التلقائي (أول عنوان URL في القائمة)، وسيتم تسجيل بت واحد إذا تم الانتقال إلى عنوان URL التلقائي.
  • الميزانيات القصيرة الأجل: الميزانيات القصيرة الأجل هي حدود إضافية على أساس كل عملية تحميل للصفحة إلى أن يتم فرض الإطارات المحصّنة بالكامل وطالما أنّ ميزة إعداد التقارير على مستوى الحدث متاحة. هناك حد أقصى يبلغ 6 بتات لكل موقع إلكتروني يتضمّن رمز الاتصال، ولكل عملية تحميل للصفحة، ما يحدّ من مقدار البيانات التي يمكن أن يسرّبها موقع إلكتروني واحد يتضمّن رمز الاتصال باستخدام selectURL(). هناك أيضًا ميزانية تبلغ 12 بت إجمالاً لكل عملية تحميل صفحة، وهي حدّ مجمّع لجميع المواقع الإلكترونية التي يتم استدعاؤها على الصفحة.

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

    يمكنك تنفيذ طلبات البحث المحفوظة من خلال إضافة السمة savedQuery مع اسم طلب البحث الذي اخترته إلى عنصر الخيارات، كما هو موضّح في هذا المثال.

    const topProductUrls = [
      { url: 'https://ad.example/default-top-product.html' },
      { url: 'https://ad.example/experiment-top-product.html' }];
    const relatedProductUrls = [
      { url: 'https://ad.example/default-related-product.html' },
      { url: 'https://ad.example/experiment-related-product.html' }];
    
    // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'`
    // on this page, so it will be charged to both per-page budgets.
    const topProductsConfig = await sharedStorage.selectURL(
      'productExperiment', topProductUrls, {
        savedQuery: 'control_or_experiment',
        keepAlive: true,
        resolveToConfig: true
    });
    document.getElementById('topProductsFencedFrame').config = topProductsConfig;
    
    // This next call with this savedQuery won't charge either of the per-page budgets.
    const relatedProductConfig = await sharedStorage.selectURL(
      'productExperiment', relatedProductUrls, {
        savedQuery: 'control_or_experiment',
        resolveToConfig: true
    });
    document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
    

اختيار حالات استخدام واجهة برمجة التطبيقات الخاصة بعناوين URL

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

  • تدوير تصاميم الإعلانات: وضع حدّ لعدد المرات التي يرى فيها المستخدم الإعلان نفسه على مواقع إلكترونية متعدّدة من خلال تخزين بيانات، مثل رقم تعريف التصميم وعدد مرات الظهور وتفاعل المستخدم، لتحديد التصاميم التي يراها المستخدمون على مواقع إلكترونية مختلفة يتيح لك ذلك تحقيق التوازن بين عدد المشاهدات وتجنُّب الإفراط في عرض محتوى معيّن للحدّ من أي تجربة سلبية محتملة للمستخدم. لمزيد من المعلومات حول حالة الاستخدام هذه، اطّلِع على عرض تصاميم الإعلانات بالتناوب.
  • اختيار تصميم الإعلان حسب عدد مرات الظهور: تخزين عدد مرّات عرض المتصفّح في Shared Storage للحدّ من عدد مرّات ظهور الإعلان نفسه للمستخدم على مواقع إلكترونية متعدّدة لمزيد من المعلومات حول حالة الاستخدام هذه، راجِع اختيار تصميم إعلان حسب معدّل التكرار.
  • تخصيص تجربة المستخدم للعملاء المعروفين: قدِّم تجربة متّسقة على مستوى نطاقاتك المختلفة. يمكنك مشاركة محتوى مخصّص وعبارات تحث المستخدم على اتّخاذ إجراء استنادًا إلى حالة تسجيل المستخدم أو حالات أخرى، وتقديم تجربة متسقة على مستوى نطاقاتك المختلفة. لمزيد من المعلومات حول حالة الاستخدام هذه، يُرجى الاطّلاع على تخصيص تجربة المستخدم للعملاء المعروفين.
  • إجراء اختبار أ/ب: يقارن اختبار أ/ب بين صيغتَين أو أكثر من إعداد معيّن لتحديد الصيغة الأفضل أداءً. يمكنك تعيين مستخدم إلى مجموعة تجريبية، ثم تخزين هذه المجموعة في "مساحة التخزين المشتركة" للوصول إليها على مستوى المواقع الإلكترونية. يتيح لك ذلك جمع إحصاءات عن سلوك المستخدمين على مستوى شبكة مواقعك الإلكترونية بدون تتبُّع الأفراد. لمزيد من المعلومات حول حالة الاستخدام هذه، راجِع مقالة تنفيذ اختبارات أ/ب.

تتيح لك واجهة برمجة التطبيقات Select URL API مع Shared Storage تطوير حالات الاستخدام هذه من خلال إمكانية الوصول إلى مساحة التخزين نفسها على مواقع إلكترونية مختلفة من المستوى الأعلى.

تجربة العرض التوضيحي

يمكنك تجربة ميزة "اختيار عنوان URL" باستخدام العرض التوضيحي لواجهة برمجة التطبيقات Shared Storage.

تم إنشاء هذا العرض التوضيحي من منظور معلِن أو شركة تكنولوجيا إعلانية أو موزع محتوى أو خدمة أخرى تابعة لجهة خارجية تريد تخزين المعلومات على مواقع إلكترونية مختلفة للناشرين. في العرض التوضيحي، يتم تشغيل رمز الجهة الخارجية نفسه على المواقع الإلكترونية لكل من "الناشر أ" و"الناشر ب" لكل حالة استخدام. يمكنك الانتقال إلى صفحة كل ناشر لمعرفة كيفية مشاركة البيانات في سياق على مستوى المواقع الإلكترونية.

يمكنك أيضًا الاطّلاع على رمز العرض التوضيحي على GitHub.

حالة واجهة برمجة التطبيقات

تتوفّر واجهة Select URL API للجمهور العام. لاستخدام واجهة برمجة التطبيقات Select URL أو تفعيلها للتطوير على الجهاز، اتّبِع التعليمات للتسجيل في "مبادرة حماية الخصوصية".

الاقتراح الحالة
إعداد التقارير على مستوى الحدث لميزة "اختيار المحتوى" (selectURL()) متوفّرة حتى عام 2026 على الأقل
تحديد الميزانية لكلّ موقع إلكتروني
الشرح
متوفّر في الإصدار M119
تصحيح أخطاء وحدات "مساحة التخزين المشتركة" باستخدام "أدوات المطوّرين"
القسم
متوفّر في M120

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

يُرجى العِلم أنّ اقتراح واجهة برمجة التطبيقات Select URL قيد المناقشة والتطوير النشطَين، وهو عرضة للتغيير.

نودّ معرفة رأيك في واجهة برمجة التطبيقات Select URL.