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

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

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

Protected Audience API の現在の実装のデフォルトでは、クロスドメイン iframe からでも、ページ内の任意の場所で joinAdInterestGroup() を呼び出すことができます。

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

Key-Value サービス

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

  • 購入者は、広告キャンペーンの残りの予算を計算する場合があります。
  • 販売者は、広告クリエイティブをパブリッシャーのポリシーに照らして確認することが求められる場合があります。

Protected Audience API のキー/値サービス コードが利用可能になりました。ステータスの最新情報については、お知らせのブログ投稿をご覧ください。

最初のテストでは、「BYOS(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. ユーザーのブラウザにインタレスト グループを追加するよう求められる

ユーザーがノートパソコンでブラウザを開き、サイトにアクセスします。広告インタレスト グループに参加するための 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 サービスにリクエストを送信することで、特定の広告クリエイティブに関するリアルタイム データをリクエストできます。販売者は、オークション内のすべてのインタレスト グループの ads フィールドと adComponents フィールドのすべてのエントリの renderUrl プロパティのキーとともに、trustedScoringSignalsUrl プロパティを使用して runAdAuction() 中にこの情報をリクエストできます。

購入者は、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% オフになる広告が、安全なフェンス付きフレームに表示されています。

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

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

7. オークションの結果が報告される

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

一時的なイベントレベルのレポート メカニズムとして、販売者用の reportResult() と落札者用の reportWin() を実装するコードは、sendReportTo() 関数を呼び出すことができます。この関数は、オークションの完了後にフェッチされる 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)で実行されるサービスモデル(「ゲートキーパー」)の追加を提案しました。Protected Audience API では、リアルタイム データの検索と集計レポート用に TEE の使用がより制限されています。
  • NextRoll の TERN と Magnite の PARRROT の提案では、デバイス上のオークションで購入者と販売者が果たす役割の違いが説明されています。Protected Audience API の広告入札/スコアリング フローは、この作業に基づいています。
  • RTB House の 成果ベースプロダクト単位の TURTLEDOVE の変更により、オンデバイス オークションの匿名化モデルとパーソナライズ機能が改善されました
  • PARAKEET は、ブラウザと広告テクノロジー プロバイダ間の TEE で実行されるプロキシ サーバーに依存する TURTLEDOVE のような広告サービスに関する Microsoft の提案です。広告リクエストを匿名化し、プライバシー プロパティを適用します。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 の 「ウェブ広告ビジネスの改善」グループで業界のユースケースについて意見を交換することもできます。

プライバシー サンドボックスのフィードバック フォームを使用して、公開フォーラムではなく Chrome チーム宛に非公開でフィードバックを送信できます。

オプトアウト

Protected Audience API をオプトアウトしたい場合は、サイト所有者または個々のユーザーとして、Protected Audience API へのアクセスをブロックする方法を学びます。

最新情報を入手