第三方 Cookie 有許多用途,但也是跨網站追蹤的主要關鍵。
Chrome 針對第三方 Cookie 提供新的使用者選擇體驗。您必須針對選擇不使用第三方 Cookie 瀏覽內容的使用者做好準備。
本頁將介紹傳統上仰賴第三方 Cookie 的內嵌情境隱私權保護解決方案,並介紹實用策略,協助你選擇最符合自身需求的解決方案。
嵌入的服務或嵌入項目包括第三方內容 (例如影片、地圖)、互動元件 (例如即時通訊、留言系統或付款服務)、登入服務等等。
從第三方 Cookie 轉換的大部分工作,都是由嵌入開發人員 (而非代管嵌入的網站) 完成。本指南主要針對建立嵌入式服務的開發人員介紹解決方案。
如果您的網站仰賴使用第三方 Cookie 的嵌入項目,請務必稽核及測試嵌入相關歷程;如果發現有任何故障情形,請聯繫嵌入供應商。
稽核及測試嵌入相關使用者歷程
如要判斷嵌入項目是否受到第三方 Cookie 影響,最好的方法是在啟用第三方 Cookie 測試標記的情況下,測試第三方嵌入使用者流程。
限制第三方 Cookie 後,請測試下列常見的嵌入情況:
- 即時通訊小工具:可以發起即時通訊工作階段嗎?你能否重新整理頁面而不會遺失工作階段?您能否前往其他網頁並繼續工作階段?
- 嵌入內容:是否能觀看影片內容或其他嵌入的內容?語言或字幕等使用者偏好設定是否會維持不變?使用者是否在預期的情況下看見廣告?例如未看過付費訂閱者嗎?
- 登入:是否有登入 (包括任何單一登入 (SSO)) 功能支援登入?頁面重新載入及導覽使用相同嵌入的網頁時,是否仍持續存在?
- 留言小工具:你能留言、對留言按讚或按讚嗎?
- 內嵌付款解決方案:是否能成功完成付款?
以下各節將進一步說明這些流程可能受到的影響。
常見用途
有許多 API 都可用於嵌入,但這些 API 通常仰賴第三方 Cookie。下表列出一些常見工作流程和建議用的 API,做為概略摘要。以下各節將說明這些建議的理由。
使用案例 | 使用第三方 Cookie 時的建議 API |
---|---|
即時通訊小工具 | 方塊 |
地圖嵌入 | 方塊 |
不受信任使用者內容的沙箱網域 (例如 googleusercontent.com 和 githubusercontent.com) 採用各發布者的狀態限定範圍 |
方塊 |
需要根據發布商設定狀態的內嵌廣告 | 方塊 |
透過識別資訊提供者登入 | FedCM |
嵌入由不同但相關來源代管的代管程式碼。 | 具有相關網站集的 Storage Access API |
採用登入層級偏好設定的嵌入內容 (例如不含廣告的影片內容,或是語言/字幕偏好設定) |
Storage Access API |
需要登入的社群媒體留言小工具 | Storage Access API |
選擇用於嵌入式第三方用途的 API
本節逐步說明如何選擇合適的替代 API,並說明建議的 API。
下方流程圖可協助您選擇可用的選項:
![根據三個問題決定第三方 Cookie 替代方案的流程圖。](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/cookies-embed-options.png?authuser=8&hl=zh-tw)
這份流程圖詢問了三個主要問題,我們會進一步探討問題,以及各種情況各適合採用特定 API 的原因。
1. 該嵌入網站是否有特定的 Cookie?
許多第三方嵌入項目會在完全無關的網站上單獨使用。例如,客戶服務的即時通訊小工具通常需要使用 Cookie 才能運作,但而由於兩個完全不同的機構正使用相同的即時通訊小工具解決方案,因此不需要在兩個完全不同的機構之間共用這些 Cookie。實際上,這種偏好設定根本不會允許共用 Cookie。
如果你為其他網站提供第三方嵌入服務,且該服務需要使用 Cookie,請思考這些 Cookie 是否專屬於嵌入該服務的網站。其他網站上的嵌入項目是否曾分享這些內容?
如果不需要分享 Cookie,最簡單的方法就是使用 CHIPS 劃分 Cookie。這個 API 將第三方 Cookie 與頂層網站建立連結,而非允許所有使用相同第三方 Cookie 的網站共用 Cookie。CHIPS 相當易於實作,因為只需要在現有的 Cookie 中新增額外的 Partitioned
屬性。這樣一來,嵌入的服務仍可儲存狀態,但會移除允許跨網站追蹤的共用跨網站儲存空間。
網站也必須檢查 Cookie 使用原因是否合理。只有在已設定 Cookie 或在需要與 HTTP 要求一起傳送的情況下,才能使用 Cookie。在這種情況下,如果 Cookie 只用做便利的儲存方式,建議您改用各種儲存空間 API。在不需要傳送資料時,系統會將資料保留在本機。在所有主要瀏覽器中,Storage API 已經完成分區,類似於 CHIPS 將 Cookie 分區。
2. 這些是第三方識別資訊提供者的 Cookie 嗎?
第三方 Cookie 的常見用途之一,就是提供第三方登入服務供應商管理的登入功能,例如使用 Google 帳戶登入。在此情況下,不提供分區 Cookie。
Federated Credential Management (FedCM) 是這個用途的專屬 API,可在不使用第三方 Cookie 的情況下運作。如果識別資訊提供者支援 FedCM,就不必使用第三方 Cookie。
如要進一步瞭解如何解決第三方 Cookie 對登入工作流程的影響,請參閱身分指南。
3. 是否有少數相關網站會使用 Cookie?
如果上述方法都無法取代 Cookie,請重新啟用第三方 Cookie 的存取權。您可以使用 Storage Access API,在受控制的特定用途中啟用此功能。這個 API 能重新啟用完整的第三方 Cookie 存取權 (取決於控管功能),因此是最強大的選項。因此,建議避免採用限制更嚴格的替代方案來獲得足夠的效益。
使用 Storage Access API 的需求條件如下:
- 使用者必須先前曾從頂層瀏覽嵌入的網站。例如,若嵌入了評論系統,則使用者必須同時造訪該評論系統的網站。
- 使用者必須先與嵌入項目互動,才能分享 Cookie。這表示可能無法在使用者進行互動前就載入完整的嵌入內容。
- 使用者必須同意透過瀏覽器彈出式視窗分享 Cookie,特別是在第一個情況下和之後定期分享 Cookie。
- 嵌入網站可能也需要設定其他沙箱屬性。
這些限制可確保只有在使用者和網站預期有預期的情況下,才會重新啟用第三方 Cookie。但在某些情況下,系統可能會略過使用者動作。舉例來說,如果使用者最近才核准存取要求,可能在一段時間 (由瀏覽器定義) 後,就不必再次提示使用者。
另一種情況是使用者可能會認為是相關網站。舉例來說,有些組織會使用多種不同的來源,而瀏覽器會將這些來源視為跨網站,因此這些來源的 Cookie 都會被視為第三方。舉例來說,包含國家/地區專屬網站 (例如 example.com 和 example.co.uk) 的品牌,或品牌專用網站 (如 example.car 和 example.house) 即為一例。
在這種情況下,如果相關網站數量不多,您可以使用相關網站集。網站會提交至 Chrome,讓 Chrome 瞭解網站相關。如此一來,就能以更簡便的方式存取 Storage Access API,同時減少使用者提示。
如果無關網站實際上是第三方,且因為替代 API 不足夠而需要完整的第三方 Cookie 存取權,則使用 Storage Access API 須遵守完整的規定和提示。
各種 API 的比較
每個解決方案的特徵和限制略有不同,因此較適合用於特定用途。下表摘要說明主要差異:
方塊 | 分區儲存空間 | FedCM | Storage Access API 與相關 Web 網站集 | Storage Access API | |
---|---|---|---|---|---|
使用者不必先前能存取嵌入式網站做為頂層網站 | |||||
不需要提示使用者核准存取權 | |||||
未要求使用者與嵌入內容互動 | (如果是嵌入的具備頂層存取權的網站,也可以設為 true)。 |
||||
導入作業時間 | 極低 | 低 | 高 | 中 | 中 |
可用於在多個頂層網站/來源之間共用 Cookie | (抑制提案。) |
||||
適用於 Chromium 以外的瀏覽器 | (返回 Storage Access API)。 |
跨瀏覽器使用案例
如表格最後一行所述,瀏覽器相容性是決定解決方案的一大因素。部分 API (CHIPS、FedCM、相關 WebSite Sets) 僅適用於 Chromium 瀏覽器。目前只有兩種跨瀏覽器解決方案是分區儲存空間 API (不需要 Cookie 時) 或 Storage Access API (需要 Cookie 時)。
不過,如前所述,Storage Access API 有許多限制,可能會影響您網站的使用者體驗。Chrome 團隊已努力新增其他專為滿足特定用途而設計的 API,提供與使用第三方 Cookie 相似的體驗。因此,建議您考量各種最佳選項,並運用漸進式強化功能,並搭配未支援的瀏覽器使用 Storage Access API 的備用選項。
Cookie 之所以遭到封鎖的原因有很多 (例如瀏覽器設定、擴充功能),因此 API 支援的功能偵測可能不足。因此,建議您測試預期的 Cookie 是否存在,如果無法改用 Storage Access API 工作流程要求第三方 Cookie 的存取權。
請立即採取行動!
如果第三方嵌入功能在不使用第三方 Cookie 的情況下無法正常運作,則有多項解決方案可用於解決可能造成的影響,詳情請參閱這場講座的說明。現在請稽核服務是否有第三方 Cookie!
由於 Chrome 正在測試移除第三方 Cookie,因此目前遇到嵌入作業中斷的情形,可以參考以下短期做法,瞭解如何遷移至本文所述的替代方案。詳情請參閱「保留關鍵使用者體驗」說明文件。
如果您對本指南未提及的第三方嵌入用途有疑問,請運用「淘汰第三方 Cookie」功能提出新問題標記。