クロスサイトのサードパーティ トラッキングを使用せずに、リマーケティングとカスタム オーディエンスに広告を配信するためのデバイス上の広告オークションのデベロッパー ガイド。
Protected Audience API を初めて使用する場合は、Protected Audience API の概要で API の概要をご確認ください。
この投稿は、試験運用版の Protected Audience API の最新のイテレーションに関する技術的なリファレンスとして、デベロッパー向けに作成されています。基本的な Protected Audience API のデプロイのデモと、広告の購入者と販売者向けの API リファレンスが用意されています。
実装ステータス
- The Protected Audience API proposal is now moving to general availability. Raise questions and follow discussion.
- Protected Audience API status of pending capabilities details changes and enhancements to the Protected Audience API API and features.
- Blink status
- Protected Audience API Chrome platform status: Specific to the Protected Audience API on Chrome.
- Ads API Chrome platform status: A collection of APIs to facilitate advertising: Protected Audience API, Topics, Fenced Frames and Attribution Reporting.
To be notified of status changes in the API, join the mailing list for developers.
Protected Audience API とは
Protected Audience API は、リマーケティングとカスタム オーディエンスのユースケースをサポートするよう設計された Privacy Sandbox API です。サードパーティがサイトをまたいでユーザーのブラウジング行動を追跡できないように設計されています。この API を使用すると、ブラウザでデバイス上のオークションを実施して、ユーザーが過去にアクセスしたウェブサイトに関連性の高い広告を選択できます。
Protected Audience API は、TURTLEDOVE ファミリーの提案のうち、Chromium で実装された最初の試験運用版です。
Protected Audience API を試す
利用可能な API リファレンス
このドキュメントでは、Protected Audience API の概要について説明します。特定の API メソッドとパラメータをお探しの場合は:
joinAdInterestGroup()とgenerateBid()の購入者向けガイド。- Protected Audience API の販売者向けガイド
runAdAuction() - 購入者向け
reportWin()ガイドと販売者向けreportResult()ガイド - Protected Audience API のトラブルシューティング
Protected Audience API 広告オークションのレイテンシに関するベスト プラクティスもご覧ください。
Protected Audience API のデモ
広告主とパブリッシャーのサイトにまたがる基本的な Protected Audience API のデプロイのチュートリアルは、protected-audience-demo.web.app/ でご覧いただけます。
この API をテストする
デスクトップ版の Chrome ベータ版 101.0.4951.26 以降では、単一ユーザーに対して Protected Audience API をテストできます。
chrome://settings/adPrivacyで広告プライバシー API をすべて有効にします。- コマンドラインからフラグを設定する。使用可能な Protected Audience API フラグの完全なリストは、Chromium のコード検索で確認できます。
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 の実装では、joinAdInterestGroup() の呼び出しは、ページ内のどこからでも(クロスドメインの iframe からでも)許可されています。
今後、サイト所有者がクロスドメイン iframe の権限ポリシーを更新する時間が十分に確保されたら、クロスドメイン iframe からの呼び出しを禁止する予定です。
Key-Value サービス
Protected Audience API の広告オークションをサポートするため、ブラウザは Key-Value サービスにアクセスして、Protected Audience API の広告オークションをサポートするリアルタイムの情報を取得できます。この情報は、次のようなさまざまな方法で使用できます。
- 購入者は、広告キャンペーンの残りの予算を計算したい場合があります。
- 販売者は、パブリッシャー ポリシーに照らして広告クリエイティブを確認する必要がある場合があります。
Protected Audience API のキー/値サービスコードが利用可能になりました。ステータスの最新情報については、お知らせのブログ投稿をご覧ください。
初期テストでは、「Bring Your Own Server」モデルが導入されました。長期的には、広告テクノロジーは信頼できる実行環境で実行されているオープンソースの 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. ユーザーのブラウザにインタレスト グループの追加がリクエストされる
広告主のデマンドサイド プラットフォーム(DSP)(または広告主自身)が navigator.joinAdInterestGroup() を呼び出し、ブラウザがメンバーになっているグループのリストにインタレスト グループを追加するようブラウザに要求します。
この例では、グループの名前は custom-bikes、オーナーは dsp.example です。インタレスト グループの所有者(この場合は DSP)は、Protected Audience API 広告オークションの購入者になります。インタレスト グループのメンバー情報は、ユーザーのデバイス上のブラウザに保存され、ブラウザ ベンダーや他のユーザーと共有されることはありません。
- Protected Audience API の説明: ブラウザがインタレスト グループを記録するをご覧ください。
- API ガイドを読む: 購入者と DSP は、
joinAdInterestGroup()と入札の生成の方法を確認します。
インタレスト グループの広告を指定する
ads オブジェクトと adComponents オブジェクトには、広告クリエイティブの URL と、必要に応じて入札時に使用できる任意のメタデータが含まれます。次に例を示します。
{
renderUrl: 'https://cdn.example/.../bikeAd1.html',
metadata: bikeAd1metadata // optional
}
購入者はどのように入札しますか?
ブラウザがメンバーになっているインタレスト グループごとに generateBid() が呼び出されます(インタレスト グループのオーナーが入札に招待されている場合)。
generatedBid() デベロッパー向けドキュメントを読む。
3. ユーザーが広告スペースを販売しているサイトにアクセスする
その後、ユーザーは広告スペースを販売しているサイト(この例ではニュース ウェブサイト)にアクセスします。このサイトには広告枠があり、リアルタイム ビッダーでプログラマティックに販売しています。
4. ブラウザで広告オークションが実施される
広告オークションは、パブリッシャーのサプライサイド プロバイダ(SSP)またはパブリッシャー自身によって実施される可能性があります。オークションの目的は、現在のページで利用可能な 1 つの広告スロットに最適な広告を選択することです。オークションでは、ブラウザがメンバーになっているインタレスト グループと、広告枠の購入者と Key/Value サービスの販売者からのデータが考慮されます。
- Protected Audience API の説明: 販売者がデバイス上のオークションを実施する
- API ガイドを読む: 販売者は
runAdAuction()と広告オークションのレイテンシに関するベスト プラクティスについて詳しく知ることができます。
5. 販売者と参加している購入者が Key/Value サービスからリアルタイム データをリクエストします。
広告オークション中に、販売者は Key/Value サービスにリクエストを送信することで、特定の広告クリエイティブに関するリアルタイム データをリクエストできます。販売者は、runAdAuction() の間に trustedScoringSignalsUrl プロパティでこの情報をリクエストできます。また、オークションのすべてのインタレスト グループの ads フィールドと adComponents フィールドのすべてのエントリの renderUrl プロパティのキーもリクエストできます。
購入者は、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 オブジェクトです。
- Protected Audience API の説明: Protected Audience API の Key/Value サービスからリアルタイム データを取得するをご覧ください。
- Protected Audience API Key/Value サービスのオープンソース化をご覧ください。
6. 落札した広告が表示される
runAdAuction() から返される Promise は、オークション構成で resolveToConfig フラグが true に設定されている場合、フェンス付きフレーム構成オブジェクト(FencedFrameConfig)に解決されます。フレーム構成は、フェンス付きフレームがフレームを落札広告に移動するために使用されますが、広告の URL はフレームの埋め込み元には表示されません。
フェンス付きフレーム構成オブジェクトは M114 以降で利用できます。FencedFrameConfig オブジェクトについて詳しくは、Chrome のブログ記事をご覧ください。
- Protected Audience API の説明を読む: ブラウザが落札した広告をレンダリングする
7. オークションの結果が報告される
長期計画では、ブラウザが Private Aggregation API を使用して販売者と購入者のオークション結果をレポートできるようにします。
一時的なイベントレベルのレポート メカニズムとして、販売者向けの reportResult() と落札者向けの reportWin() を実装するコードは、sendReportTo() 関数を呼び出すことができます。この関数は、オークションの完了後にフェッチされる URL を表す文字列を 1 つの引数として受け取ります。この URL には、レポートされるイベントレベルの情報がエンコードされます。
- API ガイドを読む: 販売者と購入者のレポートについて学ぶ
8. 広告のクリックが報告される
フェンス付きフレームでレンダリングされた広告のクリックがレポートされます。この仕組みについて詳しくは、Fenced Frames Ads Reporting をご覧ください。
Protected Audience API と TURTLEDOVE の違いは何ですか?
Protected Audience API は、TURTLEDOVE ファミリーの提案のうち、Chromium で実装された最初の試験運用版です。
Protected Audience API は、TURTLEDOVE の上位原則に沿っています。一部のオンライン広告は、広告主や広告ネットワークと過去にやり取りしたことのある、関心を持つ可能性のあるユーザーに広告を表示することをベースとしています。これまで、広告主はウェブサイトを閲覧する特定のユーザーを認識することで、この仕組みを実現してきました。これは、今日のウェブにおけるプライバシーに関する大きな懸念事項です。
TURTLEDOVE の取り組みは、このユースケースに対応する新しい API を提供しながら、プライバシーに関する重要な進歩をいくつか提供することを目的としています。
- 広告主がユーザーの興味関心について考えている情報は、広告主ではなくブラウザに保存されます。
- 広告主様はインタレスト ベースの広告を配信できますが、インタレストをユーザーに関する他の情報(特に、ユーザーの身元や閲覧しているページ)と組み合わせることはできません。
Protected Audience API は、TURTLEDOVE と、API を使用するデベロッパーにとってより使いやすいように変更するための関連提案の集まりから生まれました。
- SPARROW では、Criteo が、高信頼実行環境(TEE)で実行される(「ゲートキーパー」)サービスモデルの追加を提案しました。Protected Audience API には、リアルタイム データ検索と集計レポート用の TEE の使用がより限定的に含まれています。
- NextRoll の TERN と Magnite の PARRROT の提案では、オンデバイス オークションにおける購入者と販売者のさまざまな役割について説明しています。Protected Audience API の広告入札/スコアリング フローはこの作業に基づいています。
- RTB House の成果ベースと商品レベルの TURTLEDOVE の変更により、デバイス上のオークションの匿名性モデルとパーソナライズ機能が改善されました。
- PARAKEET は、ブラウザと広告技術プロバイダの間の TEE で実行されるプロキシ サーバーに依存して広告リクエストを匿名化し、プライバシー プロパティを適用する、TURTLEDOVE のような広告サービスに関する Microsoft の提案です。Protected Audience API では、このプロキシ モデルは採用されていません。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 ヘッダーを使用して、キャッシュ保存の動作を制御できます。
意見交換とフィードバックの提供
サポートを受ける
実装、デモ、ドキュメントについて質問がある場合やサポートが必要な場合:
- GitHub: 解説の確認、質問の投稿、意見交換を行えます。
- デモ: デモコード リポジトリで問題を報告します。
- Chrome の実装: Chrome の Protected Audience API の実装に関するバグや問題については、既存の問題を確認するか、新しい問題を報告してください。
Protected Audience API を使用してニーズを満たす方法に関する一般的な質問がある場合は、API リポジトリで問題を報告してください。また、W3C の 「ウェブ広告ビジネスの改善」グループで業界のユースケースについて意見を交換することもできます。
プライバシー サンドボックスのフィードバック フォームを使用して、公開フォーラムではなく Chrome チーム宛に非公開でフィードバックを送信できます。
オプトアウト
Protected Audience API をオプトアウトするには、サイト所有者または個々のユーザーとして Protected Audience API へのアクセスをブロックする方法をご確認ください。
最新情報を入手
- API ステータスの変更に関する通知を受け取るには、デベロッパー向けのメーリング リストにご参加ください。
- この API に関する進行中のディスカッションすべてを常にチェックするには、GitHub の API ページで [Watch] ボタンをクリックしてください。なお、この操作を行うには GitHub アカウントを作成する必要があります。
- プライバシー サンドボックス全般に関する最新情報を入手するには、[プライバシー サンドボックスの進捗状況] の RSS フィードを購読してください。
- Protected Audience API に関する会議が隔週で開催されています。どなたでも参加できますが、まず WICG に参加していることをご確認ください。積極的な発言はもちろん、閲覧のみの参加でもかまいません。