共有ストレージで収集されたデータに基づいて URL を選択し、フェンスされたフレームでコンテンツをレンダリングします。
Shared Storage API を使用すると、クロスサイト データを使用してフェンス付きフレームにレンダリングする URL を選択できます。JavaScript を使用してクロスサイト データを読み書きし、保存されたデータに基づいて提供されたリストから URL を選択します。この URL は、フェンスド フレームでレンダリングできます。
URL 選択には、広告、記事、画像、HTML、行動を促すフレーズ(ボタンなど)など、あらゆる種類のコンテンツを含めることができます。
たとえば、旅行サイトを運営していて、3 つの異なる広告クリエイティブを使用して広告キャンペーンを実施しているとします。ユーザーのインタラクション(視聴またはクリック)に基づいてこれらのクリエイティブを順序付ける必要がある。
ユーザーが最初に落札した広告枠を検出すると、そのクリエイティブの ID とクリック ステータスを共有ストレージに保存できます。つまり、このユーザーがアクセスした他のサイトで広告オークションで落札した場合、そのデータに基づいて別の広告を表示できます。
JavaScript は ワークレットで実行され、この情報を取得しますが、コードは親ページの iframe またはフェンスド フレームの外部とやり取りしたり通信したりすることはできません。
別の例を見てみましょう。埋め込みコンテキストでパフォーマンスが優れている記事をテストしたいとします。サイトにユーザーが表示されたときに、そのユーザーをテストグループに割り当て、そのグループ ID を共有ストレージに保存して、クロスサイト コンテキストでアクセスできるようにします。別のサイトで、フェンスされたフレームは、共有ストレージに保存されているそのユーザーのテストグループに基づいて URL を選択できます。
Shared Storage を使用すると、埋め込みサイトとユーザー情報(ブラウザ履歴やその他の個人情報など)を共有したり、独自のサーバーにデータをエクスポートしたりすることなく、クロスサイト データに基づいて情報に基づく意思決定を行うことができます。
ユースケース
共有ストレージを使用した URL 選択は、次のようなユースケースをサポートしています。
- 広告クリエイティブをローテーションする: クリエイティブ ID やユーザー操作などのデータを保存して、ユーザーがさまざまなサイトで表示されるクリエイティブを決定できます。
- 頻度。ブラウザの視聴回数は共有ストレージに保存され、ユーザーに表示するクリエイティブを決定するために使用できます。
- A/B テストを実行する: ユーザーをテストグループに割り当て、そのグループ ID を共有ストレージに保存して、クロスサイトからアクセスできるようにします。
- ユーザー エクスペリエンスをカスタマイズする: ユーザーの登録ステータスやその他のユーザー確認ステータスに基づいて、カスタム コンテンツと行動を促すフレーズを共有します。
予算
クロスサイト データ漏洩のリスクを軽減するため、Select URL API では、長期予算と短期予算を組み合わせた予算システムを使用しています。
- 長期予算:
selectURL()
を使用する場合、1 日あたりの呼び出し元サイトあたり 12 ビットの予算。この予算は、選択した URL をホストするフレームがトップレベル ナビゲーションを実行した場合にのみ請求されます。費用はlog2(number of URLs)
として計算されます。たとえば、選択可能な URL を 8 つ指定した場合、コストは 3 ビットになります。1 日の残りの予算は12 - (sum of bits deducted in the last 24 hours)
として計算され、残りの予算が不足している場合は、デフォルトの URL(リスト内の最初の URL)が返され、デフォルトの URL に移動された場合は 1 ビットがログに記録されます。 短期予算: ページ読み込みごとに追加の制限が適用されます。
selectURL()
を使用して 1 つの呼び出し元サイトがリークできる量を制限する呼び出し元サイトごとのページ読み込みあたり 6 ビットの予算があります。また、ページごとの合計 12 ビットの予算もあります。これは、ページ上のすべての呼び出し元サイトの合計上限です。保存したクエリを使用すると、同じページで以前の
selectURL()
の結果を再利用できるため、短期予算の使用量を削減できます。保存したクエリ名を指定してselectURL()
が初めて呼び出されると、生成されたインデックスはページの存続期間中保存されます。フォローアップ呼び出しで同じ保存済みクエリ名を使用してselectURL()
が呼び出されると、保存されたインデックスが返され、登録されたオペレーションは実行されません。この場合、予算は最初の使用時にのみ請求されます。同じページの読み込み内での再利用は、新たに情報が提供されないため請求されません。保存したクエリを実装するには、次の例に示すように、選択したクエリ名を指定して
savedQuery
プロパティを options オブジェクトに追加します。const topProductUrls = [ { url: 'https://ad.example/default-top-product.html' }, { url: 'https://ad.example/experiment-top-product.html' }]; const relatedProductUrls = [ { url: 'https://ad.example/default-related-product.html' }, { url: 'https://ad.example/experiment-related-product.html' }]; // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'` // on this page, so it will be charged to both per-page budgets. const topProductsConfig = await sharedStorage.selectURL( 'productExperiment', topProductUrls, { savedQuery: 'control_or_experiment', keepAlive: true, resolveToConfig: true }); document.getElementById('topProductsFencedFrame').config = topProductsConfig; // This next call with this savedQuery won't charge either of the per-page budgets. const relatedProductConfig = await sharedStorage.selectURL( 'productExperiment', relatedProductUrls, { savedQuery: 'control_or_experiment', resolveToConfig: true }); document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
URL の選択を試す
Shared Storage API による URL 選択は、Chrome Canary/Dev/Beta M105 以降でテストできます。URL 選択をテストするには、chrome://settings/adPrivacy
ですべての広告プライバシー API を有効にします。
デモを試す
デモを利用できます。コードは GitHub で確認できます。
このデモは、さまざまなパブリッシャーのサイトに情報を保存する広告主、広告テクノロジー、コンテンツ配信会社、その他のサードパーティ サービス向けに作成されています。このデモでは、ユースケースごとに、パブリッシャー A とパブリッシャー B の両方のサイトで同じサードパーティ コードが実行されます。各パブリッシャーのページにアクセスして、クロスサイト コンテキストでのデータの共有方法を確認してください。
対応してフィードバックを共有する
共有ストレージの提案は現在検討中であり、変更される可能性があります 使用できます。この API をお試しいただき、ご意見やご感想がございましたら、ぜひお聞かせください。
- GitHub: 提案、ホワイトペーパーへのリーチ、疑問の提起、ディスカッションへの参加などのリソースが用意されています。
- Shared Storage API のお知らせ: メーリング リストへの参加や過去のお知らせの表示
- デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリ。