フリークエンシーでクリエイティブを選択する

共有ストレージ ワークレットを実行して URL を選択し、フェンス付きフレームにレンダリングします。

Shared Storage API は、汎用のクロスサイト ストレージに関するプライバシー サンドボックスの提案であり、多くのユースケースに対応しています。一例として周波数制御があります。これは Chrome ベータ版 104.0.5086.0 以降でテストできます。

ワークレット スクリプトを実行し、保存されたデータに基づいて指定されたリストから URL を選択し、その URL をフェンス付きフレームにレンダリングします。これにより、フリークエンシーの上限に達したときに新しい広告やその他のコンテンツを選択できます。

フリークエンシーでクリエイティブの選択をテストする

共有ストレージとフェンス付きフレームで、頻度別のクリエイティブ選択をテストするには、Chrome 104.0.5086.0 以降を使用していることを確認します。次に、chrome://flags/#privacy-sandbox-ads-apisプライバシー サンドボックスの広告 API のテストフラグを有効にします。

これらの API を使用するには、プライバシー サンドボックスの広告 API のテストを有効に設定します

コマンドラインで --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames フラグを使用して共有ストレージを有効にすることもできます。

コードサンプルでテストする

不透明 URL を選択して作成するには、共有ストレージ データを読み取るワークレット モジュールを登録します。ワークレット クラスは、最大 8 つの URL のリストを受け取り、選択された URL のインデックスを返します。

クライアントが sharedStorage.selectURL() を呼び出すと、ワークレットが実行され、不透明な URL が返されます。この URL は、フェンス付きフレームにレンダリングされます。

たとえば、ユーザーがこれまでに視聴した頻度に基づいて、別の広告やコンテンツを選択してレンダリングするとします。ユーザーがコンテンツを表示した回数をカウントし、その値を共有ストレージに保存できます。保存した共有ストレージの値は、さまざまなオリジンで利用できるようになります。

次に、共有ストレージ ワークレットが共有ストレージ内の値を読み取り、ビューが追加されるたびにカウンタをインクリメントします。カウントが事前定義された上限に達していない場合は、レンダリングするコンテンツが返されます(インデックス 1)。そうでない場合は、デフォルトの URL(インデックス 0)が返されます。

この例では、次のようになります。

  • creative-selection-by-frequencyjs は、コンテンツ プロデューサーまたは広告主の iframe を介して読み込まれ、共有ストレージ ワークレットを読み込み、返された不透明なソースをフェンス付きフレームにレンダリングします。
  • creative-selection-by-frequency-worklet.js は、フリークエンシー カウントを読み取り、コンテンツや広告クリエイティブに対して返される URL を決定する共有ストレージ ワークレットです。

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);

ユースケース

上記は、共有ストレージのユースケースのほんの一例です。今後もフィードバックをいただき、新しいユースケースを発見する際に、例を追加していく予定です。

コンテンツの選択

共有ストレージで収集された情報に基づいて、さまざまなコンテンツを選択し、フェンス付きフレームでさまざまなウェブサイトのさまざまなコンテンツを選択して表示します。これらのユースケースの出力ゲートは URL の選択です。

  • クリエイティブ ローテーション: クリエイティブ ID、視聴回数、ユーザー インタラクションなどのデータを保存して、さまざまなサイトでどのクリエイティブをユーザーが目にするかを決定します。
  • A/B テスト: ユーザーをテストグループに割り当てて、そのグループを共有ストレージに保存して、クロスサイトでアクセスできるようにします。
  • カスタム ユーザー エクスペリエンス: ユーザーの登録ステータスなどのユーザー状態に基づいて、カスタム コンテンツと行動を促すフレーズを共有します

概要レポートを生成する

共有ストレージを使用して情報を収集し、ノイズの多い集計概要レポートを生成する。これらのユースケースの出力ゲートは Private Aggregation API です。

  • ユニークリーチ測定: 多くのコンテンツ プロデューサーや広告主は、自分のコンテンツを見たユニーク ユーザー数を知りたいと考えています。共有ストレージを使用すると、ユーザーが広告、埋め込み動画、パブリケーションを最初に見たタイミングを記録し、同じユーザーが別のサイトで重複してカウントされないようにすることができます。その後、Private Aggregation API を使用してリーチの概要レポートを出力できます。
  • ユーザー属性の測定: コンテンツ制作者は多くの場合、視聴者のユーザー属性を把握します。共有ストレージを使用して、ユーザー属性データが存在する場合は、そのコンテキスト(ファースト パーティ サイトなど)でそのデータを記録し、集計レポートを使用して他の多くのサイト(埋め込みコンテンツなど)でレポートを作成できます。
  • K+ フリークエンシー測定: 「有効フリークエンシー」と呼ばれることもあります。多くの場合、ユーザーが特定のコンテンツを認識または想起するまでに最低限の視聴回数が必要です(多くの場合、広告視聴のコンテキストで)。共有ストレージを使用して、コンテンツを K 回以上表示したユニーク ユーザーのレポートを作成できます。

フィードバックを共有

共有ストレージの提案は現在検討中であり、将来変更される可能性があります。この API をお試しいただき、フィードバックがございましたら、ぜひお寄せください。