使用共用儲存空間來判斷使用者在各網站上看到的廣告素材。
Shared Storage API 是一項「隱私權」 一般用途的沙箱提案,支援多種 可能的用途例如廣告素材輪播 ,在 Chrome 104.0.5086.0 以上版本中進行測試。
透過廣告素材輪播功能,您可以儲存廣告素材 ID、資料檢視等資料 次數和使用者互動方式,以判斷哪些廣告素材使用者查看 不同的網站
執行「共用儲存空間」小程式,根據 然後在圍欄頁框中顯示該廣告素材您可以用 來選擇新廣告或其他內容
試試廣告素材輪播
如要透過共用儲存空間嘗試廣告素材輪播功能,請確認您使用的是 Chrome 104.0.5086.0 以上版本。啟用 chrome://settings/adPrivacy
下的所有廣告隱私權 API。
您也可以在指令列中使用 --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
旗標啟用共用儲存空間。
使用程式碼範例進行實驗
廣告客戶或內容製作人可以為 並輪播內容或廣告素材以提升成效 共用儲存空間可用來執行不同的輪替策略,例如 在不同網站之間進行依序輪播和平均分配的輪播。
在這個例子中:
- 「
creative-rotation.js
」已嵌入頁框中。這段指令碼會設定最重要的廣告 ( 權重),並對工作組進行呼叫,決定要顯示哪些內容。 creative-rotation-worklet.js
是共用儲存空間工作組,可決定內容的加權分佈情形,並傳回應顯示的內容。
// Ad config with the URL of the content, a probability weight for rotation, and the clickthrough rate.
const DEMO_CONTENT_CONFIG = [
{
url: 'https://your-server.example/contents/content-1.html',
weight: 0.7,
},
{
url: 'https://your-server.example/contents/content-2.html',
weight: 0.2,
},
{
url: 'https://your-server.example/contents/content-3.html',
weight: 0.1,
},
];
// Set the mode to sequential and set the starting index to 0.
async function seedStorage() {
await window.sharedStorage.set('content-rotation-mode', 'sequential', {
ignoreIfPresent: true,
});
await window.sharedStorage.set('content-rotation-index', 0, {
ignoreIfPresent: true,
});
}
async function injectAd() {
// Load the worklet module
await window.sharedStorage.worklet.addModule('content-rotation-worklet.js');
// Initially set the storage to sequential mode for the demo
seedStorage();
// Run the URL selection operation to determine the next content rendered.
const urls = DEMO_CONTENT_CONFIG.map(({ url }) => ({ url }));
const fencedFrameConfig = await window.sharedStorage.selectURL('content-rotation', urls, {
data: DEMO_CONTENT_CONFIG,
resolveToConfig: true
});
// Render the opaque URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectAd();
class SelectURLOperation {
async run(urls, data) {
// Read the rotation mode from Shared Storage
const rotationMode = await sharedStorage.get('content-rotation-mode');
// Generate a random number to be used for rotation
const randomNumber = Math.random();
let index;
switch (rotationMode) {
/**
* Sequential rotation
* - Rotates the contents in order
* - Example: A -> B -> C -> A ...
*/
case 'sequential':
const currentIndex = await sharedStorage.get('creative-rotation-index');
index = parseInt(currentIndex, 10);
const nextIndex = (index + 1) % urls.length;
await sharedStorage.set('content-rotation-index', nextIndex);
break;
/**
* Weighted rotation
* - Rotates the contentswith weighted probability
* - Example: A=70% / B=20% / C=10%
*/
case 'weighted-distribution':
// Sum the weights cumulatively, and find the first URL where the
// sum exceeds the random number. The array is sorted in
// descending order first.
let weightSum = 0;
const { url } = data
.sort((a, b) => b.weight - a.weight)
.find(({ weight }) => {
weightSum += weight;
return weightSum > randomNumber;
});
index = urls.indexOf(url);
break;
default:
index = 0;
}
return index;
}
}
register('content-rotation', SelectURLOperation);
用途
這些只是「共用儲存空間」的其中一種用途。我們會 也會繼續加入範例 接收意見回饋 並探索新的用途
內容篩選
在多個網站上選擇並顯示不同內容: 「共用儲存空間」中所收集的資料這些用途的輸出閘門是網址選擇。
- 廣告素材輪播: 儲存資料 (例如廣告素材 ID、觀看次數和使用者互動),判斷哪些廣告素材使用者可以跨網站監控
- A/B 測試: 您可以為使用者指派一個實驗群組,然後將該群組儲存在「共用儲存空間」中,以便跨網站存取。
- 自訂使用者體驗: 根據使用者的註冊狀態或其他使用者狀態分享自訂內容和行動號召
產生摘要報表
使用「共用儲存空間」收集資訊,並產生雜訊的匯總摘要報表。這些用途的輸出閘門是 Private Aggregation API。
- Unique Reach 評估: 許多內容製作者和廣告客戶都想知道有多少獨有的 觀眾收看了自己的內容使用共用儲存空間記錄使用者首次記錄 觀看您的廣告、嵌入影片或出版品,並防止重複 計算同一名使用者在不同網站上出現的相同曝光次數接著,您可以使用 Private Aggregation API 輸出觸及率的摘要報表。
- 客層評估: 內容製作者往往會想瞭解自己的觀眾客層 目標對象您可以使用共用儲存空間,記錄以下項目的使用者客層資料: 而是以您擁有的環境 (如第一方網站) 使用匯總資料 製作相關報表,製作其他多個網站上的報表,例如嵌入的內容。
- K+ 頻率評估: 有時也稱為「有效展示頻率」通常具有最小值 在使用者辨識或召回特定內容之前 (通常是 廣告瀏覽的背景資訊)。你可以使用共用儲存空間建立報表 有多少不重複使用者看過某內容至少 K 次。
互動及分享意見回饋
共用儲存空間提案正在進行討論,因此可能隨時會有變動 如果您試用這個 API 並有意見,請不吝與我們分享。
- GitHub:閱讀 提案、觸及白皮書、提出疑問並參與討論。
- Shared Storage API 公告:加入或查看我們的郵寄清單過往公告
- 開發人員支援:您可以提問或參與 Privacy Sandbox 開發人員支援存放區。