اختيار تصميم إعلان حسب معدّل التكرار

تشغيل Shared Storage worklet لاختيار عنوان URL وعرضه في إطار محمي

Shared Storage API هي اقتراح ضمن "مبادرة حماية الخصوصية" لتوفير مساحة تخزين عامة الأغراض على مستوى المواقع الإلكترونية، وهي تتيح العديد من حالات الاستخدام المحتملة. أحد الأمثلة على ذلك هو التحكّم في عدد مرات الظهور، وهو متاح للاختبار في الإصدار التجريبي 104.0.5086.0 من Chrome والإصدارات الأحدث.

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

اختبار اختيار تصميم الإعلان حسب معدّل التكرار

لاختبار اختيار تصميم الإعلان حسب معدّل التكرار باستخدام "مساحة التخزين المشترَكة" و"الإطارات المحصّنة"، تأكَّد من أنّك تستخدم الإصدار 104.0.5086.0 من Chrome أو إصدارًا أحدث. فعِّل جميع واجهات برمجة التطبيقات الخاصة بالخصوصية في عرض الإعلانات ضِمن chrome://settings/adPrivacy.

يمكنك أيضًا تفعيل "مساحة التخزين المشتركة" باستخدام العلامة --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames في سطر الأوامر.

تجربة عيّنات التعليمات البرمجية

لاختيار عنوان URL مبهم وإنشائه، سجِّل وحدة worklet لقراءة بيانات مساحة التخزين المشتركة. يتلقّى فئة Worklet قائمة تضم ما يصل إلى ثمانية عناوين URL، ثم تعرض فهرس عنوان URL الذي تم اختياره.

عندما يستدعي العميل sharedStorage.selectURL()، يتم تنفيذ التطبيق الصغير وعرض عنوان URL مبهم ليتم عرضه في إطار مسوّر.

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

بعد ذلك، يقرأ تطبيق Shared Storage Worklet القيم في مساحة التخزين المشتركة، ويزيد العداد مع كلّ مشاهدة إضافية. إذا لم يصل عدد النتائج إلى الحدّ المحدّد مسبقًا، يتم عرض المحتوى الذي تريد عرضه (الفهرس 1). وإذا وصل إلى الحدّ، يتم عرض عنوان URL التلقائي (الفهرس 0).

في هذا المثال:

  • يتم تحميل creative-selection-by-frequencyjs من خلال إطار iframe الخاص بصانع المحتوى أو المعلِن، وهو المسؤول عن تحميل وحدة عمل Shared Storage وعرض المصدر المعتم الذي تم إرجاعه في إطار مسوّر.
  • creative-selection-by-frequency-worklet.js هي أداة معالجة للتخزين المشترَك تقرأ عدد مرات الظهور لتحديد عنوان URL الذي سيتم عرضه لمحتوى أو تصميم إعلان.

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

حالات الاستخدام

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

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

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

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

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