Protected Audience API: 開発者ガイド

クロスサイト サードパーティトラッキングを使わずにリマーケティングとカスタム オーディエンスにサービスを提供するオンデバイス広告オークションの開発者ガイド

公開日 更新日

翻訳先言語: English

更新

FLEDGE の名前が Protected Audience API に変更されました。名前の変更の詳細については、ブログ記事をご覧ください。

重要

The Privacy Sandbox Relevance and Measurement origin trial ended September 20, 2023 and the APIs are now available for 99% of Chrome users, and origin trial enrollment has closed. To keep abreast of the percentage of users each API is enabled for, refer to the Chrome status graphs.

Protected Audience API を初めて使用する方は、API の概要を説明した Protected Audience 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 または Fenced Frame に広告を表示する

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

<fencedframe> を使用して広告をレンダリングするには:

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

<iframe> を使用して広告をレンダリングするには:

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

BiddingAndScoringDebugReportingAPI フラグを含めて、一時的なデバッグの落札/競り負けレポートメソッドを有効にします。

これは、初期テスト用の Protected Audience API の進行中のバージョンです。これは、完全なもの、または最終的な実装を示すものと見なすべきではありません。Protected Audience API の進捗状況とステータスは、定期的な WICG 会議で議論されます。

プライバシー サンドボックスのタイムラインには、Protected Audience API やその他のプライバシー サンドボックス提案の実装タイムラインが記載されています。

サポートされる機能

Chromium でのフラグ設定による Protected Audience API は、Protected Audience API の以下の機能をテストするための最初の実験です。

  • インタレスト グループ: 広告の入札とレンダリングを構成するための関連付けられたメタデータとともに、ブラウザによって保存されます。
  • 買い手(DSP または広告主)によるオンデバイス入札: 保存されているインタレスト グループと売り手からのシグナルに基づきます。
  • 売り手(SSP またはサイト運営者)によるオンデバイス広告の選択: 買い手からのオークション入札とメタデータに基づきます。
  • 一時的に緩和されたバージョンの Fenced Frames での広告レンダリング: 広告のレンダリングが許可されたネットワーク アクセスとロギング。

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

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

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');
Caution

現在のページでの機能のサポートは、API が使用できることを保証するものではありません。ユーザーがブラウザの設定で API を無効にしたか、API を使用できないように他の設定をしている可能性があります。ユーザーのプライバシーを保護するために、これをプログラムで確認する方法はありません。

Protected Audience API の仕組み

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

Warning

この記事で説明されているすべての機能が、現在 Chrome でテストされている Protected Audience API のバージョンに実装されている(または完全に実装されている)わけではありません。機能フラグを使用したテストでは、 コマンドラインから実行される Chrome で現在どの Protected Audience API 機能をテストできるかについて説明されています。

Protected Audience API の機能は、実装の作業が進むにつれて追加されます。

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

ノートパソコンのブラウザでカスタムバイクメーカーのサイトにアクセスしている人。

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

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

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

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

この例では、グループの名前は custom-bikes で、オーナーは dsp.example です。インタレスト グループのオーナー(この場合は DSP)は、Protected Audience API 広告オークションの買い手になります。インタレスト グループのメンバーシップは、ブラウザによってユーザーのデバイスに保存され、ブラウザベンダーや他の誰とも共有されません。

joinAdInterestGroup() の呼び出しコンテキストのオリジンは、インタレスト グループのオーナーのオリジンと一致する必要があります。

joinAdInterestGroup() は、インタレスト グループのオーナーが所有する iframe から(たとえば、DSP から)呼び出す必要があります。現在のドキュメントのオリジンがインタレスト グループのオーナーと同じ場合(独自のインタレスト グループを持つウェブサイトなど)、iframe は必要ありません。

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

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 サービスにリクエストを送信して、特定の広告クリエイティブに関するリアルタイム データを要求できます。売り手は、trustedScoringSignalsUrl プロパティと、オークション内のすべてのインタレスト グループの adsadComponents フィールドにあるすべてのエントリの renderUrl から得るキーを使って、runAdAuction() を実行中にこの情報を要求できます。

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

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

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

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

重要

Protected Audience API をテストするための初期実験段階では、trustedBiddingSignalsUrl はインタレスト グループのオーナーと同じオリジンを持つ必要があります。詳細は、Bring Your Own Server をご覧ください。

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

ノートパソコンのブラウザでニュースサイトを表示している人。自転車 20% オフの広告が安全な Fenced Frame に表示されています。

runAdAuction() によって返される Promise は、オークション構成で resolveToConfig フラグが true に設定されている場合、Fenced Frame 構成オブジェクト(FencedFrameConfig)に解決されます。フレーム構成は、フレームを落札広告に移動する目的で Fenced Frame によって使用されますが、広告の URL はフレームのエンベッダーには表示されません。

重要

FencedFrameConfig オブジェクトは、オークション構成でフラグ resolveToConfigtrue に設定されている場合にのみ返されます。フラグが設定されていないか false の場合、iframe でのみレンダリングできる不透明な URN が返されます。

Fenced Frame 構成オブジェクトは、M114 以降で利用可能です。FencedFrameConfig オブジェクトの詳細については、Chrome ブログの記事をご覧ください。

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

長期的には、Private Aggregation API を使用して、ブラウザが売り手と買い手にオークション結果をレポートできるようにすることを計画しています。

一時的なイベントレベルのレポートの仕組みとして、売り手用に reportResult() を実装し、落札者用に reportWin() を実装するコードは、sendReportTo() 関数を呼び出すことができます。これはオークションの完了後に取得される URL を表す文字列を引数として取ります。これにより、レポートされるイベントレベルの情報が暗号化されます。

8. 広告クリックがレポートされる

ニュースサイトで Fenced Frame に埋め込まれた自転車の広告をクリックする人。レポートデータは売り手と買い手に送られます。

Fenced Frame にレンダリングされた広告のクリックが報告されます。これがどのように機能するかについて詳しくは、Fenced Frames 広告のレポートを参照してください。


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 は、このプロキシモデルを採用していません。PARAKEET と Protected Audience API の JavaScript API を連携させ、両方の提案の最良の機能をさらに組み合わせる将来の作業をサポートします。

Protected Audience API はまだ、ユーザーがどの広告を見たかをウェブサイトの広告ネットワークが学習できないようにしていません。今後、よりプライベートになるように API を変更する予定です。

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

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

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

利用可能なブラウザ構成

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

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

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

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

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

Protected Audience ワークレット(買い手の入札生成とレポートのワークレット、および売り手の広告スコアリングとレポートのワークレット)を含むリソースは、ブラウザによってキャッシュされます。キャッシュの動作は、Cache-Control ヘッダーを使用して制御することが可能です。

貢献とフィードバックの共有

サポートを受ける

実装、デモ、またはドキュメントに関する質問とサポートについては、以下をご覧ください。

Protected Audience API でのニーズへの対応に関する一般的な質問については、API のリポジトリでイシューを報告してください。また、W3C の Improving Web Advertising Business Group で業界のユースケースについて話し合うこともできます。

プライバシー サンドボックスのフィードバック フォームを使用すると、公開フォーラムの外で Chrome チームと非公開でフィードバックを共有できます。

オプトアウト

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

アップデートを入手する

更新日 記事を改善する

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.