使用者代理程式縮減來源試用

「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 getter
  • navigator.platform JavaScript getter
  • navigator.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 縮減來源試用?

  1. 如要註冊來源試用並取得網域權杖,請前往「使用者代理程式縮減設定」頁面

  2. 更新 HTTP 回應標頭:

    1. Origin-Trial: <ORIGIN TRIAL TOKEN> 新增至 HTTP 回應標頭,其中 <ORIGIN TRIAL TOKEN> 包含註冊來源試用時取得的權杖。
    2. Accept-CH: Sec-CH-UA-Reduced 新增至 HTTP 回應標頭。
    3. 如果設定 Accept-CH,系統只會在後續向來源發出要求時傳送經過縮減的 User-Agent 字串;如要重新傳送第一個使用較少的 User-Agent 字串的導覽要求,請將 Critical-CH: Sec-CH-UA-Reduced 新增至 HTTP 回應標頭,以及 Accept-CHOrigin-Trial 標頭。
    4. 注意:如果回應標頭包含有效的 Origin-Trial 權杖和 Accept-CH: Sec-CH-UA-Reduced,那麼所有子資源要求 (例如圖片或樣式表) 和子導覽 (例如 iframe) 都會傳送經過減少的通用 Analytics (分析) 字串,即使這些要求的來源並未在來源試用中註冊也一樣。
  3. 在 Chrome M95 (或以上版本) 中載入您的網站,並開始接收縮減的通用 Analytics (分析) 字串。

  4. 如有任何問題或意見回饋,請前往通用 Analytics (分析) 的 GitHub 存放區提出。

  5. 如需來源試用的簡單示範 (和原始碼),請參閱 https://uar-ot.glitch.me/

如何以第三方嵌入功能參與來源試用?

自 Chrome 96 版起,第三方嵌入 (例如其他網站中的 iframe) 皆可參與來源試用,無需註冊頂層網站。

如何註冊為第三方嵌入網站:

  1. 造訪「Trial for User Agent Reduction」,然後按一下「Register」
  2. 建立權杖時,請務必勾選「Third-party matching」核取方塊。
  3. 如要從第三方嵌入接收縮短的 User-Agent 標頭,請更新 HTTP 回應標頭
  4. 如要在 JavaScript API 中接收縮短的 User-Agent 字串,您必須透過 JavaScript 插入試用權杖。

關於在第三方嵌入中執行來源試用的幾個重點: + 第三方嵌入無法指定 Critical-CH,因此第一個導覽不會傳送縮減的通用 Analytics (分析) 字串,但第三方嵌入的子資源要求會傳送縮減的通用 Analytics (分析) 字串。 + 如果已針對第三方嵌入項目的來源驗證來源試用,在頂層導覽中向同一來源發出的後續要求就會傳送縮短的通用 Analytics (分析) 字串。因此,建議您擴大參與頂層和嵌入要求的來源試用計畫。+ 如果使用者代理程式已停用第三方 Cookie,雖然 JavaScript API 仍會收到縮減的通用 Analytics (分析) 字串,但第三方 Cookie 就無法在第三方嵌入要求中處理 User-Agent 標頭。

如何驗證來源試用是否有效?

如要驗證來源試用是否正常運作,請檢查要求標頭,並確認下列事項:

  1. User-Agent 標頭包含縮減的版本。請參閱縮減的通用 Analytics (分析) 字串範例清單。有一個容易辨別的是,Chrome 子版本字串包含 0.0.0
  2. Sec-CH-UA-Reduced 標頭已設為 ?1

包含來源試用權杖的初始回應標頭應如下所示:

包含來源試用權杖的初始回應標頭。

包含簡化的通用 Analytics (分析) 字串的後續要求標頭看起來會像這樣:

後續要求標頭,包含縮短的通用 Analytics (分析) 字串。

如何停止參與 User-Agent 縮減來源試用計畫?

在試用期間,您可以隨時停止參與,並收到完整的 User-Agent 字串。如要停止參與,請按照下列步驟操作:

  1. 在 HTTP 回應中傳送「不含」 Sec-CH-UA-ReducedAccept-CH 標頭。注意:如果網站並未要求任何其他用戶端提示,值為空白的 Accept-CH 是有效的方法。
  2. 從 HTTP 回應中移除使用者代理程式縮減試用的 Origin-Trial 標頭。
  3. 如果已設定,請移除 HTTP 回應中 Critical-CH 標頭的 Sec-CH-UA-Reduced

來源試用會持續多久?

通用 Analytics (分析) 縮減來源試用至少會執行六個月,對應約六個 Chrome 里程碑。來源試用會在 M95 中顯示,並在 M101 之前結束,屆時 Chrome 會先評估來源試用的意見回饋,再按照推出計畫逐步傳送縮短的使用者代理程式字串。如果網站需要更多時間,可以選擇加入後續的淘汰來源試用,在至少另外六個月內存取完整的通用 Analytics (分析) 字串。準備就緒後,我們會發布更多關於淘汰試用的詳細資料。

如何分享有關 User-Agent 縮減來源試用的意見?

如有任何問題或意見回饋,請前往通用 Analytics (分析) 的 GitHub 存放區提出。