运行 A/B 测试

使用共享存储空间 Worklet 运行 A/B 测试。

Shared Storage API 是一种 适用于通用的跨站点存储的沙盒提案,支持多种 可能的使用场景。A/B 测试就是这样一个例子 (在 Chrome 104.0.5086.0 及更高版本中)。

您可以将用户分配到某个实验组,然后将该组存储在“共享”中 要在跨网站环境中访问的存储空间。

尝试 A/B 测试

若要尝试对共享存储空间进行 A/B 测试,请确认您使用的是 Chrome 104.0.5086.0 或更高版本。启用 chrome://settings/adPrivacy 下的所有广告隐私权 API。

您还可以在命令行中使用 --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames 标志启用共享存储空间。

试用代码示例

要了解实验是否具有预期效果,您可以跨多个网站运行 A/B 测试。作为广告客户或内容制作者,您可以根据用户分配到的群组,选择呈现不同的内容或广告。群组分配会保存在共享存储空间中,但无法渗漏。

在此示例中:

  • ab-testing.js 应嵌入到一个帧中,该帧会映射一个对照组和两个实验内容。该脚本调用实验的共享存储 Worklet。
  • ab-testing-worklet.js 是一个共享存储空间 Worklet,它会返回用户分配到哪个群组,从而确定展示哪个广告。

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 网址 API 的所有可用用例。我们会根据收到的反馈和发现的新测试用例,不断添加示例。

  • 轮替广告素材:存储广告素材 ID 和用户互动等数据,以确定用户在不同网站上看到的广告素材。
  • 按频次选择广告素材:使用观看次数数据确定用户在不同网站上看到的广告素材。
  • 运行 A/B 测试:您可以将用户分配到实验组,然后将该组存储在 Shared Storage 中以供跨网站访问。
  • 为已知客户量身定制体验:根据用户的注册状态或其他用户状态分享自定义内容和号召性用语。

互动和分享反馈

请注意,Select 网址 API 提案正在积极讨论和开发中,可能会发生变化。

我们非常期待听到您对 Select 网址 API 的看法。

掌握最新动态

  • 邮寄名单:订阅我们的邮寄名单,及时了解与 Select 网址 API 和 Shared Storage API 相关的最新动态和公告。

需要帮助?