Выберите объявление по частоте

Запустите рабочий модуль «Общее хранилище», чтобы выбрать URL-адрес и отобразить его в рамке, заключенной в блок.

API общего хранилища — это предложение в рамках концепции «песочницы конфиденциальности» для универсального межсайтового хранилища, поддерживающее множество возможных вариантов использования. Один из примеров — управление частотой, которое можно протестировать в Chrome Beta 104.0.5086.0 и более поздних версиях.

Запустите скрипт рабочего блока, который выберет URL-адрес из предоставленного списка на основе сохраненных данных, а затем отобразит этот URL-адрес в рамке, ограниченной рамками. Это можно использовать для выбора новых объявлений или другого контента при достижении лимита частоты показов.

Протестируйте выбор креативных решений по частоте

Чтобы протестировать подбор креативов по частоте показа с использованием Shared Storage и Fenced Frames, убедитесь, что вы используете Chrome версии 104.0.5086.0 или более поздней. Включите все API конфиденциальности рекламы в разделе chrome://settings/adPrivacy .

Также можно включить общее хранилище с помощью флага --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames в командной строке.

Поэкспериментируйте с примерами кода.

Для выбора и создания непрозрачного URL-адреса зарегистрируйте модуль рабочего процесса для чтения данных из общего хранилища. Класс рабочего процесса получает список, содержащий до восьми URL-адресов, и возвращает индекс выбранного URL-адреса.

Когда клиент вызывает sharedStorage.selectURL() , выполняется рабочий модуль, который возвращает непрозрачный URL-адрес для отображения в изолированном фрейме .

Допустим, вы хотите выбирать разные объявления или контент для показа в зависимости от того, сколько раз пользователь уже видел их раньше. Вы можете подсчитать, сколько раз пользователь видел тот или иной контент, и сохранить это значение в общем хранилище. После сохранения значение в общем хранилище становится доступным для вас из разных источников.

Затем рабочий модуль общего хранилища считывает значения из общего хранилища и увеличивает счетчик с каждым дополнительным представлением. Если счетчик не достиг заданного предела, возвращается контент, который вы хотите отобразить (индекс 1 ). В противном случае возвращается URL-адрес по умолчанию (индекс 0 ).

В этом примере:

  • creative-selection-by-frequencyjs загружается через iframe производителя контента или рекламодателя и отвечает за загрузку рабочего модуля общего хранилища и рендеринг возвращаемого непрозрачного источника в фрейм с ограждением.
  • 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 API находится в стадии активного обсуждения и разработки и может быть изменено.

Мы с нетерпением ждем вашего мнения об API Select URL.