یک خلاقیت را بر اساس فرکانس انتخاب کنید

یک فایل اکسل Shared Storage را اجرا کنید تا یک URL انتخاب شود و آن را در یک قاب محصور رندر کنید.

رابط برنامه‌نویسی کاربردی ذخیره‌سازی مشترک (Shared Storage API) یک پیشنهاد برای Privacy Sandbox برای ذخیره‌سازی چندمنظوره و بین‌سایتی است که از بسیاری از موارد استفاده‌ی ممکن پشتیبانی می‌کند. یک مثال، کنترل فرکانس است که برای آزمایش در Chrome Beta 104.0.5086.0 و نسخه‌های بعدی آن در دسترس است.

یک اسکریپت Worklet اجرا کنید تا بر اساس داده‌های ذخیره شده، یک URL را از لیست ارائه شده انتخاب کنید و سپس آن URL را در یک قاب محصور رندر کنید. این می‌تواند برای انتخاب تبلیغات جدید یا سایر محتواها در زمانی که به حد مجاز فرکانس رسیده است، استفاده شود.

انتخاب خلاقانه را بر اساس فراوانی آزمایش کنید

برای آزمایش انتخاب خلاقانه بر اساس فراوانی با Shared Storage و Fenced Frames، تأیید کنید که از Chrome 104.0.5086.0 یا بالاتر استفاده می‌کنید. تمام APIهای حریم خصوصی تبلیغات را در chrome://settings/adPrivacy فعال کنید.

همچنین می‌توانید Shared Storage را با استفاده از پرچم --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames در خط فرمان فعال کنید.

با نمونه کدها آزمایش کنید

برای انتخاب و ایجاد یک URL غیرشفاف، یک ماژول worklet را برای خواندن داده‌های ذخیره‌سازی مشترک ثبت کنید. کلاس worklet لیستی از حداکثر هشت URL را دریافت می‌کند و سپس اندیس URL انتخاب شده را برمی‌گرداند.

وقتی کلاینت sharedStorage.selectURL() را فراخوانی می‌کند، worklet اجرا می‌شود و یک URL غیرشفاف را برمی‌گرداند تا در یک قاب محصور رندر شود.

فرض کنید می‌خواهید یک تبلیغ یا محتوای متفاوت را بر اساس تعداد دفعاتی که کاربر قبلاً آن را دیده است، برای نمایش انتخاب کنید. می‌توانید تعداد دفعاتی که کاربر یک محتوا را دیده است را بشمارید و آن مقدار را در فضای ذخیره‌سازی مشترک ذخیره کنید. پس از ذخیره، مقدار موجود در فضای ذخیره‌سازی مشترک برای شما در منابع مختلف در دسترس قرار می‌گیرد.

سپس، فایل اکسل ذخیره‌سازی مشترک، مقادیر موجود در فضای ذخیره‌سازی مشترک را می‌خواند و با هر نمای اضافی، شمارنده را افزایش می‌دهد. اگر تعداد به حد از پیش تعریف شده نرسیده باشد، محتوایی که می‌خواهید رندر کنید (اندیس 1 ) بازگردانده می‌شود. در غیر این صورت، URL پیش‌فرض (اندیس 0 ) بازگردانده می‌شود.

در این مثال:

  • creative-selection-by-frequencyjs از طریق iframe تولیدکننده محتوا یا تبلیغ‌کننده بارگذاری می‌شود و مسئول بارگذاری worklet ذخیره‌سازی مشترک و رندر کردن منبع مات بازگشتی در یک قاب محصور است.
  • creative-selection-by-frequency-worklet.js یک فایل اکسل ذخیره‌سازی اشتراکی است که تعداد دفعات نمایش را می‌خواند تا مشخص کند کدام URL برای یک محتوا یا یک تبلیغ خلاقانه برگردانده شده است.

انتخاب خلاقانه بر اساس فرکانس.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();

انتخاب خلاقانه بر اساس فراوانی-کاربرگ.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 API در حال بحث و توسعه فعال است و ممکن است تغییر کند.

مشتاقانه منتظر شنیدن نظرات شما در مورد Select URL API هستیم.