Запустите 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);

Варианты использования

Все доступные варианты использования Select URL API можно найти в этом разделе. Мы продолжим добавлять примеры по мере получения отзывов и обнаружения новых тестовых случаев.

Engage and share feedback

Note that the Select URL API proposal is under active discussion and development and subject to change.

We're eager to hear your thoughts on the Select URL API.

Stay Informed

  • Mailing List: Subscribe to our mailing list for the latest updates and announcements related to the Select URL and Shared Storage APIs.

Need Help?