使用共享存储空间 Worklet 运行 A/B 测试。
Shared Storage API 是一个适用于通用跨站存储的 Privacy Sandbox 提案,支持许多可能的用例。例如,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,它会返回用户分配到哪个群组,从而确定展示哪个广告。
// 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();
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);
用例
以上只是共享存储空间中的部分可能的使用场景。我们会在收到反馈和发现新的用例的同时,继续添加示例。
内容选择
根据在共享存储空间中收集的信息,在围栏框架中选择不同网站并显示不同内容。这些用例的输出关口是网址选择。
- 广告素材轮播:存储数据(如广告素材 ID、观看次数和用户互动),以确定用户在不同的网站上看到哪些广告素材。
- A/B 测试:您可以将用户分配给实验组,然后将该组存储在共享存储空间中,以便跨网站访问。
- 自定义用户体验:根据用户的注册状态或其他用户状态分享自定义内容和号召性用语
生成摘要报告
使用共享存储空间收集信息,并生成杂乱的汇总摘要报告。这些用例的输出关口是 Private Aggregation API。
- 唯一身份用户覆盖面衡量:许多内容制作者和广告客户都想知道有多少唯一身份用户看过他们的内容。使用共享存储空间来记录用户首次看到您的广告、嵌入的视频或发布内容,并防止系统将同一用户重复统计到不同的网站上。然后,您可以使用 Private Aggregation API 输出有关覆盖面的摘要报告。
- 受众特征衡量:内容制作者通常希望了解其观众群的受众特征。您可以使用共享存储空间在您拥有的用户受众特征数据(例如您的第一方网站)中记录这些数据,并使用汇总报告跨许多其他网站(例如嵌入式内容)报告这些数据。
- 衡量 K+ 频次:有时称为“有效频次”,即通常达到最低观看次数后,用户才能识别或回想某些内容(通常在观看广告的情况下)。您可以使用共享存储空间针对查看同一内容至少 K 次的唯一身份用户生成报告。
互动和分享反馈
共享存储空间提案正在积极讨论,可能会发生变化 。如果您试用此 API 并有反馈意见,我们非常期待收到您的反馈意见。
- GitHub:阅读 提案、覆盖面白皮书、提出问题并参与讨论。
- Shared Storage API 通告:加入我们的邮寄名单,或查看以往的通告
- 开发者支持:提出问题并加入 Privacy Sandbox 开发者支持代码库。