由 Chrome 協助進行測試

為因應第三方 Cookie 的淘汰措施,我們提供完善的做法 由 Chrome 執行的測試模式,可讓網站預覽網站行為 以及功能在沒有第三方 Cookie 的情況下運作本指南提供 概略介紹 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 淘汰值存取標籤 ,瞭解實作詳情

我們也會照常傳送這項提案 閃爍開發程序, 來設定技術設計和 Chrome 版本里程碑。 雖然這是我們希望即將推出的實作項目,進行額外討論 及核准後,這些細節可能還是會有所變動。我們會繼續 隨著計畫進度更新這個頁面,你可以繼續前往 提供意見或問題

模式 A:加上標籤的瀏覽器群組

參與測試的機構可以選擇接收 一組永久性標籤 針對同一組瀏覽器,使用不同廣告技術進行協調的實驗。 舉例來說,假設瀏覽器屬於 label_only_3 實驗群組 ( 如下表所示),則參與競價的所有廣告技術都能 你會看到相同的 label_only_3 標籤和座標:請使用 PS R&M API,但不要使用第三方 Cookie。我們期望參與 並確保標籤會轉寄給其他參與者 在整個廣告選擇流程中 成效評估方式

舉例來說,這個設定允許多位參與者 Protected Audience 在一組一致瀏覽器中未使用第三方 Cookie 的競價。 競價賣方的參與者會將觀察到的標籤轉寄給買方 以利協調測試。

這些標籤不會影響 Chrome 執行個體中的任何行為。 包括第三方 Cookie 的可用性標籤會提供 將模型分組 為參與實驗的各方強制執行相關參數。如果 您正在測試移除第三方 Cookie 的效果,接著測試每個參與者 必須負責針對具有這類機制的瀏覽器排除第三方 Cookie 資料 標籤。

目的是讓群組能代表正常的 Chrome 流量。沒錯 代表第三方 Cookie 和 PS R&M API 應該都能使用 部分使用者可能透過設定或擴充功能來變更或停用 接著介紹網際網路通訊層 包括兩項主要的安全防護功能

一般而言,標籤在 Chrome 的瀏覽工作階段中會保持不變 跨工作階段。不過,由於罕見情況,因此無法保證一定能達成此目標 完全重設瀏覽器也可能會重設目前的標籤。

我們計劃將 8.5% 的 Chrome 穩定版瀏覽器納入模式 A 上, 因此初始提案會將這些人分為 9 個群組子群組較少 是讓廣告技術能靈活合併標籤來建立 測試各種大小的實驗群組不會重疊。

請注意,control_1.* 標籤主要用於「控制組 1」為 CMA 的預測結果 業界測試指南, 因此,測試參與者不應使用 Topics API 或執行 Protected Audience 並針對此流量進行競價由於標籤不會影響瀏覽器行為 參與者不得通過觀察到的主題,或執行 Protected Audience 競價 偵測到 control_1.* 群組標籤時。

不客氣 意見回饋 評估這類群體是否符合參與需求 員工只能在您的 Google Cloud 機構中存取資源 無法在其他機構存取資源

標籤 穩定流量百分比
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

模式 label_only_ 瀏覽器群組已於 2023 年 11 月推出,且 模式 A control_1_* 群組已於 2024 年 1 月 4 日起建立。

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

Chrome 已為大約 1% 的 Chrome 穩定版停用第三方 Cookie 2024 年 1 月 4 日的所有瀏覽器,以及開發人員、Canary 版和 Beta 版 。測試 PS R&M API 的機構不需要 選擇使用這個模式,因為整個瀏覽器都會統一套用這個模式 人口。當然,有些網站功能可能會 受到的影響。 CHIPS相關網站集

此外,我們計劃在模式 B 內提供一小部分的流量 已停用 PS R&M API。其他 API (例如相關網站集、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。偵錯報表 第三方 Cookie 仍會逐步淘汰。

  • 針對 Attribution Reporting API,由於第三方 Cookie 已停用, 報表來源將無法繼續 必須設定 debug_key 欄位,才能設定 ar_debug Cookie (用於歸因成功報表) 和 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 隱私權和安全性設定停用。同樣地 第三方 Cookie 不一定會停用 control_2 群組,因為使用者可以存取瀏覽器 UI,允許第三方 Cookie。

實驗監控

請務必監控每種實驗組和控制組的相對流量 標籤。treatment_1.1的流量應與 treatment_1.2treatment_1.3

對於包含標籤來自 的流量,建議您自行斟酌 Chrome 120 以下版本。如果通常負責處理這類問題的團隊 無效流量能找出出現無效特徵的使用者代理程式 就可以從測試結果中篩除這些流量

放送前期間標籤

在 2024 年 1 月前,多個實驗組的執行實驗前期間: Chrome 大約需要一段時間 非偏見的團體系統會對已排定的所有實驗組執行這些前期測試 在 1 月開始:模式 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 ,確保 實驗群組中的瀏覽器包含Sec-Cookie-Deprecation 要求標頭。

舉例來說,假設瀏覽器屬於 example_label_1 群組,則 包含此 Cookie 的請求也會加入 Sec-Cookie-Deprecation 標題。

Sec-Cookie-Deprecation: example_label_1

如果瀏覽器不屬於某個群組,系統就不會傳送標頭。 標籤會與有 Cookie 相關聯 因此當 Cookie 刪除時 封鎖或封鎖特定網站,標籤並不會 已傳送。Partitioned 屬性適合在 第三方 Cookie 已完全淘汰,這表示 Partitioned 個 Cookie 可能會 已設定在第三方 Cookie 遭封鎖時設定。

存取 cookieDeprecationLabel JavaScript API

Cookie-Deprecation 值也可以使用 navigator.cookieDeprecationLabel.getValue() JavaScript API。這樣將會傳回 承諾會解析為包含適用群組標籤的字串。適用對象 舉例來說,如果瀏覽器屬於 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

chrome://flags/#tpc-phase-out-facilitated-testing
由 Chrome 協助執行的測試旗標設定

旗標下拉式選單中包含多個選項。測試人員主要是 對標有「Force」的報導感興趣這樣實驗才能確保 行為會啟用,不受其他裝置設定影響。

如果只想測試實驗群組標籤,請選取「已啟用 Force Control 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-testing" 管理問題。不客氣 為最初問題提供意見和討論:

你也可以 提出新問題或討論 並安裝「透過 Chrome 協助執行的測試」範本。