アーキテクチャ

入札およびオークション サービスのオークション アーキテクチャについて学習する

概要

入札およびオークション(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 リクエストを処理します。ペイロードの復号、BFEGetBids オペレーションの呼び出し、K/V シグナルの取得、オークション サービスScoreAd オペレーションの呼び出しを行い、暗号化された B&A オークション結果を SAS に返します。

サービスがサーバー オーケストレーションによるマルチセラー オークションの最上位の販売者のスタックの一部である場合、サービスは SAS からの GetComponentAuctionCiphertexts リクエストも処理します。

オークション サービス サービスは SFE からの ScoreAd リクエストを処理します。販売者のスコアリング ロジックを実行し、入札の望ましさのスコアを提供します。

ウェブ向けの PA B&A オークションのアーキテクチャ

次の図は、単一の販売者と単一の購入者による B&A サービスを使用した基本的な Protected Audience オークションを示しています。赤い太線で囲まれたボックスは、TEE で実行されているサービスを表します。

クライアントサイドの JavaScript コードが、統一オークションのリクエストを SSP に送信します。SAS が SFE にリクエストを送信し、SFE が BFE に入札のリクエストを送信します。
フルサイズの図
  1. パブリッシャー ページの SSP の JavaScript コードは、navigator.getInterestGroupAdAuctionData() を呼び出して暗号化された B&A 広告オークション データを生成します。
    • この暗号化されたペイロードには購入者のデータが含まれており、TEE の SFE 内でのみ復号できます。
  2. SSP JavaScript コードが販売者広告サービスに統一オークション リクエストを送信します。
    • 統合オークション リクエストには、プレーンテキストの ORTB コンテキスト オークション ペイロードと暗号化された B&A オークション ペイロードの両方が含まれています。
    • 販売者の広告サービスは既存の広告サーバーであり、TEE で実行されません。
  3. 販売者の広告サービスは、DSP の RTB サービスを呼び出して、コンテキスト オークションの入札単価と、後続の PA オークションに渡される購入者シグナルをリクエストします。
    • これは、購入者が PA オークションに参加する意向を示すステップです。
  4. コンテキスト オークションが完了すると、SAS は SFE サービスに SelectAd リクエストを送信します。
    • コンテキスト オークションの落札額と購入者のシグナルが SelectAd リクエストのペイロードに追加されます。
  5. SSP の SFE サービスが GetBids リクエストで DSP の BFE サービスを呼び出します。
  6. DSP の BFE は、GenerateBids リクエストを使用して入札サービスを呼び出します。
  7. 入札が SFE に届くと、ScoreAd 呼び出しがオークション サービスに対して行われます。
    • 最も望ましさスコアの高い入札額が SAS に返され、ページの JavaScript コードに転送されます。
  8. オークションは、暗号化された 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-ADSP-B はオンデバイス オークションのみに参加します
  • DSP-XDSP-Y は、オンデバイス オークションと B&A オークションの両方に参加します

4 つの SSP があり、各販売者は異なるオークション構成を実行しています。

  • SSP-OD がオンデバイスのみのオークションを実行
  • SSP-BA は B&A のみのオークションを実施します
  • SSP-MIX は混合モードのオークションを実行します
  • SSP-TOP がマルチセラー オークションを実行します。
    • SSP-OD/BA/MIXSSP-TOP の複数販売者オークションのコンポーネント販売者として参加する

単一販売者の B&A オークション

単一販売者設定では、1 人の販売者がオークションを実施し、複数の購入者が参加します。販売者が B&A オークションを実施している場合、購入者は B&A サービスの購入者スタックを実行して、オークションに入札する必要があります。購入者と販売者は同じクラウド プロバイダを使用する必要はありません。

1 つの SFE が複数の BFE と通信して入札を受け取るシングル セラー アーキテクチャ。
フルサイズの図

上記のセットアップでは、SSP-BA は B&A サービスの購入者スタックを使用して DSP-XDSP-Y が参加する B&A オークションを実行します。販売者の広告サービスは、まず DSP-XDSP-Y のコンテキスト オークションを実行し、次に SelectAd リクエストを販売者の SFE サービスに送信して Protected Audience オークションを実行します。コンテキスト オークションの落札単価と各購入者のシグナルが SelectAd 呼び出しに渡されます。次に、SFE サービスは DSP-XDSP-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 オークション パスを表しています。

購入者がデバイス上または B&A から入札を送信できる混合モードの販売者アーキテクチャ。
フルサイズの図

この設定では、DSP-ADSP-B はデバイス上で入札を行う購入者で、DSP-XDSP-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 オークションが終了する前にオンデバイス オークションを並列で開始します。

コンテキスト オークションの入札単価とシグナル、SelectAd の結果がブラウザの JavaScript コードにストリーミングされる仕組みを示す図
フルサイズの図

クライアントの 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 つの方法があります。

  1. 各コンポーネント販売者の広告サービスへの呼び出しがブラウザから発信されるデバイス オーケストレーション オークション
  2. 各コンポーネント販売者の広告サービスへの呼び出しが最上位の販売者の広告サービスから発信される、サーバー オーケストレーションによるオークション

デバイス オーケストレーションによるマルチセラー オークション

デバイス オーケストレーションによるマルチセラー オークションでは、各コンポーネント販売者は任意の構成でオークションを実施できます。デバイス内販売者、B&A 販売者、混合モード販売者はすべて、最上位のオークションに参加できます。

異なるオークション構成を実行している複数の販売者が、オークション結果をトップレベルの販売者に送信する方法を示す図。
フルサイズの図
この設定では、最上位の販売者である `SSP-TOP` が、`SSP-OD`、`SSP-BA`、`SSP-MIX` が参加するマルチセラー オークションを実行します。 * オンデバイスのみの PA オークションを実行する `SSP-OD` は、オンデバイス コンポーネント オークション設定を最上位の販売者に送信します。* B&A オークションを実行する `SSP-BA` は、統合オークション リクエストを販売者の広告サービスに送信し、独自のコンテキスト オークションと B&A オークションを実行します。結果は最上位の販売者に送信されます。* `SSP-MIX` は、混合モードのオークションを実行し、まずサーバーで B&A オークションを実行してから、B&A オークションの結果とオンデバイス オークションの構成の両方を送信します。最上位の販売者は、各販売者からコンポーネント オークション構成を収集し、次のようなオークション構成を作成します。 ```js await navigator.runAdAuction({ seller: 'https://ssp-top.example', decisionLogicURL: 'https://ssp-top.example/score-ad.js', componentAuctions: [ // SSP-BA の B&A 専用オークション { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // 暗号化された B&A オークションの結果 }, // SSP-MIX の混合モードの B&A オークション { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // 暗号化された B&A オークションの結果 }. // SSP-MIX の混合モードのオンデバイス オークション { seller: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // SSP-OD のオンデバイス オークション { seller: 'https://ssp-od.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-od.example/score-ad.js', } ] }) ``` ### サーバー オーケストレーションによるマルチ販売者オークション サーバー オーケストレーションによるマルチ販売者オークションでは、コンポーネント販売者の広告サービスへの呼び出しは、最上位の販売者の広告サービスから行われます。この設定では、コンポーネント販売者はオンデバイス オークションや混合モード オークションを実行できません。すべての販売者は B&A を使用する必要があり、すべての購入者は B&A を使用して入札を送信する必要があります。
最上位の SSP が、統一オークション リクエストを販売者の広告サービスに送信します。販売者の広告サービスが SFE を呼び出して GetComponentAuctionCipherTexts オペレーションを実行します。返された暗号文は、独自の B&A オークションを実施する各コンポーネント販売者の広告サービスに送信されます。
フルサイズの図

この図では、SSP-TOP がサーバー オーケストレーションによる複数販売者のオークションを実行し、SSP-BA-XSSP-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() を呼び出し、暗号化されたサーバー オークション結果ペイロードを提供して、オークションを終了します。

次のステップ

このガイドを読んだら、次の手順に進むことができます。

その他の情報

ご不明な点がある場合