第三方 Cookie 和嵌入工作流程

第三方 Cookie 的用途廣泛,但也是跨網站追蹤的主要推手。

瀏覽器限制、使用者設定開發人員標記企業政策,都可能封鎖第三方 Cookie。

無論是否使用第三方 Cookie,您的網站或服務都必須為所有使用者提供良好的體驗。

本頁面提供隱私權保護解決方案的相關資訊,適用於傳統上依賴第三方 Cookie 的嵌入式情境,以及協助您選擇最符合需求的解決方案的策略。

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

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

如果網站依賴使用第三方 Cookie 的嵌入內容,請務必稽核及測試與嵌入內容相關的歷程,並在發現任何中斷問題時與嵌入內容供應商聯絡。

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

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

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

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

在接下來的章節中,您會看到更具體的資訊,瞭解這些流程可能受到的影響。

常見用途

有許多 API 可用於嵌入,這些 API 傳統上都仰賴第三方 Cookie。下表列出一些常見的工作流程,以及建議使用的高階 API 摘要。以下各節將說明這些建議的理由。

Use-case 建議用於第三方 Cookie 的 API
即時通訊小工具 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) 專為這個用途設計,而且不需要第三方 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
使用者不必先以頂層網站的形式存取嵌入式第三方
不需要使用者提示即可核准存取權
不需要使用者與嵌入內容互動
(嵌入的頂層存取權網站也可能發生這種情況)。
導入難易度 極低
可用於在多個頂層網站/來源之間共用 Cookie
(提案討論中。)
適用於非 Chromium 瀏覽器
(Falls back to 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 淘汰」標記提出新問題