Запустите A/B-тестирование

Используйте рабочийлет общего хранилища для запуска A/B-тестирования.

API общего хранилища — это предложение Privacy Sandbox для межсайтового хранилища общего назначения, которое поддерживает множество возможных вариантов использования. Одним из таких примеров является A/B-тестирование, которое доступно для тестирования в Chrome 104.0.5086.0 и более поздних версиях.

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

Попробуйте A/B-тестирование

Чтобы поэкспериментировать с A/B-тестированием с общим хранилищем, подтвердите, что вы используете Chrome 104.0.5086.0 или более поздней версии. Включите все API конфиденциальности рекламы в chrome://settings/adPrivacy .

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

Экспериментируйте с примерами кода

Чтобы увидеть, принесет ли эксперимент желаемый эффект, вы можете провести A/B-тестирование на нескольких сайтах. Как рекламодатель или производитель контента, вы можете выбрать отображение различного контента или рекламы в зависимости от того, к какой группе отнесен пользователь. Групповое задание сохраняется в общем хранилище, но его нельзя удалить.

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

  • ab-testing.js должен быть встроен в фрейм, который сопоставляет элемент управления и содержимое двух экспериментов. Сценарий вызывает рабочий модуль общего хранилища для эксперимента.
  • ab-testing-worklet.js — это рабочий модуль общего хранилища, который возвращает, к какой группе отнесен пользователь, и определяет, какое объявление будет показано.

ab-testing.js

// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
  return Math.round(Math.random());
}

async function injectContent() {
  // Register the Shared Storage worklet
  await window.sharedStorage.worklet.addModule('ab-testing-worklet.js');

  // Assign user to a random group (0 or 1) and store it in Shared Storage
  window.sharedStorage.set('ab-testing-group', getExperimentGroup(), {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation
  const fencedFrameConfig = await window.sharedStorage.selectURL(
    'ab-testing',
    [
      { url: `https://your-server.example/content/default-content.html` },
      { url: `https://your-server.example/content/experiment-content-a.html` }
    ],
    {
      resolveToConfig: true
    }
  );

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

injectContent();

ab-testing-worklet.js

class SelectURLOperation {
  async run(urls, data) {
    // Read the user's experiment group from Shared Storage
    const experimentGroup = await sharedStorage.get('ab-testing-group');

    // Return the corresponding URL (first or second item in the array)
    return urls.indexOf(experimentGroup);
  }
}

register('ab-testing', SelectURLOperation);

Use cases

All available use cases for Select URL API can be found in this section. We'll continue to add examples as we receive feedback and discover new test cases.

Привлекайте и делитесь отзывами

Обратите внимание, что предложение Select URL API находится в стадии активного обсуждения и разработки и может быть изменено.

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