第三方 Cookie 和嵌入工作流程

第三方 Cookie 的用途很多,但也是跨網站追蹤的重要工具。

Chrome 將推出全新的使用者選擇體驗,讓使用者自行決定是否使用第三方 Cookie。您必須為不使用第三方 Cookie 的使用者做好網站準備。

本頁面提供資訊,說明如何在傳統上仰賴第三方 Cookie 的嵌入式情境中,使用隱私權保護解決方案,以及如何選擇最符合需求的解決方案。

嵌入式服務 (或稱嵌入內容) 包括第三方內容 (例如影片、地圖)、互動式元件 (例如即時通訊、留言系統或付款服務)、登入服務等等。

從第三方 Cookie 轉換的大部分工作,都需要由嵌入式開發人員完成,而不是代管嵌入內容的網站。本指南將主要討論為開發人員建立內嵌服務的解決方案。

如果您的網站採用使用第三方 Cookie 的嵌入功能,請務必檢查及測試嵌入相關歷程,並在發現任何中斷情形時與嵌入供應商聯絡。

稽核並測試嵌入相關的使用者歷程

如要判斷嵌入內容是否受到第三方 Cookie 影響,最好的方法就是啟用第三方 Cookie 測試標記,測試第三方嵌入內容使用者流程。

限制第三方 Cookie 後,請測試下列常見的嵌入情境:

  • 即時通訊小工具:您可以發起即時通訊工作階段嗎?您能否重新整理頁面,而不中斷工作階段?您能否前往其他網頁並維持工作階段?
  • 內容嵌入:您是否可以觀看影片內容或其他嵌入內容?使用者偏好設定 (例如語言或字幕) 是否會保留?您是否在預期的情況下看到廣告,例如在付費訂閱者情況下看不到廣告?
  • 登入:登入功能 (包括任何單一登入 (SSO) 登入功能) 是否可在支援的嵌入內容中運作?這些值是否會在重新載入網頁和導覽至使用相同嵌入項目的網頁時保留?
  • 留言小工具:你是否可以留言、按讚和加強留言?
  • 內嵌式付款解決方案:您是否能順利完成付款?

在後續章節中,您將進一步瞭解這些流程可能受到的影響。

常見用途

許多 API 可用於傳統上仰賴第三方 Cookie 的嵌入項目。下表列出一些常見的工作流程,並提供建議使用的 API 做為概略總結。以下各節將說明這些建議的原因。

Use-case 建議的 API,適用於第三方 Cookie 使用情形
Chat 小工具 CHIPS
地圖嵌入 CHIPS
不受信任的使用者內容
(例如 googleusercontent.com 和 githubusercontent.com) 的沙箱網域,需要依發布者設定狀態範圍
CHIPS
需要依發布商設定狀態的內嵌廣告 CHIPS
透過識別資訊提供者登入 FedCM
嵌入在不同但相關的來源上。 Storage Access API 與相關網站組合
內嵌內容含有登入時偏好設定
(例如不含廣告的影片內容,或語言/字幕偏好設定)
Storage Access API
需要登入的社群媒體留言小工具 Storage Access API
建議的常用用途替代 API

選擇用於嵌入式第三方用途的 API

本節將逐步說明如何選擇合適的替代 API,並說明建議使用的 API。

下列流程圖可協助您選擇可用的選項:

根據三個問題決定第三方 Cookie 替代方案的選項流程圖。
決定要使用哪個 API 嵌入第三方 Cookie

流程圖會提出三個主要問題,我們將進一步探討這些問題,以及為何在每個情況下建議使用特定 API。

1. 這些 Cookie 是否專屬於嵌入網站?

許多第三方嵌入項目會在完全不相關的網站上獨立使用。舉例來說,客戶服務的即時通訊小工具通常需要使用 Cookie,但如果有兩個完全不同的機構都使用同一個即時通訊小工具解決方案,則不需要在兩者之間共用這些 Cookie。事實上,在許多情況下,我們甚至不允許共用 Cookie。

如果您為其他網站提供第三方嵌入服務,且該服務需要使用 Cookie,請考量這些 Cookie 是否專屬於嵌入網站上的服務。這些內容是否曾經由其他網站上的嵌入內容分享?

如果不需要共用 Cookie,使用 CHIPS 拆分 Cookie 是最簡單的做法。這個 API 會將第三方 Cookie 繫結至頂層網站,而不是允許使用相同第三方嵌入功能的所有網站共用 Cookie。CHIPS 的導入方式很簡單,只需要在現有 Cookie 中加入額外的 Partitioned 屬性即可。這樣一來,嵌入式服務仍可儲存狀態,但會移除可進行跨網站追蹤的共用跨網站儲存空間。

網站也應檢查 Cookie 是否用於正確的用途。只有在設定 Cookie 或需要透過 HTTP 要求傳送 Cookie 時,才應使用 Cookie。如果不是這種情況,且 Cookie 僅用於方便的儲存選項,則應改用各種儲存空間 API。這樣一來,在不需要傳送資料時,資料就會保留在本機。儲存空間 API 在所有主要瀏覽器中都已劃分,類似於 CHIPS 劃分 Cookie。

2. 是否為第三方識別資訊提供者的 Cookie?

嵌入內容中第三方 Cookie 的常見用途之一,就是提供由第三方登入服務供應商管理的登入功能,例如「使用 Google 帳戶登入」。在這種情況下,您無法使用分割 Cookie。

Federated Credential Management (FedCM) 是專門針對這類用途的 API,不必使用第三方 Cookie 也能運作。如果識別資訊提供者支援 FedCM,您可能就不需要第三方 Cookie。

如要進一步瞭解如何處理第三方 Cookie 對登入工作流程的影響,請參閱身分識別指南

如果上述選項都無法取代 Cookie,您需要考慮重新啟用嵌入內容的第三方 Cookie 存取權。您可以在特定受控的用途中,透過 Storage Access API 啟用這項功能。這個 API 會重新啟用完整的第三方 Cookie 存取權 (受控管),因此是功能最強大的選項。因此,如果有更嚴格的替代做法,建議您避免使用這項做法。

使用 Storage Access API 時,您必須符合以下幾項規定:

  • 使用者必須先前往嵌入網站的頂層網頁。舉例來說,如果嵌入留言系統,使用者也必須造訪該留言系統的網站。
  • 使用者必須先嵌入內容互動,才能分享 Cookie。也就是說,在使用者互動前,可能無法載入完整的嵌入內容。
  • 使用者可能需要透過瀏覽器彈出式視窗核准 Cookie 共用作業,尤其是在第一次使用時和之後的定期使用時。
  • 嵌入網站可能也需要設定額外的沙箱屬性

這些限制可確保使用者和網站預期的重新啟用第三方 Cookie 動作,只會在使用者和網站預期的情況下執行。不過,在某些情況下,系統可能會略過使用者動作。舉例來說,如果使用者最近已核准存取權,您可能不必在一段時間內 (由瀏覽器定義) 再次提示使用者。

使用者可能會預期在相關網站上看到這類資訊。舉例來說,有些機構會使用多個不同來源,瀏覽器會將這些來源視為跨網站,因此會將這些來源使用的 Cookie 視為第三方 Cookie。例如品牌有國家/地區專屬網站 (例如 example.comexample.co.uk) 或品牌專屬網站 (例如 example.carexample.house)。

在這種情況下,如果相關網站數量不多,您可以使用相關網站集合。網站會提交至 Chrome,讓 Chrome 知道這些網站之間的關聯。這樣一來,您就能以更友善的方式存取 Storage Access API,並減少使用者提示。

如果第三方網站與您無關,且由於替代 API 不足,因此需要完整的第三方 Cookie 存取權,則使用 Storage Access API 時,必須遵守完整的規定和提示。

各種 API 的比較

每個解決方案的特性和限制略有不同,因此適合用於特定用途。下表總結了主要差異:

CHIPS 分割儲存空間 FedCM Storage Access API 與相關網站集 Storage Access API
使用者不必先以頂層網站身分存取嵌入的派對
不需要向使用者提示,即可核准存取權
不必要求使用者與嵌入內容互動
(對於嵌入的具有頂層存取權的網站,也可能為 true)。
實作作業 極低
可用於跨多個頂層網站/來源共用 Cookie
(提案正在討論中。)
適用於非 Chromium 瀏覽器
(會改用 Storage Access API。)
嵌入式用途的行為、所需工作量等級和主要 API 可用性

支援跨瀏覽器的用途

如表格最後一行所述,瀏覽器相容性是決定解決方案時的重要因素之一。部分 API (CHIPS、FedCM、相關網站組合) 僅適用於 Chromium 瀏覽器。目前唯一的兩種跨瀏覽器解決方案是分割儲存空間 API (不需要 Cookie 時),或是 Storage Access API (需要 Cookie 時)。

不過,如先前所述,Storage Access API 有許多限制,可能會影響網站的使用者體驗。Chrome 團隊已著手新增其他 API,這些 API 旨在滿足特定用途,並提供類似於第三方 Cookie 的體驗。因此,建議您考量最佳選項,並將這些選項視為漸進式增強功能,並在不支援的瀏覽器中改用 Storage Access API。

由於 Cookie 可能會因多種原因而遭到封鎖 (例如瀏覽器設定、擴充功能),因此 API 支援功能的偵測可能不足以提供完整資訊。建議您改為測試預期的 Cookie 是否存在,如果不存在,請改用 Storage Access API 工作流程來要求存取第三方 Cookie

立即採取行動!

如果您的第三方嵌入項目在未使用第三方 Cookie 的情況下無法運作,您可以採用這篇文章中詳述的多種解決方案,因應可能產生的影響。檢查服務是否使用第三方 Cookie 的最佳時機就是現在

Chrome 正在測試移除第三方 Cookie,如果您目前遇到嵌入內容無法正常運作的問題,可以使用本文所述的多種短期解決方案,同時遷移至本文所述的替代方案。詳情請參閱保留重要使用者體驗說明文件。

如果您對本指南未涵蓋的第三方嵌入用途有任何疑問,可以在開發人員支援存放區中使用「第三方 cookie 淘汰」標記提出新問題