Protected Audience API の概要

第三者によるクロスサイト トラッキングを使わずに、リマーケティングとカスタム オーディエンスに広告を配信するデバイス上の広告オークション。

この記事の対象読者

この記事では、Protected Audience API の基本と基本的なコンセプトについて説明します。ただし、技術的な詳細については説明しません。

Protected Audience のドキュメントで使用されている用語については、用語集をご覧ください。この記事の最後には、フィードバックの提供と共有の方法を学ぶことができます。

Protected Audience API とは

Protected Audience API は、リマーケティングやカスタム オーディエンスのユースケースに対応するためのプライバシー サンドボックス技術であり、サードパーティがユーザーのブラウジング行動をサイトをまたいでトラッキングできないように設計されています。

Protected Audience API は、ブラウザでのデバイス上のオークションを可能にし、ユーザーが以前にアクセスしたウェブサイトから関連性の高い広告を選択します。

Protected Audience API は、TURTLEDOVE の提案ファミリーの中で Chromium に実装される最初のテストです。Protected Audience と TURTLEDOVE の違いは、主に広告購入者と販売者のデバイス上での役割の分離に関するものです。以降のセクションでは、Protected Audience API の仕組みについて説明します。

1 分でわかる Protected Audience API

Protected Audience API について詳しくは、Protected Audience API デベロッパー ガイドをご覧ください。

Protected Audience API ライフサイクルの各段階の概要
Protected Audience API のライフサイクル

Protected Audience API はインタレスト グループを使用して、サイトでユーザーに関連する広告を表示できるようにします。

たとえば、ユーザーが自社商品を宣伝しようとしているサイトにアクセスすると、インタレスト グループのオーナーデマンドサイド プラットフォーム(DSP)など)は、ユーザーのブラウザに対してインタレスト グループのメンバーの追加をリクエストできます。リクエストが成功すると、ブラウザでは次の情報が記録されます。

  • インタレスト グループの名前(「custom-bikes」など)。
  • インタレスト グループの所有者(例: https://dsp.example)。
  • インタレスト グループの設定情報。ブラウザが入札コード、広告コード、リアルタイム データにアクセスできるようにするための情報です(グループの所有者が広告オークションの入札に招待されている場合)。

その後、利用可能な広告スペースがあるサイトにユーザーがアクセスすると、広告スペース販売者(セルサイド プロバイダ(SSP)、またはサイト自体)は Protected Audience を使用して広告オークションを実施し、ユーザーに表示する最適な広告を選択できます。販売者は navigator.runAdAuction() 関数を呼び出します。この関数は、入札に招待されるインタレスト グループのオーナーのリストを提供します。

入札単価を設定できるのは、ブラウザが属しており、そのオーナーが入札に招待されているインタレスト グループのみです。

入札コードは、インタレスト グループの設定で指定された URL から取得されます。このコードは、インタレスト グループに関するデータと販売者からの情報に加えて、ページとブラウザに関するコンテキスト データを提供します。

入札単価を設定するインタレスト グループそれぞれを購入者と呼びます。

ブラウザで広告オークションを実行する関数が呼び出されると、各購入者のコードが Protected Audience Key-Value サービスが提供するリアルタイム データを使って入札を生成します。次に、販売者はこれらの入札と販売者が所有するリアルタイム データを受け取り、各入札をスコア付けします。最高スコアの入札がオークションの落札者となります。

落札された広告はフェンス付きフレームに表示されます。広告クリエイティブの URL は入札で指定されます。オリジンは、インタレスト グループの設定で指定されたリストに含まれるものと一致する必要があります。

販売者はオークション結果(reportResult())を、購入者は落札(reportWin())を報告できます。

詳しくは、Protected Audience のオークション レポートをご覧ください。

Protected Audience API が必要な理由

ユーザーの興味や関心を理解することで、単にサイトのコンテンツに基づいて広告を選択(コンテンツ ターゲット)したり、広告が表示されるサイトにユーザーから提供された情報(自社データ ターゲティング)を使用したりするだけでなく、より関連性の高い広告を表示できるようになります。

従来、広告プラットフォームは、サイトをまたいでユーザーの行動をトラッキングすることで、ユーザーの興味 / 関心を学習してきました。ブラウザは、広告プラットフォームが関連する広告を選択できるようにする方法を必要としており、それにより、コンテンツ パブリッシャーはクロスサイト トラッキングなしで広告収入を得ることができます。

Protected Audience API は、広告主や広告テクノロジー プラットフォームではなく、デバイス上のユーザーのブラウザが、そのユーザーの興味や関心に関する情報を保持している状態に、ウェブ プラットフォームを近づけることを目的としています。

Protected Audience API を試すにはどうすればよいですか?

  • Protected Audience API デベロッパー ガイドでは、API の使用方法とローカルでのテスト方法を説明しています。

  • protected-audience-demo.web.app には、広告主とパブリッシャーのサイトへの Protected Audience の基本的なデプロイ方法が記載されています。Protected Audience のデモ動画では、このコードの仕組みを説明し、Chrome DevTools を使用してデバッグする方法をプレビューしています。

使用可能なブラウザ構成

ユーザーは、chrome://settings/adPrivacy で最上位の設定を有効または無効にして、Chrome でプライバシー サンドボックスの試用版への参加方法を調整できます。初期テストでは、ユーザーはプライバシー サンドボックスの設定を使用して Protected Audience API をオプトアウトできます。

Chrome では、ユーザーがアクセスしたすべてのサイトで、追加されたインタレスト グループのリストを確認、管理できるようにする予定です。プライバシー サンドボックス テクノロジーと同様に、ユーザー設定はユーザー、規制機関などからのフィードバックによって進化する場合があります。

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

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

Protected Audience API を無効にすることはできますか?

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

主な概念

Protected Audience の用語について詳しくは、プライバシー サンドボックスの用語集をご覧ください。

インタレスト グループとは

Protected Audience API インタレスト グループは、共通の興味や関心を持つユーザーのグループを表し、リマーケティング リストに対応します。

すべての Protected Audience API インタレスト グループには所有者がいます。オーナーによって、作成対象のインタレスト グループの種類もユースケースも異なります。

オーナーは、ユーザーのブラウザに対して JavaScript 関数 navigator.joinAdInterestGroup() を呼び出し、インタレスト グループに関連する広告に関するデータや、入札で使用する JavaScript の URL などの情報を提供します。広告などのインタレスト グループ データの更新は可能です。インタレスト グループは最長 30 日間有効にできます。

インタレスト グループの種類

次の表に、Protected Audience API のさまざまなインタレスト グループと所有者の例を示します。

オーナー 興味 / 関心 ユースケース
広告主様 自転車メーカー プロダクト 特定のカテゴリの自転車の商品ページを閲覧したユーザー。 以前にブランドと接点を持ったことのあるユーザーへのリマーケティング
パブリッシャー ニュース ウェブサイト コンテンツ サイクリングについて読んだ人。 パブリッシャーはファーストパーティ データを使用して、広告主がサイトの読者に関連する広告を購入できるようにします。パブリッシャーが所有するインタレスト グループを使用すると、ユーザーが他のサイトを閲覧している場合でも同じことができます。パブリッシャーは、特定のオーディエンス セグメントに広告を表示できる機能に対して料金を請求できる場合があります。
アドテック DSP 商品のカテゴリ サイクリング用品に関心を示したユーザー。 ある広告テクノロジー企業は、あるカテゴリのアイテムに強い購買意向を持つユーザーのインタレスト グループを作成して管理するとします。このインタレスト グループを使用して、そのカテゴリの商品を販売している(および広告テクノロジー企業と提携している)サイトで商品を宣伝できます。

Chrome では、所有者あたり最大 1,000 個のインタレスト グループと、最大 1,000 個のインタレスト グループ オーナーを使用できます。これらの上限はガードレールとして意図されており、通常のオペレーションでヒットするものではありません。

購入者とは

Protected Audience API における購入者とは、インタレスト グループを保有し、広告オークションに入札する当事者を指します。

次に例を示します。

購入者には次の 3 つの役割があります。

  • オークションに参加するかどうかを選択します。
  • 広告を選択し、入札単価を計算します。
  • オークション結果を報告します。

これらのジョブは、Protected Audience API 広告オークション中に購入者が提供するコード内でプログラムによって実行されます。

JavaScript 関数 navigator.joinAdInterestGroup() を呼び出して、ユーザーのブラウザからメンバーが属するグループにインタレスト グループを追加するようリクエストすると、購入者はブラウザに次の情報を提供します。

  • 入札コードの URL。販売者広告オークションを実施する際に使用されます。
  • 可能であれば、インタレスト グループの広告クリエイティブの URL。(広告の URL は更新で追加される場合があります)。
  • クエリ対象のデータキーのリスト、購入者の Key-Value サービスの URL。入札コードでオークション中にリアルタイム データを取得できるようにします。

購入者のコードに reportWin() 関数を含めて、オークション結果をレポートすることもできます。

広告オークションを実施するのは誰か

広告スペースを販売するオークションには、複数の関係者が参加します。

次に例を示します。

  • コンテンツ パブリッシャー: 自らのウェブサイトで広告コンテンツをホストするためのサービス。
  • サプライサイド プラットフォーム(SSP): パブリッシャーと連携してその他のサービスを提供。
  • 第三者スクリプト: 広告オークションに参加できるように、パブリッシャーを代理するスクリプト。

Protected Audience API では、広告スペースの販売者には次の 3 つのジョブがあります。

  • どの購入者とどの入札が対象となるかを示すパブリッシャー ルールを適用する。
  • オークション ロジックの実行: JavaScript はワークレットで実行され、各入札の望ましいスコアを計算します。
  • オークション結果を報告します。

これらのジョブは、販売者が JavaScript 関数 navigator.runAdAuction() を呼び出して広告オークションを開始したときに、プログラムによって実行されます。

Protected Audience API の広告オークションの仕組み

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

Protected Audience API の広告オークションの 6 つの段階
Protected Audience の広告オークションのステージ。

Protected Audience API における広告オークションとは、広告を選択するためにブラウザがユーザーのデバイス上で実行する小さな JavaScript プログラムのコレクションです。プライバシーを保護するため、販売者と購入者の広告オークション コードはすべて、外部と通信できない分離された JavaScript ワークレットで実行されます。

販売者(パブリッシャーまたはサプライサイド プラットフォーム)が、広告スペースを販売するサイト(ニュースサイトなど)で Protected Audience の広告オークションを開始します。販売者はオークションに参加する購入者を選択し、販売対象のスペースを示し、広告の追加条件を指定します。購入者はインタレスト グループのオーナーです。

販売者は、入札をスコアリングするためのコードをブラウザに提供します。このコードには、各入札の値、広告クリエイティブの URL、各購入者から返されたその他のデータが含まれます。オークション中、購入者の入札コードと販売者の入札スコアリング コードは、オークションで Key-Value サービスからデータを受け取ることができます。広告が選択されて(プライバシーを保護するためにフェンス付きフレームで)表示されると、販売者と落札者はオークション結果を報告できます。

  1. ユーザーが広告を表示するサイトにアクセスします。
  2. 販売者のコードがオークションを開始します。販売者は、販売する広告スペースと入札できるユーザー、および入札をスコアリングする方法を指定します。
  3. 招待された購入者のコードが実行され、入札単価、関連する広告クリエイティブの URL、その他のデータが生成されます。入札スクリプトでは、購入者の Key-Value サービスからリアルタイム データ(広告キャンペーンの予算の残額など)をクエリできます。
  4. 販売者のコードによって各入札が評価され、落札者が決まります。このロジックでは、入札単価とその他のデータを使用して入札の望ましい可能性を返し、コンテキスト広告の落札者を上回ることができない広告を拒否します。販売者は、独自の Key-Value サービスを使用してリアルタイム データを取得できます。オークションを開始する前に、販売者は利用可能な広告スロットに最適なコンテキスト広告を見つけます。
  5. オークション設定で resolveToConfig フラグが設定されている場合、落札された広告はフェンス フレーム設定オブジェクトとして返されます。この構成はフェンス付きフレームから広告クリエイティブに移動するために使用され、クリエイティブの URL は販売者とパブリッシャーの両方に対して非表示になります。resolveToConfig フラグが false に設定されているか渡されない場合、落札広告は不透明な URN として返され、それを使用して iframe に広告を表示することができます。フェンス付きフレーム構成オブジェクトは M114 以降で使用できます。
  6. オークションは販売者と落札購入者にレポートされます。

購入者を失うためのレポート メカニズムについては検討中です。

Protected Audience API の Key-Value サービスとは

Protected Audience API の Key-Value サービスにより、広告テクノロジーは購入者による入札時にリアルタイム データをクエリでき、販売者はプライバシーを保護しながら広告をスコアリングできます。Protected Audience API の Key-Value サービスやその他のサービスについては、Protected Audience API サービスをご覧ください。

Key-Value サービスは広告テクノロジー独自のクラウド インフラストラクチャにデプロイされ、サービスは信頼できる実行環境で実行されます。Key-Value サービスへのリクエストによって、イベントレベルのロギングやその他の副作用が生じることはありません。Key-Value サービスでは、広告テクノロジーが Key-Value サービス内で独自のカスタム ロジックを実行できるようにするユーザー定義関数(UDF)もサポートされます。

購入者または販売者は、Protected Audience API の Key-Value サービスに必要なデータを指定するために「キー」のリストを提供します。Key-Value サービスは、各キーの値を返します。

Protected Audience API の Key-Value サービスのコードが、プライバシー サンドボックスの GitHub リポジトリで利用できるようになりました。このサービスは、Chrome と Android のデベロッパーが使用できます。

Protected Audience API の Key-Value サービスについて詳しくは、API の解説信頼モデルの説明をご覧ください。

リアルタイム データがオークションに組み込まれる仕組み

広告オークションの購入者または販売者は、リアルタイム データにアクセスする必要がある場合があります。たとえば、購入者が広告キャンペーンの残りの予算を計算したい場合や、販売者が広告クリエイティブをパブリッシャーのポリシーに照らして確認する必要がある場合があります。

Protected Audience API のプライバシー要件を満たすため、広告オークションで必要となるリアルタイム データは Key-Value サービスによって提供されます。購入者は navigator.joinAdInterestGroup() を呼び出すと、オークションで Key-Value サービスの URL と、サービスへのクエリの対象となるキーを指定します。同様に、販売者は navigator.runAdAuction() を呼び出して広告オークションを実施するときに、Key-Value サービスの URL を提供します。販売者の Key-Value サービスにクリエイティブのレンダリング URL がクエリされます。

初期テストでは、Bring Your Own Server モデルを使用します。長期的には、広告テクノロジーはリアルタイム データを取得するために、信頼できる実行環境で実行されるオープンソースの Protected Audience API Key-Value サービスを使用する必要があります。

エコシステムで十分なテスト時間を確保するために、サードパーティ Cookie が廃止されるまでは、オープンソースの Key-Value サービスや信頼できる実行環境の使用を義務付けることはありません。この移行が行われる前に、デベロッパーの皆様にテストと導入を開始するための十分な告知を行います。

Protected Audience のオークションで自社データはどのように使用されますか?

自社データとは、サイトが所有するユーザーに関するデータです。たとえば、広告主やパブリッシャーのサイトでユーザーが好みの色を指定している場合、その色はファーストパーティ データとみなされます。

Protected Audience のオークションでは、広告主は自社データを使用して広告グループのメンバーシップを判断し、userBiddingSignals としてデータをインタレスト グループに渡すことができます。広告主からのファーストパーティ データは、入札生成ステップにおける購入者のみが利用でき、販売者は入手できません。

たとえば、ユーザーがユーザーの好みの色を把握している場合は、ユーザーがインタレスト グループに追加されたときにインタレスト グループの設定で値を userBiddingSignals に設定できます。

const interestGroup = {
  owner: 'https://example-buyer.com',
  name: 'running-shoes',
  userBiddingSignals: {
    favoriteColor: 'blue' // First-party data
  },
  // ...other interest group settings
};

navigator.joinAdInterestGroup(interestGroup, 3600);

パブリッシャーは、オークションの開始時にオークション設定でシグナルを設定して自社データを渡すことも、ファーストパーティ データを受け取るユーザーを管理することもできます。パブリッシャーが auctionSignals として自社データを渡すと、購入者と販売者の両方が自社データを利用できるようになります。sellerSignals としてデータを渡した場合は販売者のみが利用でき、perBuyerSignals として渡すと指定した購入者のみが利用できます。パブリッシャーは、コンポーネント オークションに自社データを渡すこともできます。パブリッシャーとオークションの参加者は、共有する必要があるファーストパーティ データと、データをどのようにフォーマットする必要があるかについて、事前に合意しておく必要があります。

次の例は、パブリッシャーがさまざまなオークション参加者に自社データを渡す方法を示しています。

const auctionConfig = {
  seller: 'https://example-seller.com',
  auctionSignals: {
    favoriteColor: 'blue', // Both buyer and seller will receive this signal
  },
  sellerSignals: {
    favoriteIceCreamFlavor: 'chocolate', // Only the seller will receive this signal
  },
  perBuyerSignals: {
    'https://example-buyer.com': {
      favoriteDrink: 'tea', // Only a specific buyer will receive this signal
    },
  },
  // The same pattern applies to the component auction
  componentAuctions: [{
    seller: 'https://example-component-seller.com',
    auctionSignals: { ... },
    sellerSignals: { ... },
    perBuyerSignals { ... }
  }],
  // ...other auction settings
};

navigator.runAdAuction(auctionConfig);

補足説明

Protected Audience API について詳しくは、Protected Audience API デベロッパー ガイドをご覧ください。

デベロッパー

Protected Audience API を使用する準備ができたら、テストと参加をご覧ください。

Google では API デベロッパー ガイドを作成し、Protected Audience API のデモを作成しました。このデモでは、Protected Audience API の基本的なデプロイ方法について説明しています。Protected Audience API のデモ動画では、デモコードの仕組みと、Chrome DevTools を使用して Protected Audience API をデバッグする方法について説明しています。

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