網站可透過 Shared Storage API 儲存及存取頂層網站未隔離的資料。這項功能可啟用及簡化跨網站用途,同時兼顧使用者隱私。
Chrome 已分割儲存空間,並將改用新版第三方 Cookie 使用者選擇功能。不過,許多正當用途仍需仰賴未分割的儲存空間,因此必須透過新的 Web API 輔助才能實現。舉例來說,內容製作人可能想評估不同網站的內容觸及率,但不想使用跨網站 ID。Shared Storage API 提供更私密的機制,可跨網站儲存及存取未經分割的資料,滿足這項需求。
Shared Storage API 簡介
Shared Storage API 是一種一般用途的儲存空間設施,旨在支援保護隱私權的跨網站用途。Shared Storage 的功能與 localStorage 和 sessionStorage API 類似,是可隨時寫入資料的鍵/值儲存空間。與其他 Web Storage API 不同,Shared Storage 資料可在不同頂層網站之間共用,但只能從安全環境讀取,並使用受限的 Output API 輸出。
在上圖中,shoes.example 網站可以嵌入其他發布商網站 (例如 news.example),並存取相同的資料。
這項共用儲存空間功能可提供跨網站功能,同時防止追蹤個別網站訪客及限制資料存取權,進一步保護使用者隱私。資料只能在安全環境中存取,且輸出功能有限 (工作單元)。
Shared Storage 是少數輸出 API 的基礎儲存空間基礎架構。您只能透過 Output API 使用 Shared Storage 資料。輸出 API 如下:
- 選取網址: 根據儲存的資料,從提供的清單中選取網址,然後在設有安全防護的影格中轉譯該內容。
- Private Aggregation: 透過 Private Aggregation API 傳送跨網站資料,產生摘要報表。
為什麼需要 Shared Storage?
Shared Storage API 是一種彈性的儲存機制,網頁開發人員可搭配輸出 API 使用,解決許多用途,包括取代第三方 Cookie 的現有用途。如要進一步瞭解輸出 API 的潛在用途,請參閱「選取網址」和「私有聚合」。
貴公司是否正在尋找尚未解決的跨網站儲存空間解決方案?你可以分享用途,並在開放原始碼的 Shared Storage GitHub 存放區中建立問題。
與 Shared Storage 相容的輸出 API 和用途
| Output API | 用途 | 說明 |
|---|---|---|
| 選取網址 | 廣告素材輪播方式 | 您可以儲存廣告素材 ID、觀看次數和使用者互動等資料,判斷使用者在不同網站上看到的廣告素材。這樣一來,您就能平衡觀看次數,避免特定內容過度曝光,進而避免可能造成負面使用者體驗。 |
| 選取網址 | 執行 A/B 測試 | A/B 測試會比較兩個以上的設定版本,判斷何者成效最佳。您可以將使用者指派給實驗群組,然後將該群組儲存在共用儲存空間中,以供跨網站存取。 |
| 選取網址 | 為已知顧客打造專屬使用者體驗 | 您可以根據使用者的註冊狀態或其他使用者狀態,分享自訂內容和號召性動作。 |
| 選取網址、 私有匯總 | 反濫用緩解措施 | 反濫用、反詐欺和網路安全機構通常會使用專有技術偵測惡意使用者,無論是自動化機器人或試圖造成危害的真人,在這個用途中,您可以測試許多不同的策略,例如使用 Select URL API 編碼使用者信任度評分,或是使用 Private Aggregation API 建構異常偵測資料集。 |
| 私下匯總 | 評估不重複觸及 | 許多內容製作者和廣告主經常想知道有多少不重複使用者觀看顯示的內容。您可以使用 Shared Storage 記錄使用者首次看到廣告、內嵌影片或出版物的時間。您可以避免在不同網站上重複計算同一位使用者,並產生匯總的隨機報表,瞭解內容的大約不重複觸及數。 |
| 私下匯總 | 評估使用者客層 | 內容製作者很想瞭解目標對象的人口統計資料。共用儲存空間可讓您在第一方網站上擷取使用者的人口統計資料,並利用匯總報表在各種其他平台 (例如嵌入式內容) 分析這項資訊。 |
| 私下匯總 | 評估 K+ 展示頻率觸及數 | 有時也稱為「有效展示頻率」,使用者通常要觀看一定次數的特定內容 (通常是廣告),才會認得或記得該內容。您可以使用 Shared Storage 建立報表,瞭解至少 K 次看過某項內容的不重複使用者人數。 |
Shared Storage 的運作方式
共用儲存空間可讓您根據跨網站資料做出明智決策,且不會與嵌入網站共用使用者資訊 (例如瀏覽器記錄或其他個人詳細資料),也不會將資料外洩至您自己的伺服器。
您可以隨時寫入共用儲存空間,但只能在安全環境 (稱為「小程式」) 中讀取共用儲存空間值。
您可以在共用儲存空間小程式中新增商家邏輯,然後從共用儲存空間讀取及處理值,但不會直接將確切值傳回給小程式呼叫端。您可以使用 Private Aggregation 或 Select URL Output API,從工作單元中擷取資訊。隨著新用途回報,可能會提供其他輸出 API。
API 狀態
Shared Storage API 已全面推出。按照說明註冊 Privacy Sandbox,即可使用 API 或啟用本機開發功能。
| Proposal | Status |
|---|---|
| Allow writing from response headers Explainer GitHub Issue |
Available in M124. Can be manually enabled in M119-M123 |
| Debugging Shared Storage worklets with DevTools Section |
Available in M120 |
| Update Shared Storage data storage limit to 5MB Explainer |
Available in M124 |
createWorklet() to create cross-origin worklets without an iframe |
Available in M125 |
Allow cross-origin script in addModule(), and align createWorklet() to match the behavior |
Available in M130 |
| Allow Shared Storage worklet to read interest groups Explainer |
Available in M134 |
Custom data origin support in createWorklet()Explainer |
Available in M135 |
| Debugging Shared Storage worklets with DevTools Explainer GitHub issue |
Expected in Q2 2025 |
參與討論及分享意見
請注意,Shared Storage API 提案目前仍在積極討論和開發中,因此可能會有所變更。
我們很期待聽到您對 Shared Storage API 的想法。