輪播廣告素材

使用共用儲存空間來判斷使用者在各網站上看到的廣告素材。

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 是共用儲存空間工作組,可決定內容的加權分佈情形,並傳回應顯示的內容。

creative-rotation.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();

creative-rotation-worklet.js

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 並有意見,請不吝與我們分享。