根據 Shared Storage 中收集的資料選取網址,並在受限畫面中算繪內容。
您可以使用 Shared Storage API,選取要使用跨網站資料轉譯至圍欄框架的網址。使用 JavaScript 讀取及寫入跨網站資料,然後根據儲存的資料,從提供的清單中選取網址。您可以在圍欄框架中轉譯該網址。
網址選項可包含任何類型的內容,例如廣告、文章、圖片、HTML、行動號召 (例如按鈕) 等等。
舉例來說,假設您經營旅遊網站,並放送包含三個不同廣告素材的廣告活動。您應該根據使用者的互動情形 (觀看或點擊) 排序這些廣告素材。
當使用者首次看到勝出的廣告空間時,您可以將該廣告素材的 ID 和點擊狀態儲存在共用儲存空間中。也就是說,如果您在使用者造訪的其他網站上贏得廣告競價,就可以根據該資料顯示不同的廣告。
JavaScript 會在工作區中執行,以便擷取這項資訊,但程式碼無法與父頁面上的 iframe 或圍欄框架以外的內容互動或通訊。
再舉另一個例子。假設您想測試哪篇文章在嵌入式內容中的成效較佳。您可以在網站上看到使用者時,將該使用者指派給實驗群組,然後將該群組 ID 儲存在共用儲存空間中,以便在跨網站情境中存取。在其他網站上,您的圍欄框架可以根據該使用者實驗群組,選取透過 Shared Storage 儲存的網址。
共用儲存空間可讓您根據跨網站資料做出明智的決策,無須與嵌入網站分享使用者資訊 (例如瀏覽器記錄或其他個人詳細資料),也不必將資料外洩至您自己的伺服器。
用途
使用共用儲存空間的網址選取功能可支援下列用途:
- 輪播廣告素材:您可以儲存廣告素材 ID 和使用者互動等資料,藉此決定使用者在不同網站上看到哪些廣告素材。
- 頻率。瀏覽器觀看次數可儲存在共用儲存空間中,用於決定向使用者顯示哪個廣告素材。
- 執行 A/B 測試:將使用者指派給實驗群組,然後使用 Shared Storage 儲存該群組 ID,以便跨網站存取。
- 自訂使用者體驗:根據使用者的註冊狀態或其他使用者驗證狀態,分享自訂內容和行動號召。
預算
為降低跨網站資料外洩的風險,Select URL API 會使用預算系統,同時結合長期和短期預算:
- 長期預算:使用
selectURL()
時,每個呼叫端網站每日預算為 12 位元。只有在代管所選網址的框架執行頂層導覽時,系統才會向您收取這筆預算,費用計算方式為log2(number of URLs)
。因此,如果您提供 8 個網址供選擇,成本就是 3 位元。當天剩餘的預算會計算為12 - (sum of bits deducted in the last 24 hours)
,如果剩餘的預算不足,系統會傳回預設網址 (清單中的第一個網址),如果導向預設網址,系統會記錄 1 位元。 短期預算:每個網頁載入的額外限制。每個呼叫網站每個網頁載入 6 位元預算可限制單一呼叫網站使用
selectURL()
時的洩漏量。此外,每個網頁載入作業的總預算為 12 位元,這是網頁上所有呼叫網站的總限制。儲存的查詢可讓您在同一頁面重複使用先前的
selectURL()
結果,減少短期預算用量。當selectURL()
首次以已儲存的查詢名稱呼叫時,系統會在頁面生命週期內儲存產生的索引。當selectURL()
使用相同的已儲存查詢名稱進行後續呼叫時,系統會傳回已儲存的索引,且不會執行已註冊的作業。在這種情況下,系統只會在首次使用時收取預算,但不會在同一個網頁載入期間重複使用時收取預算,因為系統不會顯示任何新資訊。如要實作已儲存的查詢,請將
savedQuery
屬性 (含所選查詢名稱) 新增至 options 物件,如以下範例所示。
標記進行測試。const topProductUrls = [ { url: 'https://ad.example/default-top-product.html' }, { url: 'https://ad.example/experiment-top-product.html' }]; const relatedProductUrls = [ { url: 'https://ad.example/default-related-product.html' }, { url: 'https://ad.example/experiment-related-product.html' }]; // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'` // on this page, so it will be charged to both per-page budgets. const topProductsConfig = await sharedStorage.selectURL( 'productExperiment', topProductUrls, { savedQuery: 'control_or_experiment', keepAlive: true, resolveToConfig: true }); document.getElementById('topProductsFencedFrame').config = topProductsConfig; // This next call with this savedQuery won't charge either of the per-page budgets. const relatedProductConfig = await sharedStorage.selectURL( 'productExperiment', relatedProductUrls, { savedQuery: 'control_or_experiment', resolveToConfig: true }); document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
嘗試選取網址
您可以在 Chrome Canary/Dev/Beta 105 以上版本中測試使用 Shared Storage API 的網址選取功能。如要測試網址選取功能,請啟用 chrome://settings/adPrivacy
下方的所有廣告隱私權 API。
試用示範
這個示範是從廣告主、廣告技術、內容發布商或其他第三方服務的角度出發,這些服務希望在不同發布商網站上儲存資訊。在示範中,每個用途都會在發布商 A 和發布商 B 的網站上執行相同的第三方程式碼。請造訪各個發布者的網頁,瞭解資料在跨網站情境中的分享方式。
互動及分享意見回饋
共用儲存空間提案正在進行討論,因此可能隨時會有變動 如果您試用這個 API 並有意見,請不吝與我們分享。
- GitHub:閱讀 提案、觸及白皮書、提出疑問並參與討論。
- Shared Storage API 公告:加入或查看我們的郵寄清單過往公告
- 開發人員支援:您可以提問或參與 Privacy Sandbox 開發人員支援存放區。