Chrome 协助测试

为了针对第三方 Cookie 的弃用做好准备,我们提供了 Chrome 协助测试模式,允许网站预览网站行为如何 和功能无需第三方 Cookie 即可正常运行。本指南提供了 简要介绍 Chrome 计划提供的测试模式以及如何访问 实验组标签。

这里的“Chrome 浏览器”指的是 Chrome 客户端:Chrome 安装。每个用户的数据 目录 构成独立客户。

实验组:一组 Chrome 浏览器 已启用、已停用或已配置在由 Chrome 提供支持的背景下 测试,即为其设置标签的一组浏览器。

标签:在此上下文中,是一个请求标头 值。 整个实验期间,实验组中的每个浏览器都将保留在该组中 Chrome 协助测试期间,确保浏览器使用的标签 确保所有测试人员都能保持一致

我们提供了两种不同的模式:

  • 模式 A:从 2023 年 11 月起,测试 PS R&M API 的组织 已选择在部分 Chrome 中接收一致的标签 以便跨不同测试人员进行协调测试。
  • 模式 B:自 2024 年 1 月 4 日起,Chrome 将在全球范围内停用 部分 Chrome 浏览器的第三方 Cookie。

哪些情况下会应用第三方 Cookie 它们在模式 B 下被停用,在整个阶段结束时,它们将保持停用状态 第三方 Cookie。

我们与 CMA 以确保这些测试模式与测试框架(以及 (如其 行业测试指南。 因此,CMA 预计在这两种模式下的测试结果 可用于评估 Privacy Sandbox。CMA 表示 可能更注重实验设计 2 的结果, “模式 B”标签和“模式 A 控件 1”标签。请参阅 CMA 于 10 月 26 日发布的指南 有关实验设计 2 的更多信息。

可以使用可用的临时 Cookie-Deprecation 值访问标签 从 HTTP 标头或 JavaScript API 获取。请参阅下一部分 使用 Cookie 弃用值访问标签 了解实现详情。

我们还会通过常规 Blink 开发流程, 技术设计和 Chrome 发布里程碑将最终敲定。 虽然这是我们想要交付的实施方案, 批准后,这些详细信息仍可能会发生变化。我们将继续 随着计划的推进,您可以更新此页面。您可以继续 提供反馈或问题

模式 A:添加了标签的浏览器组

参与测试的组织将可以选择接收 一组永久性标签, 在同一组浏览器上跨不同广告技术平台进行协调实验。 例如,如果某个浏览器被归入 label_only_3 实验组(作为 则所有参与的广告技术平台都将能够 查看相同的 label_only_3 标签并相应地进行坐标:使用 PS R&M API,但请勿使用第三方 Cookie。我们预计 确保将标签转发给其他参与者 在整个广告选择过程和 衡量。

例如,这样可让多个参与者 Protected Audience 使用同一组浏览器进行竞价。通过 竞价卖方参与者会将观察到的标签转发给买方, 促进协调测试。

这些标签不会影响 Chrome 浏览器中的任何行为 包括第三方 Cookie 的可用性。标签提供 对独立、协调的实验进行分组, 让参与实验的各方强制实施实验的相关参数。如果 您需要测试移除第三方 Cookie 的效果 负责排除具有 标签。

目的是创建能够代表正常 Chrome 流量的群组。这样 意味着第三方 Cookie 和 PS R&M API 都应该可用, 部分用户可能已使用设置或扩展程序更改或停用 功能。

在 Chrome 的浏览会话期间,标签通常会保持不变; 。不过,我们无法保证这一点 其中,完全重置浏览器可能还会重置当前标签。

我们计划让 8.5% 的 Chrome 稳定版浏览器支持模式 A,我们的 初始方案将该人群划分为九组。较小的子群组 旨在让广告技术平台灵活地组合标签以创建 自己的实验规模不同。群组不会重叠。

请注意,control_1.* 标签旨在用作“Control 1”为 CMA 的 行业测试指南、 因此测试参与者不得使用 Topics API,也不得运行 Protected Audiences 针对此流量的竞价。由于标签不会影响浏览器行为 参与者不得跳过观测到的主题,也不得开展 Protected Audience 竞价 在检测到 control_1.* 组标签时有效。

我们欢迎 反馈 这些群体是否满足参与 组织。

标签 稳定流量的百分比
control_1.1 0.25
control_1.2 0.25
control_1.3 0.25
control_1.4 0.25
label_only_1 1.5
label_only_2 1.5
label_only_3 1.5
label_only_4 1.5
label_only_5 1.5

模式 A label_only_ 浏览器群组自 2023 年 11 月推出,并且 模式 A“control_1_*”群组自 2024 年 1 月 4 日起可用。

模式 B:停用 1% 的第三方 Cookie

Chrome 已在 Chrome 稳定版中停用大约 1% 的第三方 Cookie 从 2024 年 1 月 4 日开始,开发者版、Canary 版和 Beta 版 (2023 年第 4 季度)。测试 PS R&M API 的组织无需 选择启用此模式,因为它会统一应用于整个浏览器 人口。当然,系统也可能会 会受到影响。 条状标签Related Website Sets

此外,我们计划在模式 B 中提供一小部分流量, 已停用 PS R&M API。其他 API,例如 Related Website Sets、CHIPS 和 FedCM,不会被停用。我们预计这一组合 为不使用第三方 Cookie 的浏览器建立效果基准 而不使用 PS R&M API。

在模式 B 中,我们还为受影响的浏览器提供了标签。通过 这些标签在 API 停用的同时仍可用。我们是 提议将总体人群分为三个 treatment_1.* 组,其中 第三方 Cookie 被停用,但可以使用 PS R&M API,并且 control_2 组,其中同时包含第三方 Cookie 和 PS R&M API 已停用。

协助调试 Attribution Reporting API 和不公开汇总 API 集成,并帮助测试参与者更好地了解 ARA 调试报告不公开汇总调试报告 模式 B 下的浏览器上仍可使用,只要用户没有 明确阻止的第三方 Cookie。以下国家/地区不支持调试报告: control_2,因为 PS R&M API 在该 Slice 中不可用。调试报告 和逐步淘汰第三方 Cookie 的同时仍会逐步被淘汰。

  • 对于 Attribution Reporting API,由于第三方 Cookie 已停用, 报告来源 设置 ar_debug Cookie,并且应依赖于设置 debug_key 字段 (用于归因成功报告)和 debug_reporting 字段(用于详细 报告)来选择启用或停用接收调试报告。
  • 对于 Private Aggregation API,报告来源应依赖于调用 enableDebugMode(),用于控制是否选择启用调试报告。 公司应继续 考虑法规义务在使用归因时可能需要遵守的法律义务 Reporting API 和 Private Aggregation API,包括调试报告。

模式 A 继续运行,并且这些组与模式 A 组不同, 用户要么采用模式 A 或模式 B,要么都不采用任何模式。测试参与者 应使用 control_1.* 流量作为代表状态的对照组 使用第三方 Cookie。

标签 稳定流量的百分比
treatment_1.1 0.25
treatment_1.2 0.25
treatment_1.3 0.25
control_2 0.25

Chrome 还限制了 20% 的 Chrome Canary 版、开发者版和 Beta 版客户端的 Cookie。

标签 非稳定流量占比
prestable_treatment_1 10%
prestable_control_2 10%

将其中一个实验组纳入其中,效果与将其纳入稳定版中的效果相同。

与模式 A 一样,PS R&M API 也不一定可用,因为用户可以 从 Chrome 的隐私设置和安全性设置中停用它们。同样, 我们并不保证一定能为 control_2 组,因为用户可以访问浏览器界面以允许使用第三方 Cookie。

实验监控

确保监控每个实验组和对照组的相对流量 标签。treatment_1.1 的流量应该与 treatment_1.2treatment_1.3

我们建议您慎重考虑包含来自以下来源的标签的流量: 版本低于 120 的 Chrome 版本。如果您的团队通常负责处理 无效流量用于标识表现出无效特征的用户代理 那么不妨从测试结果中滤除它们。

投放前时段标签

在 2024 年 1 月之前,我们还为多个实验组实施了前期: 让 Chrome 根据统计信息准确调整规模和选择 公正的群体。这些前期涵盖已排定的所有实验组 从一月份开始:模式 B 组和 Control_1.* 组。不需要 (针对开发者或网站操作),采用实施前时段的实验组不会 行为或 API 可用性方面的变化,但请注意,您可能会看到 在某些情况下会返回 preperiod 标签。虽然收到 “preperiod”标签可能会转移到某个实验组,这不是 因此建议不要假定带有此标签的浏览器 才能参与实验

实验组是所调研人群的一部分: 其中一个加标签的组。

在模式 A 和模式 B 期间,我们引入了 可通过选择启用的 HTTP 标头和 JavaScript 访问的 Cookie-Deprecation 值 API,为浏览器的适用模式 A 或 B 提供标签 (按照上述百分比所定义),前提是其属于 这些。

访问标签涉及访问用户设备上存储的信息。在 某些管辖区(例如欧盟和英国),我们了解此类活动 与使用 Cookie 类似,因此访问标签可能需要 用户同意。在开始请求标签之前,我们建议您先 判断此用户意见征求义务是否适用于您。

要接收 Sec-Cookie-Deprecation 请求标头,网站必须先设置 receive-cookie-deprecation Cookie。此 Cookie 必须使用 Partitioned 属性,这意味着您必须按 顶级网站。

例如,如果 3p-example.site 想要接收 Sec-Cookie-Deprecation example.com 上嵌入的资源上的标头,3p-example.site 必须 并在该环境中设置以下 Cookie。

Set-Cookie: receive-cookie-deprecation=1; Secure; HttpOnly; Path=/; SameSite=None; Partitioned;  Max-Age=15552000

SecureHttpOnlySameSitePartitioned Cookie 属性 必填。其他属性:DomainPathExpiresMax-Age 请根据需求设置,不过 Path=/ 是一个不错的默认值。示例 此处设置 Max-Age=15552000,使 Cookie 在 180 秒之后不会过期 天。

您可能需要先设置 receive-cookie-deprecation=1 Cookie 在 Chrome 协助测试开始前,确保 实验组中的浏览器包括Sec-Cookie-Deprecation 请求标头。

例如,假设浏览器位于 example_label_1 组中,然后 包含此 Cookie 的请求还将包含 Sec-Cookie-Deprecation 标头。

Sec-Cookie-Deprecation: example_label_1

如果浏览器不属于某个组,则不会发送任何标头。 标签与 Cookie 的存在相关联 或针对具体网站屏蔽了相应网站,则标签不会 已发送。由于 Partitioned 属性应在以下时间过后继续使用: 第三方 Cookie 已被完全弃用,这意味着 Partitioned Cookie 可能会 在第三方 Cookie 被屏蔽时设置。

访问 cookieDeprecationLabel JavaScript API

Cookie-Deprecation 值也可使用 navigator.cookieDeprecationLabel.getValue() JavaScript API。这将返回一个 promise ,该 promise 可解析为包含适用组标签的字符串。对于 例如,如果浏览器位于 example_label_1 组中:

// Feature detect temporary API first
if ('cookieDeprecationLabel' in navigator) {
 // Request value and resolve promise
 navigator.cookieDeprecationLabel.getValue().then((label) => {
   console.log(label);
   // Expected output: "example_label_1"
 });
}

如果浏览器不属于某个组,该 API 将不可用或 该值将为空字符串,因此请务必执行特征检测。

无论是否存在 receive-cookie-deprecation 个 Cookie。不过,如果 Cookie 被完全阻止 那么相应 API 将再次不可用或 返回一个空字符串。

与客户端提供的任何值一样,请务必清理并验证 值。

演示和测试

从 Chrome 120 开始,有一些标志可用于启用本地开发者 以及请求和读取标签的测试

chrome://flags/#tpc-phase-out-facilitated-testing标志可用于 启用一组测试标签。这些标签的前缀为 fake_,即 将其与真实标签区分开来。启用该标志不会选择 在浏览器中输入任何实验组。

您可以访问 goo.gle/cft-demo 查看标签的实际应用。

因为 Privacy Sandbox 相关性和效果衡量强制执行注册 API,您可能需要使用 chrome://flags/#privacy-sandbox-enrollment-overrides 并提供演示 来源。或者,如果您要使用 从终端运行 Chrome: --args --disable-features=EnforcePrivacySandboxAttestations

<ph type="x-smartling-placeholder">
</ph> chrome://flags/#tpc-phase-out-facilitated-testing
Chrome 协助测试的标志设置

标志下拉菜单中包含多个选项。测试人员将主要 对标记为“Force”的条目感兴趣因为这样可以确保实验 行为。

若要仅测试实验组标签,请选择“已启用强制对照组 1”或 “已启用 Force LabelOnly”。这些方法会导致浏览器向 “fake_control_1.1”或“fake_label_only_1.1”标签。

在 Chrome M120 或更高版本中,您还可以使用以下条目。

要测试第三方 Cookie 屏蔽功能,请选择“已启用强制处理”。这个 系统将发送“fake_treatment_1.1”实验组标签,还可以修改 Cookie 设置页面和当前 Cookie 设置来阻止第三方 Cookie。

若要在不使用私下广告 API 的情况下测试第三方 Cookie 屏蔽功能,请选择“强制 控件 2”。这将发送“fake_control_2”实验组标签, 更新 Cookie 设置页、阻止第三方 Cookie 以及禁用新的 私下广告 API。

请注意,存在一个问题,即浏览器始终使用 Cookie 设置页面以及用于阻止第三方 Cookie 的设置,即使您 来停用该标志我们正在努力解决这一问题,但在此期间, 可以通过以下方式在单独的 Chrome 数据目录中测试这些标志值:启动 带有 --user-data-dir=<new dir> 命令行标志的 Chrome。

反馈

我们使用“chrome-testing” 标签,以管理问题。我们欢迎 您对于初始问题的反馈和讨论:

您还可以 提出新的问题或讨论 使用“Chrome 协助测试”在代码库中模板。