Protected Audience API の概要

リマーケティングとカスタム オーディエンスの配信を目的としたデバイス上の広告オークション。サードパーティ Cookie によるクロスサイト トラッキングは不要です。

この記事の対象者

この記事では、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 の仕組みについて説明します。

Protected Audience API を 1 分で理解する

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 に設定されているか、渡されていない場合、落札した広告は iframe で広告をレンダリングするために使用できる不透明な URN として返されます。フェンスされたフレーム構成オブジェクトは、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 を提供します。クリエイティブのレンダリング URL を使用して、販売者の Key-Value サービスがクエリされます。

最初のテストでは、「BYOS(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 の使用を開始する準備ができたら、テストと参加をご覧ください。

API デベロッパー ガイドProtected Audience API デモを作成しました。Protected Audience API の基本的なデプロイのチュートリアルをご覧いただけます。Protected Audience API のデモ動画では、デモコードの仕組みと、Chrome DevTools を使用して Protected Audience API のデバッグを行う方法について説明しています。

意見交換とフィードバックの提供