共有ストレージ ワークレットを実行して URL を選択し、フェンス付きフレームでレンダリングします。
Shared Storage API はプライバシー さまざまな用途をサポートする汎用のクロスサイト ストレージ向けのサンドボックス案 見ていきましょう。その一例がフリークエンシー制御で、 Chrome ベータ版 104.0.5086.0 以降でテストできます。
ワークレット スクリプトを実行して、保存されている URL のリストに基づいて、 その URL をフェンス付きフレームでレンダリングします。これを使用して フリークエンシーの上限に達したとき。
フリークエンシー別のクリエイティブの選択をテスト
共有ストレージとフェンス付きフレームでフリークエンシーによるクリエイティブの選択をテストするには、次の要件を満たしていることを確認してください。
Chrome 104.0.5086.0 以降を使用する。chrome://settings/adPrivacy
で、すべての広告プライバシー API を有効にします。
コマンドラインで --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
フラグを使用して共有ストレージを有効にすることもできます。
コードサンプルでテストする
不透明な URL を選択して作成するには、ワークレット モジュールを登録して、 使用されますワークレット クラスは、最大 8 つの URL のリストを受け取り、 選択された URL のインデックスを返します。
クライアントが sharedStorage.selectURL()
を呼び出すと、ワークレットは
が実行され、フェンス付きフレームにレンダリングされる不透明な URL が返されます。
たとえば、ユーザーがこれまでに見た頻度に応じて、別の広告やコンテンツを選択してレンダリングするとします。ユーザーがコンテンツを閲覧した回数をカウントし、その値を共有ストレージに保存できます。一度保存すると、共有ストレージの値はさまざまなオリジンで利用できるようになります。
次に、共有ストレージ ワークレットが共有ストレージ内の値を読み取り、ビューを追加するたびにカウンタをインクリメントします。カウントが事前定義された上限に達していない場合は、レンダリングするコンテンツが返されます(インデックス 1
)。そうでない場合は、デフォルトの URL が返されます(インデックス 0
)。
この例では、次のようになります。
creative-selection-by-frequencyjs
は、コンテンツ プロデューサーまたは広告主の iframe を介して読み込まれ、 共有ストレージ ワークレットを読み込み、返された opaque をレンダリングする フェンス付きフレームに変換できます。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 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 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 テスト: ユーザーをテストグループに割り当て、そのグループを Shared Storage に保存して、クロスサイトからアクセスできるようにします。
- カスタム ユーザー エクスペリエンス: ユーザーの登録ステータスやその他のユーザー状態に基づいて、カスタム コンテンツと行動を促すフレーズを共有する
概要レポートを生成する
共有ストレージを使用して情報を収集し、ノイズが追加された集計概要レポートを生成します。これらのユースケースの出力ゲートウェイは Private Aggregation API です。
- ユニークリーチの測定: 多くのコンテンツ制作者と広告主は、コンテンツを視聴したユニーク ユーザー数を知りたいと考えています。共有ストレージを使用すると、ユーザーが広告、埋め込み動画、またはパブリケーションを初めて見た日時を記録し、同じユーザーが異なるサイトで重複してカウントされるのを防ぐことができます。その後、Private Aggregation API を使用して、リーチの概要レポートを出力できます。
- ユーザー属性の測定: コンテンツ制作者は、視聴者の属性を把握したいと考えることが多いでしょう。共有ストレージを使用すると、ファーストパーティ サイトなど、ユーザーの属性データが存在するコンテキストでユーザーの属性データを記録し、集計レポートを使用して、埋め込みコンテンツなど、他の多くのサイトにわたってレポートを作成できます。
- K 回以上のフリークエンシー測定: 「有効フリークエンシー」とも呼ばれ、ユーザーが特定のコンテンツを認識または思い出すまでに必要な表示回数の最小数(多くの場合、広告の表示回数のコンテキストで)が存在します。共有ストレージを使用すると、コンテンツを K 回以上見たユニーク ユーザーのレポートを作成できます。
意見交換とフィードバックの提供
Shared Storage API の提案は現在議論と開発が進められているため、変更される可能性があります。
Shared Storage API について、ぜひご意見をお聞かせください。
- 提案書: 詳細な提案書を確認します。
- ディスカッション: 進行中のディスカッションに参加して、質問したり、分析情報を共有したりできます。
最新情報を入手する
- メーリング リスト: メーリング リストに登録すると、Shared Storage API に関する最新情報やお知らせを受け取ることができます。
ご不明な点がある場合
- デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで他のデベロッパーと交流し、質問に答えてもらうことができます。