共享存储空间概览

通过可保护隐私的读取访问权限,允许无限制的跨站点存储写入权限。

实现状态

本文档简要介绍了无分区跨网站存储方案:Shared Storage API。

  • Shared Storage API 现已正式发布
  • 提供现场演示,测试也是如此:
    • 网址选择输出门控可在 Chrome M105 及更高版本中用于本地测试。
    • 从 Chrome M107 及更高版本中,私有汇总输出关口可用于本地测试。
    • 使用 Private Aggregation API 进行衡量的功能现已正式发布。
  • Chrome 平台状态
建议 状态
针对内容选择功能的事件级报告 (selectURL()) 至少可继续使用到 2026 年
针对每个网站设定预算
说明
在 M119 中提供
允许从响应标头写入
说明
GitHub 问题
在 M124 中提供。可在 M119-M123 中手动启用
不公开汇总贡献超时
说明
在 M119 中提供
使用开发者工具调试共享存储空间 Worklet
部分
在 M120 中提供
将共享存储空间的存储空间上限更新为 5MB
说明
在 M124 中提供

为什么需要此 API?

为了防止跨网站用户跟踪,浏览器会对所有形式的存储(Cookie、localStorage、缓存等)进行分区。但是,许多合法的用例依赖于未分区存储,如果没有新的 Web API 的帮助,这些用例是不可能实现的。例如,内容制作者可能希望衡量跨不同网站的覆盖面,而不依赖跨网站标识符。

借助 Shared Storage API,网站可以存储和访问未分区的跨网站数据。此数据必须在安全环境中读取,以防止泄露。

您可以通过以下两种方式使用共享存储空间数据:

适用对象

有许多不同类型的公司可能会受益于使用 Shared Storage API。例如:

  • 广告技术平台可以衡量广告系列覆盖面、设置频次上限和轮播广告素材,而所有这些目前均依赖于第三方 Cookie。
  • 付款服务机构可以确定用户是否为现有客户并量身定制结账体验。
  • 网络安全公司可以构建自定义逻辑来标记可疑或危险行为。

贵公司是否在寻找尚未解决的跨站点存储解决方案?分享您的用例

用例

Shared Storage API 旨在取代第三方 Cookie 的多种现有用例,以支持多种用例。这包括:

应用场景 说明 输出门
轮播广告素材 您可以存储广告素材 ID、观看次数和用户互动等数据,以确定用户在不同的网站上会看到哪些广告素材。这样,您就可以平衡观看次数,避免过度饱和,从而避免负面的用户体验。 网址选择
进行 A/B 测试 您可以将用户分配到实验组,然后将该组存储在共享存储空间中,以便跨网站访问。 网址选择
为已知客户定制用户体验 您可以根据用户的注册状态或其他用户状态分享自定义内容和号召性用语。 网址选择
防滥用缓解措施 反滥用、反欺诈和网络安全组织通常使用专有技术检测恶意用户,无论是自动机器人还是试图造成伤害的真人。可以在这里测试许多不同的策略,无论是使用网址选择输出门控对用户可信度评分进行编码,还是使用不公开汇总输出门控来构建数据集以进行异常值检测。 网址选择、Private Aggregation API
衡量唯一身份用户覆盖面 许多内容制作者和广告客户经常想知道有多少唯一身份用户看过他们的内容。您可以使用共享存储空间针对用户首次看到您的广告、嵌入的视频、出版物的情况生成报告,并防止将同一用户重复统计到不同的网站上,从而生成一份包含噪声的汇总报告,其中包含大致的唯一身份用户覆盖面。 Private Aggregation API
衡量用户受众特征 内容制作者通常希望了解观众的受众特征。您可以使用共享存储空间在您拥有的场所(例如您的第一方网站)中记录用户的受众特征数据,并使用汇总报告跨许多其他网站(例如嵌入式内容)报告这些数据。 Private Aggregation API
衡量 K+ 频次覆盖面 有时称为“有效频率”,即只有在观看次数达到最低次数时,用户才会识别或回想某些内容(通常在观看广告的情况下)。您可使用共享存储空间生成查看了一段内容至少 K 次的唯一身份用户的报告。 Private Aggregation API

该方案旨在创建一个通用 API,以支持多种未来可能的用例。这样可以进行进一步的实验和更改,与 Web 生态系统一起发展。

共享存储空间的工作原理是什么?

借助共享存储空间,您可以根据跨网站数据做出明智的决策,而无需与嵌入的网站共享用户信息(例如浏览器历史记录或其他个人详情),也无需将数据泄露到您自己的服务器。

您可以随时向共享存储空间写入数据,就像 localStorage 或 indexDB 等其他 JavaScript 存储 API 一样。与其他存储 API 不同,您只能在安全环境(称为共享存储 Worklet)中读取共享存储值。

Worklet 用于添加业务逻辑。在 Worklet 中,您可以读取和处理共享存储空间中的值,但无法直接将确切的值返回给 Worklet 调用方。为了从 Worklet 中提取有用的信息,可以使用一组“门”。目前提供两个门控,但将来可能会添加更多门。

可用的 Shared Storage API 输出关口如下:

  • 跨网站网址选择:您可以运行 Worklet 脚本,根据存储的数据从提供的列表中选择网址,然后在围栏框架中呈现相应内容。
  • 使用 Private Aggregation API 进行噪声汇总:您可以运行 Worklet 通过 Private Aggregation API 发送跨网站数据并返回摘要报告

试用 Shared Storage API

用于网址选择输出关口的 Shared Storage API 和私有汇总输出关口可供测试。内容选择可在 Chrome Canary 版/开发者版/Beta 版 M105 及更高版本中进行测试,而 Private Aggregation API 可用于在 Chrome M107 及更高版本 Canary 版和开发者版中进行测试。您可以在 chrome://flags/#privacy-sandbox-ads-apis 中启用 Privacy Sandbox Ads API 实验标志来测试该 API。

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

使用演示

我们提供了演示,您可以在 GitHub 上查看代码。

本演示从想要跨不同发布商网站存储信息的广告客户、广告技术平台、内容分发商或其他第三方服务的角度构建而成。在该演示中,对于每种用例,同一第三方的代码将同时在发布商 A发布商 B 网站运行。访问发布商的网页,了解数据如何在跨网站环境中共享。

该演示包含内容选择和不公开汇总的用例。

内容选择演示中提供了轮播广告素材为已知客户定制使用体验运行 A/B 测试等用例。

在不公开汇总演示中,您可以预览衡量唯一身份用户覆盖面衡量 K+ 频次覆盖面衡量用户的受众特征,以及

使用开发者工具调试共享存储空间 Worklet

要检查从当前页面启动的共享存储空间 Worklet,您可以访问开发者工具面板中的“Sources”标签页,然后添加“Shared Storage Worklet / Script First Statement”事件监听器断点。此断点将在启动时暂停初始模块脚本执行或短期有效的 Worklet。

通过添加事件级监听器来调试共享存储空间 Worklet。
可以向共享存储空间 Worklet 添加断点。

此外,chrome://inspect/#shared-storage-worklets 页面还会显示所有页面中的所有活跃共享存储空间 Worklet。

互动和分享反馈

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