「User-Agent Reduction」減少了使用者代理程式 (UA) 字串中的資訊,只涵蓋瀏覽器的品牌和主要版本、電腦版或行動裝置的差異,以及執行該平台的平台,進而減少被動數位指紋採集途徑。目前,通用 Analytics (分析) 字串會在每個 HTTP 要求中共用,並以 JavaScript 對瀏覽器載入的所有資源公開。這個專區包含有關瀏覽器、執行平台和功能的重要資訊。User-Agent Client Hints (UA-CH) 可以提供與完整通用 Analytics (分析) 字串相同的資訊,但允許網站僅要求所需的通用 Analytics (分析) 資訊。
從 Chrome 95 Beta 版開始,我們將開放 User-Agent Reduction 的來源試用,允許網站立即選擇接收縮減的通用 Analytics (分析) 字串。這樣一來,在縮短通用 Analytics (分析) 成為 Chrome 的預設行為前,網站就能發現並修正問題 (預計在 2022 年第二季開始降低)。如果您想在穩定使用者版本推出前,對 95 Beta 版使用者測試來源試用,請務必在 Chrome 95 的發布日期前選擇加入測試 (目前排程為 2021 年 10 月 19 日)。
以下概略說明來源試用的運作方式和注意事項。一如以往,歡迎您在通用 Analytics (分析) 縮減 GitHub 存放區中,針對試用方案提出任何問題提出或提出任何問題。
什麼是使用者代理程式?
每個 HTTP 要求都會共用 User-Agent (UA) 字串,並在 JavaScript 中向瀏覽器載入的所有資源公開。目前,這些資訊提供了瀏覽器及其執行平台的重要資訊
為什麼使用者代理程式遭到縮減?
「使用者代理程式縮減」功能可減少 Chrome 瀏覽器首次於 2020 年 1 月宣布的被動數位指紋採集途徑。因此,只要將通用 Analytics (分析) 字串中的資訊減少至瀏覽器的品牌和主要版本、電腦版或行動裝置的差異,以及執行平台的平台,就能更難識別個別使用者。
這對網頁程式開發人員有何影響?
網站應準備接收較少的通用 Analytics (分析) 字串,並考慮參加來源試用 (詳情請見下方說明)。縮短後的使用者代理程式值會顯示在:
User-Agent
HTTP 要求標頭navigator.userAgent
JavaScript getternavigator.platform
JavaScript getternavigator.appVersion
JavaScript getter
相較於減少的使用者代理程式所分享的資訊,要接收的用戶端資訊更多,網站必須遷移至新的 User-Agent Client Hints API。如要進一步瞭解遷移策略,請參閱「遷移至 User-Agent Client Hints」。
使用者代理程式縮減方案目前不包含 iOS 和 WebView,因此這些平台會繼續取得完整的使用者代理程式字串。主要原因是這些平台尚未導入使用者代理程式用戶端提示。
此來源試用的運作方式為何?
這項來源試用與標準來源試用稍有不同。標準來源試用只能控制回應中的行為 (例如,在回應的 JavaScript 中控制 API 存取權)。在這個試用方案中,我們不僅要修改 JavaScript API 中提供的通用 Analytics (分析) 字串,也要修改 HTTP 要求中傳送的 User-Agent 標頭。
為了執行這項作業,我們定義了一個名為 Sec-CH-UA-Reduced
的臨時用戶端提示,要求中存在此提示將指出使用者代理程式標頭值包含縮減的通用 Analytics (分析) 字串。只有在來源試用權杖有效時,系統才會傳送 Sec-CH-UA-Reduced
用戶端提示以及縮短的通用 Analytics (分析) 字串,且 Sec-CH-UA-Reduced
用戶端提示會在來源試用結束後失效。請注意,除非您設定 Critical-CH
header
,否則第一個導覽要求仍會收到未經分類的 User-Agent 字串。
傳送到同一來源的子資源要求會自動傳送與頂層要求傳送的相同 User-Agent 字串。此外,對第三方來源發出的子資源要求也會傳送與頂層要求相同的 User-Agent 字串,包括在來源試用權杖有效的情況下,縮短的通用 Analytics (分析) 字串,前提是來源試用權杖在權限政策允許的情況下。
如何參與 User-Agent 縮減來源試用?
如要註冊來源試用並取得網域權杖,請前往「使用者代理程式縮減設定」頁面。
更新 HTTP 回應標頭:
- 將
Origin-Trial: <ORIGIN TRIAL TOKEN>
新增至 HTTP 回應標頭,其中 <ORIGIN TRIAL TOKEN
> 包含註冊來源試用時取得的權杖。 - 將
Accept-CH: Sec-CH-UA-Reduced
新增至 HTTP 回應標頭。 - 如果設定
Accept-CH
,系統只會在後續向來源發出要求時傳送經過縮減的 User-Agent 字串;如要重新傳送第一個使用較少的 User-Agent 字串的導覽要求,請將Critical-CH: Sec-CH-UA-Reduced
新增至 HTTP 回應標頭,以及Accept-CH
和Origin-Trial
標頭。 - 注意:如果回應標頭包含有效的
Origin-Trial
權杖和Accept-CH: Sec-CH-UA-Reduced
,那麼所有子資源要求 (例如圖片或樣式表) 和子導覽 (例如 iframe) 都會傳送經過減少的通用 Analytics (分析) 字串,即使這些要求的來源並未在來源試用中註冊也一樣。
- 將
在 Chrome M95 (或以上版本) 中載入您的網站,並開始接收縮減的通用 Analytics (分析) 字串。
如有任何問題或意見回饋,請前往通用 Analytics (分析) 的 GitHub 存放區提出。
如需來源試用的簡單示範 (和原始碼),請參閱 https://uar-ot.glitch.me/。
如何以第三方嵌入功能參與來源試用?
自 Chrome 96 版起,第三方嵌入 (例如其他網站中的 iframe) 皆可參與來源試用,無需註冊頂層網站。
如何註冊為第三方嵌入網站:
- 造訪「Trial for User Agent Reduction」,然後按一下「Register」。
- 建立權杖時,請務必勾選「
Third-party matching
」核取方塊。 - 如要從第三方嵌入接收縮短的 User-Agent 標頭,請更新 HTTP 回應標頭。
- 如要在 JavaScript API 中接收縮短的 User-Agent 字串,您必須透過 JavaScript 插入試用權杖。
關於在第三方嵌入中執行來源試用的幾個重點:
+ 第三方嵌入無法指定 Critical-CH
,因此第一個導覽不會傳送縮減的通用 Analytics (分析) 字串,但第三方嵌入的子資源要求會傳送縮減的通用 Analytics (分析) 字串。
+ 如果已針對第三方嵌入項目的來源驗證來源試用,在頂層導覽中向同一來源發出的後續要求就會傳送縮短的通用 Analytics (分析) 字串。因此,建議您擴大參與頂層和嵌入要求的來源試用計畫。+ 如果使用者代理程式已停用第三方 Cookie,雖然 JavaScript API 仍會收到縮減的通用 Analytics (分析) 字串,但第三方 Cookie 就無法在第三方嵌入要求中處理 User-Agent
標頭。
如何驗證來源試用是否有效?
如要驗證來源試用是否正常運作,請檢查要求標頭,並確認下列事項:
- User-Agent 標頭包含縮減的版本。請參閱縮減的通用 Analytics (分析) 字串範例清單。有一個容易辨別的是,Chrome 子版本字串包含
0.0.0
。 Sec-CH-UA-Reduced
標頭已設為?1
。
包含來源試用權杖的初始回應標頭應如下所示:
包含簡化的通用 Analytics (分析) 字串的後續要求標頭看起來會像這樣:
如何停止參與 User-Agent 縮減來源試用計畫?
在試用期間,您可以隨時停止參與,並收到完整的 User-Agent 字串。如要停止參與,請按照下列步驟操作:
- 在 HTTP 回應中傳送「不含」
Sec-CH-UA-Reduced
的Accept-CH
標頭。注意:如果網站並未要求任何其他用戶端提示,值為空白的Accept-CH
是有效的方法。 - 從 HTTP 回應中移除使用者代理程式縮減試用的
Origin-Trial
標頭。 - 如果已設定,請移除 HTTP 回應中
Critical-CH
標頭的Sec-CH-UA-Reduced
。
來源試用會持續多久?
通用 Analytics (分析) 縮減來源試用至少會執行六個月,對應約六個 Chrome 里程碑。來源試用會在 M95 中顯示,並在 M101 之前結束,屆時 Chrome 會先評估來源試用的意見回饋,再按照推出計畫逐步傳送縮短的使用者代理程式字串。如果網站需要更多時間,可以選擇加入後續的淘汰來源試用,在至少另外六個月內存取完整的通用 Analytics (分析) 字串。準備就緒後,我們會發布更多關於淘汰試用的詳細資料。
如何分享有關 User-Agent 縮減來源試用的意見?
如有任何問題或意見回饋,請前往通用 Analytics (分析) 的 GitHub 存放區提出。