入札およびオークション サービスのオークション アーキテクチャについて学習する
概要
入札およびオークション(B&A)サービスは、高信頼実行環境(TEE)で実行される広告の購入者と販売者向けのサービス群を提供し、Protected Audience(PA)オークションを促進します。このページでは、PA オークションで B&A を使用できるさまざまなオークション構成について説明します。
定義
| 用語 | 説明 |
|---|---|
| Protected Audience オークション | クロスサイト データを含む広告オークション |
| コンテキスト オークション | クロスサイト データを使用しない広告オークション。このオークションは、既存のリアルタイム ビッダー(RTB)オークション パスに沿って行われます。 |
| 統合オークション リクエスト | ブラウザから販売者の JavaScript コードによって送信されるリクエスト。Protected Audience オークションとコンテキスト オークションの両方のペイロードが含まれます。 |
| Seller Ad Service(SAS) | ブラウザからの統合オークション リクエストの処理を担当するサービス。これは、販売者の既存の RTB 広告サーバーである可能性があります。SAS は、コンテキストに基づくオークションと Protected Audience オークションの両方をオーケストレートします。 |
| 購入者向け広告サービス | コンテキストに基づくオークション入札の送信を担当するサービス。これは、購入者の既存の ORTB 広告サーバーである可能性があります。 |
購入者と販売者向けのサービス
B&A サービスは、購入者と販売者向けの次の 4 つのサービスで構成されています。
- 購入者向けには、入札サービスと購入者フロントエンド(BFE)サービスを利用できます。
- 販売者向けには、オークション サービスと販売者フロントエンド(SFE)サービスが利用可能です。
| 参加者 | サービス | 説明 |
|---|---|---|
| 購入者 | Buyer Front-End(BFE)サービス | このサービスは、販売者の SFE からの GetBids リクエストを処理します。ペイロードの復号、K/V シグナルの取得、入札サービスの GenerateBids の呼び出しを行います。 |
| 入札サービス | サービスは BFE からの GenerateBids リクエストを処理します。購入者の入札ロジックを実行し、入札単価を生成します。 |
|
| 販売者 | 販売者向けフロントエンド(SFE)サービス | このサービスは、販売者の広告サービスからの SelectAd リクエストを処理します。ペイロードの復号、BFE の GetBids オペレーションの呼び出し、K/V シグナルの取得、オークション サービスの ScoreAd オペレーションの呼び出しを行い、暗号化された B&A オークション結果を SAS に返します。サービスがサーバー オーケストレーションによるマルチセラー オークションの最上位の販売者のスタックの一部である場合、サービスは SAS からの |
| オークション サービス | サービスは SFE からの ScoreAd リクエストを処理します。販売者のスコアリング ロジックを実行し、入札の望ましさのスコアを提供します。 |
ウェブ向けの PA B&A オークションのアーキテクチャ
次の図は、単一の販売者と単一の購入者による B&A サービスを使用した基本的な Protected Audience オークションを示しています。赤い太線で囲まれたボックスは、TEE で実行されているサービスを表します。
- パブリッシャー ページの SSP の JavaScript コードは、
navigator.getInterestGroupAdAuctionData()を呼び出して暗号化された B&A 広告オークション データを生成します。- この暗号化されたペイロードには購入者のデータが含まれており、TEE の SFE 内でのみ復号できます。
- SSP JavaScript コードが販売者広告サービスに統一オークション リクエストを送信します。
- 統合オークション リクエストには、プレーンテキストの ORTB コンテキスト オークション ペイロードと暗号化された B&A オークション ペイロードの両方が含まれています。
- 販売者の広告サービスは既存の広告サーバーであり、TEE で実行されません。
- 販売者の広告サービスは、DSP の RTB サービスを呼び出して、コンテキスト オークションの入札単価と、後続の PA オークションに渡される購入者シグナルをリクエストします。
- これは、購入者が PA オークションに参加する意向を示すステップです。
- コンテキスト オークションが完了すると、SAS は SFE サービスに
SelectAdリクエストを送信します。- コンテキスト オークションの落札額と購入者のシグナルが
SelectAdリクエストのペイロードに追加されます。
- コンテキスト オークションの落札額と購入者のシグナルが
- SSP の SFE サービスが
GetBidsリクエストで DSP の BFE サービスを呼び出します。 - DSP の BFE は、
GenerateBidsリクエストを使用して入札サービスを呼び出します。 - 入札が SFE に届くと、
ScoreAd呼び出しがオークション サービスに対して行われます。- 最も望ましさスコアの高い入札額が SAS に返され、ページの JavaScript コードに転送されます。
- オークションは、暗号化された B&A オークションの結果を
navigator.runAdAuction()呼び出しに渡すことで、ブラウザで終了します。
オークション構成
B&A サービスを使用した Protected Audience オークションは、次の方法で構成できます。
- B&A バイヤーとの単一販売者オークション
- オンデバイス バイヤーと B&A バイヤーを含む混合モードのオークション
- デバイス オーケストレーションまたはサーバー オーケストレーションが可能なマルチセラー オークション
参加者
このガイドでは、各オークション構成を説明するために、次の参加者を使用します。
| 参加者 | 説明 |
|---|---|
DSP-A |
オンデバイス購入者 |
DSP-B |
オンデバイス購入者 |
DSP-X |
B&A 購入者 |
DSP-Y |
B&A 購入者 |
SSP-TOP |
トップレベルの販売者 |
SSP-OD |
デバイス上のコンテンツのみを販売する販売者 |
SSP-BA |
B&A のみを取り扱う販売者 |
SSP-MIX |
混合モードの販売者 |
次の 4 つの DSP があります。
DSP-AとDSP-Bはオンデバイス オークションのみに参加しますDSP-XとDSP-Yは、オンデバイス オークションと B&A オークションの両方に参加します
4 つの SSP があり、各販売者は異なるオークション構成を実行しています。
SSP-ODがオンデバイスのみのオークションを実行SSP-BAは B&A のみのオークションを実施しますSSP-MIXは混合モードのオークションを実行しますSSP-TOPがマルチセラー オークションを実行します。SSP-OD/BA/MIXはSSP-TOPの複数販売者オークションのコンポーネント販売者として参加する
単一販売者の B&A オークション
単一販売者設定では、1 人の販売者がオークションを実施し、複数の購入者が参加します。販売者が B&A オークションを実施している場合、購入者は B&A サービスの購入者スタックを実行して、オークションに入札する必要があります。購入者と販売者は同じクラウド プロバイダを使用する必要はありません。
上記のセットアップでは、SSP-BA は B&A サービスの購入者スタックを使用して DSP-X と DSP-Y が参加する B&A オークションを実行します。販売者の広告サービスは、まず DSP-X と DSP-Y のコンテキスト オークションを実行し、次に SelectAd リクエストを販売者の SFE サービスに送信して Protected Audience オークションを実行します。コンテキスト オークションの落札単価と各購入者のシグナルが SelectAd 呼び出しに渡されます。次に、SFE サービスは DSP-X と DSP-Y の BFE に GetBids リクエストを送信します。これにより、入札サービスが呼び出されて入札が生成されます。
暗号化された B&A オークションの結果がクライアントに返され、runAdAuction() 呼び出しに渡されます。単一販売者オークションの構成は次のようになります。
await navigator.runAdAuction({
seller: 'https://ssp-ba.example',
requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result
})
requestId 値はクライアントの getInterestGroupAdAuctionData() 呼び出しから取得され、serverResponse データはサーバーサイドの B&A オークションから取得されます。
混合モードのオークション
混合モード構成では、購入者はデバイス上または B&A から販売者のオークションに参加できます。青い矢印はデバイス上のオークション パス、赤い矢印は B&A オークション パスを表しています。
この設定では、DSP-A と DSP-B はデバイス上で入札を行う購入者で、DSP-X と DSP-Y は B&A を使用して入札を行う購入者です。オンデバイス購入者はブラウザでオンデバイス PA オークションに参加し、B&A 購入者は単一販売者オークションのセクションで説明されている B&A オークションの設定に参加します。
コンテキスト オークションは、すべての購入者に対して最初に実行され、コンテキスト オークションの落札単価と購入者のシグナルが収集されます。次に、B&A オークションが実行され、コンテキスト オークションの購入者シグナルが SFE への SelectAd リクエストに渡されます。SFE から返された暗号化された B&A オークション結果がブラウザに転送されます。B&A オークションの後、その結果はオンデバイス購入者が参加するオンデバイス オークションに渡されます。
オークションのオンデバイス部分の混合モードの単一販売者オークション構成は次のようになります。
await navigator.runAdAuction({
seller: 'https://ssp-mix.example',
decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
componentAuctions: [
// B&A auction
{
seller: 'https://ssp-mix.example',
requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [133, 20, 14, …]
},
// On-device auction
{
seller: 'https://ssp-mix.example',
interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
}
]
})
オンデバイス オークションと B&A オークションの並列化
並列化しない場合、オークションは順番に実行されます。まずコンテキスト オークションが実行され、次に B&A オークション、最後にオンデバイス オークションが実行されます。並列化が実装されると、コンテキスト オークションが再び最初に実行されますが、その結果とシグナルはクライアントにストリーミングされ、B&A オークションが終了する前にオンデバイス オークションを並列で開始します。
クライアントの JavaScript コードが統合オークション リクエストを SAS に送信し、SAS がコンテキスト オークションと PA B&A オークションを開始します。SAS が購入者の RTB サーバーからレスポンスを受け取ると、すべての入札が受信された後、購入者のオンデバイス オークションのシグナルをコンテキスト オークションの落札者とともにブラウザにストリーミングできます。ストリーミングされた購入者のシグナルは、デバイス上で入札単価を生成するために使用され、コンテキスト オークションの落札者は、入札単価をスコアリングする際の入札下限として使用されます。
SAS では、コンテキスト オークション データをブラウザにストリーミングする際に、販売者が Ad-Auction-Result-Nonce レスポンス ヘッダーに設定される UUID nonce を生成します。同じノンスが、B&A オークションの SFE への SelectAd 呼び出しで使用され、そのノンスが SFE から返される SelectAd レスポンスに含まれます。クライアントサイド オークション フェーズでは、ブラウザは Ad-Auction-Result-Nonce レスポンス ヘッダーのノンスが暗号化されたオークション結果ペイロードのノンスと一致することを確認します。
混合モードの並列化について詳しくは、説明をご覧ください。
マルチセラー オークション
B&A で PA マルチセラー オークションを実行するには、次の 2 つの方法があります。
- 各コンポーネント販売者の広告サービスへの呼び出しがブラウザから発信されるデバイス オーケストレーション オークション
- 各コンポーネント販売者の広告サービスへの呼び出しが最上位の販売者の広告サービスから発信される、サーバー オーケストレーションによるオークション
デバイス オーケストレーションによるマルチセラー オークション
デバイス オーケストレーションによるマルチセラー オークションでは、各コンポーネント販売者は任意の構成でオークションを実施できます。デバイス内販売者、B&A 販売者、混合モード販売者はすべて、最上位のオークションに参加できます。
この図では、SSP-TOP がサーバー オーケストレーションによる複数販売者のオークションを実行し、SSP-BA-X と SSP-BA-Y が参加しています。
すべての参加者のコンテキスト オークションと PA オークションのペイロードを含む単一の統一オークション リクエストが、ブラウザから最上位の販売者の広告サービスに送信されます。次に、SAS はペイロードを使用して SFE に GetComponentAuctionCiphertexts 呼び出しを行います。SFE はペイロードを復号し、コンポーネント販売者ごとにペイロードを分離して、再暗号化されたペイロードを最上位の販売者の SAS に返します。
GetComponentAuctionCiphertexts リクエストとレスポンスの proto 定義は次のとおりです。
// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
bytes protected_auction_ciphertext = 1; // Generated in the browser
repeated string component_sellers = 2; // The list of all component sellers
}
// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
// A map of component sellers and their re-encrypted payloads
map<string, bytes> seller_component_ciphertexts = 1;
}
各コンポーネント販売者のペイロードで、最上位の販売者の SAS がコンポーネント販売者の SAS を呼び出し、各コンポーネント SAS がコンポーネントの B&A オークションを実行します。その後、コンポーネント オークションの結果が最上位の販売者の SFE に返され、コンポーネント オークションの入札単価が最上位の販売者のオークション サービスによってスコアリングされます。最も望ましいスコアの入札が SFE に返され、その暗号化されたペイロードが SAS に送信されてクライアントに返されます。ブラウザで、最上位の販売者は navigator.runAdAuction() を呼び出し、暗号化されたサーバー オークション結果ペイロードを提供して、オークションを終了します。
次のステップ
このガイドを読んだら、次の手順に進むことができます。
その他の情報
- Protected Audience の B&A の仕組みについて詳しくは、GitHub で次の説明をご覧ください。
- エンドツーエンドのローカル テストの Codelab に沿って、B&A で Protected Audience をテストします。
- 販売者の統合については、販売者として B&A と統合するをご覧ください。
ご不明な点がある場合
- 入札およびオークション サービスに関する質問は、B&A サービス リポジトリで問題をオープンしてください。