Protected Audience API: デベロッパー ガイド

クロスサイトのサードパーティ トラッキングを使用せずに、リマーケティング オーディエンスとカスタム オーディエンスを配信するデバイス上の広告オークションに関するデベロッパー ガイドです。

Protected Audience API を初めて使用する場合は、Protected Audience API の概要で API の概要をご確認ください。

この投稿は、デベロッパーを対象に、Protected Audience API の試験運用版の最新イテレーションに関する技術リファレンスとして作成されています。基本的な Protected Audience API デプロイのデモ広告の購入者と販売者向けの API リファレンスを利用できます。

実装ステータス

API のステータス変更について通知を受け取るには、デベロッパー向けメーリング リストに参加してください。

Protected Audience API とは

Protected Audience API は、リマーケティングやカスタム オーディエンスのユースケース向けに設計されたプライバシー サンドボックスの API です。サードパーティがこれを使用してユーザーのブラウジング行動を複数のサイト間でトラッキングできないように設計されています。この API を使用すると、ブラウザによるデバイス上のオークションで、ユーザーが以前アクセスしたウェブサイトに関連する広告を選択できます。

Protected Audience API は、TURTLEDOVE プロポーザル ファミリーの中で Chromium に実装された最初のテストです。

Protected Audience API を試す

利用可能な API リファレンス

このドキュメントでは、Protected Audience API の概要を説明します。特定の API メソッドとパラメータを検索する場合:

また、Protected Audience API の広告オークションの遅延に関するベスト プラクティスもご参照ください。

Protected Audience API のデモ

広告主とパブリッシャーのサイトにおける Protected Audience API の基本的なデプロイ方法については、protected-audience-demo.web.app/ をご覧ください。

このエンドツーエンドのデプロイを視聴して、Protected Audience API デモコードの仕組みと、Chrome DevTools を使用してデバッグする方法をご覧ください。

この API をテストする

パソコンの Chrome ベータ版 101.0.4951.26 以降を使用して、1 人のユーザーに対して Protected Audience API をテストできます。

iframe またはフェンス付きフレームで広告をレンダリングする

広告は、設定されているフラグに応じて <iframe> または <fencedframe> でレンダリングできます。

<fencedframe> を使用して広告を表示するには:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames

<iframe> を使用して広告を表示するには:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames

一時デバッグの損失/落札の報告方法を有効にするには、BiddingAndScoringDebugReportingAPI フラグを含めます。

サポートされる機能

Chromium の機能フラグの背後にある Protected Audience API は、Protected Audience API の以下の機能をテストする最初のテストです。

  • インタレスト グループ: 広告の入札とレンダリングを設定するための関連メタデータとともにブラウザに保存されます。
  • 購入者(DSP または広告主)によるオンデバイス入札: 保存されているインタレスト グループと販売者からのシグナルに基づきます。
  • 販売者(SSP またはパブリッシャー)によるデバイス上の広告選択: 購入者のオークション入札とメタデータに基づきます。
  • 一時的に緩和されたバージョンの Fenced Frames での広告レンダリング: 広告のレンダリングでネットワーク アクセスとロギングが可能です。

機能のサポートと制約について詳しくは、Protected Audience API の解説をご覧ください。

インタレスト グループの権限

Protected Audience API の現在の実装では、ページの任意の場所(クロスドメイン iframe からも含む)から joinAdInterestGroup() を呼び出せるようになっています。

将来的には、サイト所有者がクロスドメイン iframe の権限ポリシーを更新した後で、クロスドメイン iframe からの呼び出しを禁止する予定です。

Key-Value サービス

Protected Audience API 広告オークションをサポートするため、ブラウザは Key-Value サービスにアクセスして、Protected Audience API 広告オークションをサポートするリアルタイム情報を取得できます。この情報は、次のようにさまざまな目的で使用できます。

  • 購入者によっては、広告キャンペーンの残りの予算を計算したい場合があります。
  • 販売者は、広告クリエイティブをパブリッシャーのポリシーと照合することが必要になる場合があります。

Protected Audience API の Key-Value サービスコードが利用できるようになりました。ステータスの最新情報については、お知らせのブログ投稿をご覧ください。

最初のテストでは、「お客様所有サーバーの使用」モデルが導入されました。長期的には、広告テクノロジーは、高信頼実行環境で実行されるオープンソースの Protected Audience API Key-Value サービスを使用する必要があります。

タイムラインの更新については、Protected Audience API サービスのブログ投稿をご覧ください。この移行が行われる前に、デベロッパーの皆様にテストと導入を開始していただくために、十分な通知を行います。

検出機能のサポート

API を使用する前に、ブラウザによってサポートされていて、ドキュメントで利用できるかどうかを確認してください。

'joinAdInterestGroup' in navigator &&
  document.featurePolicy.allowsFeature('join-ad-interest-group') &&
  document.featurePolicy.allowsFeature('run-ad-auction') ?
  console.log('navigator.joinAdInterestGroup() is supported on this page') :
  console.log('navigator.joinAdInterestGroup() is not supported on this page');

Protected Audience API の仕組み

この例では、ユーザーがカスタム自転車メーカーのウェブサイトを閲覧し、その後ニュース ウェブサイトにアクセスすると、同社の新しい自転車の広告が表示されました。

Protected Audience API の機能は、実装作業の進捗に応じて追加される予定です。

1. ユーザーが広告主のサイトにアクセスした

ノートパソコンのブラウザでカスタム自転車メーカーのサイトにアクセスする人。

ユーザーがカスタム自転車メーカー(この例では広告主)のウェブサイトにアクセスし、ハンドメイドのスチールバイクの商品ページに滞在したとします。これにより、自転車メーカーはリマーケティングの機会を得ることができます。

2. ユーザーのブラウザにインタレスト グループの追加を求められる

ユーザーがノートパソコンでブラウザを開いてサイトにアクセスします。広告のインタレスト グループに参加するための JavaScript コードがブラウザで実行されています。

広告主のデマンドサイド プラットフォーム(DSP)(または広告主自体)が navigator.joinAdInterestGroup() を呼び出し、ブラウザが属しているグループのリストにインタレスト グループを追加するようブラウザに指示します。

この例では、グループの名前は custom-bikes、オーナーは dsp.example です。インタレスト グループのオーナー(この場合は DSP)は、Protected Audience API の広告オークションの購入者です。インタレスト グループのメンバーシップは、ブラウザとユーザーのデバイスに保存され、ブラウザ ベンダーやその他の第三者と共有されることはありません。

インタレスト グループの広告を指定する

ads オブジェクトと adComponents オブジェクトには、広告クリエイティブの URL と、オプションで入札時に使用できる任意のメタデータが含まれます。次に例を示します。

{
  renderUrl: 'https://cdn.example/.../bikeAd1.html',
  metadata: bikeAd1metadata // optional
}

購入者はどのように入札しますか?

generateBid() は、ブラウザがメンバーとなっているインタレスト グループごとに呼び出されます(インタレスト グループの所有者が入札に招待された場合)。

generatedBid() のデベロッパー向けドキュメントを読む。

3. ユーザーが広告スペースを販売するサイトにアクセスする

ノートパソコンのブラウザでニュース ウェブサイトにアクセスする人物。サイトの広告スロットは空になっている。

その後、ユーザーが広告スペースを販売するサイト(この例ではニュースサイト)にアクセスします。サイトには広告枠があり、リアルタイム ビッダーを使用してプログラマティックに販売しています。

4. 広告オークションがブラウザで行われる

ノートパソコンのブラウザでニュース ウェブサイトを閲覧している人。利用可能な広告スペースに適した広告を選ぶために、Protected Audience API の広告オークションが実施されます。

広告オークションは、多くの場合、パブリッシャーのサプライサイド プロバイダ(SSP)またはパブリッシャー自身が実施します。オークションの目的は、現在のページで利用可能な 1 つの広告スロットに最も適した広告を選択することです。オークションでは、ブラウザが属しているインタレスト グループに加え、広告スペースの購入者と販売者の Key-Value サービスからのデータが考慮されます。

5. 販売者と参加している購入者が Key-Value サービスからのリアルタイム データをリクエストする

ユーザーがノートパソコンのブラウザでニュース ウェブサイトを閲覧します。Protected Audience API を使用する広告オークションが実施され、参加者が Key-Value サービスからデータを取得しています。

広告オークションの際、販売者は Key-Value サービスにリクエストを送信することで、特定の広告クリエイティブに関するリアルタイム データをリクエストできます。販売者は runAdAuction() で、オークションに参加するすべてのインタレスト グループの ads フィールドと adComponents フィールドにあるすべてのエントリの renderUrl プロパティに含まれるキーとともに、trustedScoringSignalsUrl プロパティによってこの情報をリクエストできます。

購入者は、navigator.joinAdInterestGroup() に渡されるインタレスト グループ引数の trustedBiddingSignalsUrl プロパティと trustedBiddingSignalsKeys プロパティを使用して、Key-Value サービスからリアルタイム データをリクエストできます。

runAdAuction() が呼び出されると、ブラウザは各広告購入者の信頼できるサーバーにリクエストを行います。リクエストの URL は次のようになります。

https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
  • ベース URL は trustedBiddingSignalsUrl から取得されます。
  • hostname はブラウザによって提供されます。
  • keys 値は trustedBiddingSignalsKeys から取得されます。

このリクエストに対するレスポンスは、各キーの値を提供する JSON オブジェクトです。

6. 落札した広告が表示される

ノートパソコンのブラウザでニュース ウェブサイトを閲覧している人。フェンスで囲まれた安全な自転車の 20% 割引の広告。

オークション構成で resolveToConfig フラグが true に設定されている場合、runAdAuction() から返される Promise はフェンス付きフレーム構成オブジェクト(FencedFrameConfig)に解決されます。落札広告にフレームを移動するために、フェンス付きフレームでフレーム構成が使用されますが、広告の URL はフレーム埋め込みツールには表示されません。

フェンス付きフレーム構成オブジェクトは M114 以降で使用できます。FencedFrameConfig オブジェクトについて詳しくは、Chrome のブログ記事をご覧ください。

7. オークション結果がレポートされる

長期計画では、ブラウザで Private Aggregation API を使用して、販売者と購入者のオークション結果を報告できるようにします。

一時的なイベントレベルのレポート メカニズムとして、販売者の reportResult() と落札者の reportWin() を実装するコードで sendReportTo() 関数を呼び出すことができます。この引数は 1 つの引数を取ります。この文字列は、オークションの完了後に取得される URL を表す文字列で、報告するイベントレベルの情報をエンコードしています。

8. 広告のクリックが報告される

ニュースサイトで、フェンス付きフレームが埋め込まれた自転車の広告をクリックした人物。レポートデータが販売者と購入者に送信されます。

フェンス付きフレーム内に表示された広告のクリックが報告されます。この仕組みについて詳しくは、フェンス付きフレーム広告のレポートをご覧ください。


Protected Audience API 広告オークションの各段階の概要
この図は、Protected Audience API オークションの各ステージの概要を示しています。

Protected Audience API と TURTLEDOVE の違いは何ですか?

Protected Audience API は、TURTLEDOVE の提案ファミリーの中で Chromium に実装された最初のテストです。

Protected Audience API は、TURTLEDOVE の基本原則を遵守しています。オンライン広告には、以前に広告主や広告ネットワークと接点を持った、関心を持つ可能性があるユーザーに広告を表示するものもあります。これまでは、ウェブサイトを閲覧している特定の人物を認識することで、プライバシーの主要な懸念事項となっていますが、

TURTLEDOVE の取り組みは、このユースケースに対処するための新しい API を提供すると同時に、プライバシーの重要な進歩を提供することです。

  • ユーザーが関心を持っていると考えるものに関する情報は、広告主ではなくブラウザが保持します。
  • 広告主は興味 / 関心に基づいて広告を配信できますが、その興味 / 関心を他の個人に関する情報(特に、ユーザーが誰で、どのページにアクセスしているか)と組み合わせることはできません。

Protected Audience API は、TURTLEDOVE と、API を使用するデベロッパーにとってより良いサービスを提供するために、関連する変更の提案のコレクションから発展しました。

  • SPARROW では: Criteo は、高信頼実行環境(TEE)で実行される(Gatekeeper)サービスモデルの追加を提案しました。Protected Audience API では、リアルタイムのデータ検索と集計レポート用に、TEE がより限定的に使用されています。
  • NextRoll の TERN と Magnite の PARRROT の提案では、デバイス上のオークションにおける購入者と販売者のさまざまな役割について説明しています。Protected Audience API の広告の入札とスコアリングのフローは、この仕組みに基づいています。
  • RTB House の結果ベースプロダクト レベルの TURTLEDOVE の変更により、デバイス上のオークションの匿名性モデルとパーソナライズ機能が改善されました。
  • PARAKEET は、TURTLEDOVE のような広告サービスに対する Microsoft の提案です。ブラウザと広告テクノロジー プロバイダの間の TEE で実行されるプロキシ サーバーを利用して、広告リクエストを匿名化し、プライバシー プロパティを適用します。Protected Audience API では、このプロキシモデルを採用していません。Google は、PARAKEET と Protected Audience API の JavaScript API を連携させ、両方の提案の長所をさらに組み合わせる今後の取り組みをサポートします。

Protected Audience API では、ユーザーに表示される広告をウェブサイトの広告ネットワークが学習することはまだ阻止されていません。今後、この API はプライバシー保護を強化するよう変更される予定です。

Topics API を Protected Audience API で使用できますか?

はい。Topics API により提供される、現在のユーザーについて観測されたトピックは、販売者またはビッダーによってコンテキスト情報として使用できます。トピックは次のプロパティに含めることができます。

  • auctionSignals: navigator.runAdAuction() に渡されるオークション設定オブジェクトのプロパティ
  • userBiddingSignals: navigator.joinAdInterestGroup() に渡されるインタレスト グループ構成オブジェクトのプロパティ。

使用可能なブラウザ構成

ユーザーは、chrome://settings/adPrivacy で最上位の設定を有効または無効にすることで、Chrome のプライバシー サンドボックスのトライアルへの参加を調整できます。

初期テストでは、このプライバシー サンドボックスの大まかな設定を使用して Protected Audience API をオプトアウトできます。Chrome では、ユーザーがアクセスしたウェブサイトで自分が追加されたインタレスト グループのリストを確認し、管理できるようにする予定です。プライバシー サンドボックス テクノロジー自体と同様に、ユーザー設定は、ユーザーや規制当局などからのフィードバックに応じて進化する可能性があります。

Chrome の設定は、テストやフィードバックに基づいて継続的に更新されます。 将来的には、Protected Audience API と関連データを管理するために、より詳細な設定を提供する予定です。

API 呼び出し元は、ユーザーがシークレット モードでブラウジングする場合、グループ メンバーシップにアクセスできません。また、ユーザーがサイトデータを消去すると、メンバーシップが削除されます。

Protected Audience ワークレットはブラウザによってキャッシュに保存されていますか?

Protected Audience ワークレット(購入者の入札生成とレポートのワークレット、販売者の広告スコアリングとレポートのワークレット)を含むリソースは、ブラウザによってキャッシュに保存されます。Cache-Control ヘッダーを使用してキャッシュ動作を制御できます。

対応してフィードバックを共有する

サポートを受ける

実装、デモ、ドキュメントについて質問したりサポートを受けたりするには:

Protected Audience API でニーズを満たすことに関する一般的な質問については、API リポジトリで問題を提出してください。また、W3C の Optimizing Web Advertising Business Group で業界のユースケースについて説明することもできます。

公開フォーラム以外の Chrome チームに非公開でフィードバックを共有するには、プライバシー サンドボックスのフィードバック フォームを使用してください。

オプトアウト

Protected Audience API をオプトアウトしますか?サイト所有者または個々のユーザーとして Protected Audience API へのアクセスをブロックする方法をご覧ください。

最新情報を入手