依頻率選取廣告素材

執行共用儲存空間工作程式來選取網址,並在圍欄頁框中顯示該網址。

Shared Storage API 是一項「隱私權」 一般用途的沙箱提案,支援多種 可能的用途其中一個例子是展示頻率控制 並用於 Chrome Beta 版 104.0.5086.0 以上版本。

執行工作程式指令碼,根據儲存的 ,然後在圍欄頁框中顯示該網址。這可用來選取 達到展示頻率上限時,系統就會停止顯示新的廣告或其他內容。

依頻率測試廣告素材選擇

如要使用共用儲存空間和 Fenced Frames 測試廣告素材選擇頻率,請確認 使用 Chrome 104.0.5086.0 以上版本。啟用 chrome://settings/adPrivacy 下的所有廣告隱私權 API。

您也可以在指令列中使用 --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames 旗標啟用共用儲存空間。

使用程式碼範例進行實驗

如要選取及建立不透明網址,請註冊 Worklet 模組以讀取共用 儲存空間資料Worklet 類別會收到最多包含 8 個網址的清單, 會傳回所選網址的索引。

當用戶端呼叫 sharedStorage.selectURL() 時,工作程式 會執行並傳回不透明網址,以轉譯為圍欄頁框

假設您想要根據使用者先前看過廣告的頻率,選取要顯示的其他廣告或內容。您可以計算使用者瀏覽內容的次數,並將值儲存至共用儲存空間。儲存後,各個來源中的值就可以使用共用儲存空間中的值。

接著,共用儲存空間工作程式會讀取共用儲存空間中的值,每增加一個檢視畫面,計數器就會遞增。如果數量未達到預先定義的上限,系統就會傳回您要算繪的內容 (索引 1)。否則,系統會傳回預設網址 (索引 0)。

在這個例子中:

  • creative-selection-by-frequencyjs」是透過內容製作者或廣告客戶的 iframe 載入,而且必須負責 載入共用儲存空間工作程式,然後算繪傳回的不透明 把原始碼嵌入柵欄框中
  • creative-selection-by-frequency-worklet.js 是共用儲存空間工作程式,會讀取 次數,即可決定內容或廣告素材會傳回哪個網址。

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await this.sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await this.sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

用例

以上只是共享存储空间中的部分可能的使用场景。我们会在收到反馈和发现新的用例的同时,继续添加示例。

内容选择

根据在共享存储空间中收集的信息,在围栏框架中选择不同网站并显示不同内容。这些用例的输出关口是网址选择。

  • 广告素材轮播:存储数据(如广告素材 ID、观看次数和用户互动),以确定用户在不同的网站上看到哪些广告素材。
  • A/B 测试:您可以将用户分配给实验组,然后将该组存储在共享存储空间中,以便跨网站访问。
  • 自定义用户体验:根据用户的注册状态或其他用户状态分享自定义内容和号召性用语

生成摘要报告

使用共享存储空间收集信息,并生成杂乱的汇总摘要报告。这些用例的输出关口是 Private Aggregation API

  • 唯一身份用户覆盖面衡量:许多内容制作者和广告客户都想知道有多少唯一身份用户看过他们的内容。使用共享存储空间来记录用户首次看到您的广告、嵌入的视频或发布内容,并防止系统将同一用户重复统计到不同的网站上。然后,您可以使用 Private Aggregation API 输出有关覆盖面的摘要报告。
  • 受众特征衡量:内容制作者通常希望了解其观众群的受众特征。您可以使用共享存储空间在您拥有的用户受众特征数据(例如您的第一方网站)中记录这些数据,并使用汇总报告跨许多其他网站(例如嵌入式内容)报告这些数据。
  • 衡量 K+ 频次:有时称为“有效频次”,即通常达到最低观看次数后,用户才能识别或回想某些内容(通常在观看广告的情况下)。您可以使用共享存储空间针对查看同一内容至少 K 次的唯一身份用户生成报告。

互动和分享反馈

共享存储空间提案正在积极讨论,可能会发生变化 。如果您试用此 API 并有反馈意见,我们非常期待收到您的反馈意见。