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 を使用してデバッグする方法を学びましょう。

chrome://flags または機能フラグを使用してテストする

デスクトップの 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 またはパブリッシャー)によるデバイス上の広告選択: オークションの入札単価と購入者からのメタデータに基づきます。
  • フェンス付きフレームの一時的に緩和されたバージョンでの広告レンダリング: ネットワーク アクセスと広告レンダリングのロギングが可能です。

機能のサポートと制約について詳しくは、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 サービスコードを利用できるようになりました。進捗状況については、お知らせのブログ投稿をご覧ください。

初期テストでは「Bring Your Own Server」モデルが導入されています。長期的には、広告テクノロジーは、信頼できる実行環境で実行されるオープンソースの Protected Audience API Key-Value サービスを使用する必要があります。

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

検出機能のサポート

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)か、パブリッシャー自身が行います。オークションの目的は、現在のページで利用可能な広告スロットに最適な広告を選択することです。オークションでは、ブラウザがメンバーであるインタレスト グループに加え、Key-Value サービスの広告スペースの購入者と販売者のデータも考慮されます。

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

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

広告オークション中、販売者は Key-Value サービスにリクエストを送信して、特定の広告クリエイティブに関するリアルタイム データをリクエストできます。販売者は、オークションのすべてのインタレスト グループの ads フィールドと adComponents フィールドにあるすべてのエントリの renderUrl プロパティのキーとともに、runAdAuction()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 の JavaScript API と Protected Audience 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 では、ユーザーがアクセスしたウェブサイト全体で、自分が追加されたインタレスト グループのリストを確認、管理できるようにする予定です。プライバシー サンドボックス テクノロジー自体と同様に、ユーザーの設定は、ユーザーや規制当局などからのフィードバックによって進化する場合があります。

Google では、テストとフィードバックに基づいて Chrome で利用可能な設定を引き続き更新してまいります。 将来的には、Protected Audience API と関連データを管理するための、よりきめ細かい設定を提供する予定です。

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

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

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

交流とフィードバックの共有

サポートを利用する

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

Protected Audience API でニーズを満たす方法に関する一般的な質問については、API リポジトリで問題を提出してください。また、W3C のウェブ広告ビジネスの改善に関するグループで、業界のユースケースについて議論することもできます。

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

無効にする

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

最新情報を入手