为已知客户定制用户体验

使用共享存储空间 Worklet 识别已知客户。

Shared Storage API 是 Privacy Sandbox 提案,用于实现通用的跨网站存储,它支持许多可能的使用场景。例如,识别已知客户,可在 Chrome 104.0.5086.0 及更高版本中进行测试。

您可以将用户是否已在您的网站上注册到共享存储空间,然后根据用户的存储状态(用户是否为“已知”客户)呈现一个单独的元素。

设置已知客户

如需尝试识别共享存储空间中的已知客户,请确认您使用的是 Chrome 104.0.5086.0 或更高版本。然后,在 chrome://flags/#privacy-sandbox-ads-apis 处启用 Privacy Sandbox Ads API 实验标志。

将 Privacy Sandbox 广告 API 实验设为“已启用”,以便使用这些 API

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

使用代码示例进行实验

您可能需要根据用户是否在其他网站上看到过来呈现不同的元素。例如,付款服务机构可能希望根据用户是否已在其网站上注册来显示“注册”或“立即购买”按钮。共享存储空间可用于设置用户的状态,并根据该状态自定义用户体验。

在此示例中:

  • known-customer.js 嵌入到了框架中。此脚本可设置相应选项,以便设置在网站上显示哪些按钮:“注册”或“立即购买”。
  • known-customer-worklet.js 是确定用户是否已知的共享存储空间 Worklet。如果已知用户,则返回信息。如果用户未知,系统会返回该信息以显示“注册”按钮,并将该用户标记为为将来已知。

known-customer.js

// The first URL for the "register" button is rendered for unknown users.
const BUTTON_URLS = [
  { url: `https://${advertiserUrl}/ads/register-button.html` },
  { url: `https://${advertiserUrl}/ads/buy-now-button.html` },
];

async function injectButton() {
  // Load the worklet module
  await window.sharedStorage.worklet.addModule('known-customer-worklet.js');

  // Set the initial status to unknown ('0' is unknown and '1' is known)
  window.sharedStorage.set('known-customer', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose the button based on the user status
  const fencedFrameConfig = await window.sharedStorage.selectURL('known-customer', BUTTON_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('button-slot').src = fencedFrameConfig;
}

injectButton();

known-customer-worklet.js

class SelectURLOperation {
  async run(urls) {
    const knownCustomer = await this.sharedStorage.get('known-customer');

    // '0' is unknown and '1' is known
    return parseInt(knownCustomer);
  }
}

register('known-customer', SelectURLOperation);

用例

以上只是共享存储空间中的部分可能的使用场景。我们会在收到反馈和发现新的用例的同时,继续添加示例。

内容选择

根据在共享存储空间中收集的信息,在围栏框架中选择不同网站并显示不同内容。这些用例的输出关口是网址选择。

  • 广告素材轮播:存储数据(如广告素材 ID、观看次数和用户互动),以确定用户在不同的网站上看到哪些广告素材。
  • A/B 测试:您可以将用户分配给实验组,然后将该组存储在共享存储空间中,以便跨网站访问。
  • 自定义用户体验:根据用户的注册状态或其他用户状态分享自定义内容和号召性用语

生成摘要报告

使用共享存储空间收集信息,并生成杂乱的汇总摘要报告。这些用例的输出关口是 Private Aggregation API

  • 唯一身份用户覆盖面衡量:许多内容制作者和广告客户都想知道有多少唯一身份用户看过他们的内容。使用共享存储空间来记录用户首次看到您的广告、嵌入的视频或发布内容,并防止系统将同一用户重复统计到不同的网站上。然后,您可以使用 Private Aggregation API 输出有关覆盖面的摘要报告。
  • 受众特征衡量:内容制作者通常希望了解其观众群的受众特征。您可以使用共享存储空间在您拥有的用户受众特征数据(例如您的第一方网站)中记录这些数据,并使用汇总报告跨许多其他网站(例如嵌入式内容)报告这些数据。
  • 衡量 K+ 频次:有时称为“有效频次”,即通常达到最低观看次数后,用户才能识别或回想某些内容(通常在观看广告的情况下)。您可以使用共享存储空间针对查看同一内容至少 K 次的唯一身份用户生成报告。

互动和分享反馈

共享存储空间提案正在积极讨论中,将来可能会发生变化。如果您在试用此 API 时有反馈意见,我们非常期待收到您的宝贵意见。