架構

瞭解出價和競價服務的競價架構

總覽

出價和競價 (B&A) 服務為廣告買方和賣方提供一組服務,這些服務會在可信執行環境 (TEE) 中執行,以利進行 Protected Audience (PA) 競價。本頁面說明 B&A 可在 PA 競價中使用的各種競價設定。

定義

字詞 說明
Protected Audience 競價 涉及跨網站資料的廣告競價
內容比對競價 不涉及跨網站資料的廣告競價。這個競價會遵循現有的即時出價 (RTB) 競價路徑。
統一競價要求 賣方的 JavaScript 程式碼透過瀏覽器傳送的要求,其中包含 Protected Audience 競價和內容相關競價的酬載。
賣方廣告服務 (SAS) 負責處理來自瀏覽器的統一競價要求的服務。這可能是賣方的現有 RTB 廣告伺服器。SAS 負責安排內容相關和 Protected Audience 競價。
買方廣告服務 負責提交內容相關競價出價的服務。這可能是買方的現有 ORTB 廣告伺服器。

買方和賣方服務

B&A 服務包含四項服務,可供買家和賣家使用:

  • 買方可使用出價服務買方前端 (BFE) 服務
  • 賣家可使用競價服務賣家前端 (SFE) 服務
參與者 服務 說明
採購 買方前端 (BFE) 服務 這項服務會處理來自賣方 SFEGetBids 要求。負責解密酬載,擷取 K/V 信號,並呼叫出價服務GenerateBids
出價服務 這項服務會處理來自 BFEGenerateBids 要求。負責執行買方的出價邏輯,並產生出價。
賣方 賣家前端 (SFE) 服務 服務會處理來自賣方廣告服務SelectAd 要求。負責解密酬載,呼叫 BFEGetBids 作業、擷取 K/V 信號、呼叫 Auction ServiceScoreAd 作業,然後將已加密的 B&A 競價結果傳回 SAS。

如果服務是伺服器協調的多賣家競價中頂層賣家堆疊的一部分,則服務也會處理來自 SASGetComponentAuctionCiphertexts 要求。

競價服務 服務會處理來自 SFEScoreAd 要求。負責執行賣方的評分邏輯,並提供出價的適合度分數。

網頁版 PA B&A 競價的架構

下圖說明基本 Protected Audience 競價流程,其中包含 B&A 服務、單一賣家和單一買家。粗紅色框線代表在 TEE 中執行的服務:

用戶端 JavaScript 程式碼會將統一競價要求傳送至 SSP。SAS 會傳送要求給 SFE,而 SFE 會傳送出價要求給 BFE

(完整大小的圖表)

  1. 發布商網頁上的可調式夥伴管理廣告伺服器 JavaScript 程式碼會呼叫 navigator.getInterestGroupAdAuctionData(),產生經過加密的 B&A 廣告競價資料。
    • 這個加密酬載包含買家的資料,且只能在 TEE 的 SFE 中解密。
  2. SSP JavaScript 程式碼會向賣方廣告服務傳送統一競價要求。
    • 統一競價要求包含純文字 ORTB 內容相關競價酬載和加密的 B&A 競價酬載。
    • 賣方廣告服務是您現有的廣告伺服器,不會在 TEE 中執行。
  3. 賣方廣告服務會呼叫 DSP 的即時出價服務,要求內容比對競價出價和任何買方信號,以便傳遞至後續的 PA 競價。
    • 這是買方表示有意參與 PA 競價的步驟。
  4. 內容相關競價完成後,SAS 會將 SelectAd 要求傳送至 SFE 服務。
    • 內容比對競價勝出出價和買家信號會新增至 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 混合模式賣家

有四個 DSP:

  • DSP-ADSP-B 只會參與裝置端競價
  • DSP-XDSP-Y 同時參與裝置端競價和 B&A 競價

共有四個 SSP,每個賣方都會執行不同的競價設定:

  • SSP-OD 執行裝置端專屬競價
  • SSP-BA 執行僅限 B&A 的競價
  • SSP-MIX 執行混合模式競價
  • SSP-TOP 執行多賣家競價:
    • SSP-OD/BA/MIX 以元件賣家的身分參與 SSP-TOP 的多賣方競價

單一賣家 B&A 競價

在單一賣方設定中,單一賣方會執行多位買家參與的競價。如果賣方正在執行 B&A 競價,買方必須執行 B&A 服務的買方堆疊,才能向競價提交出價。買方和賣方不必使用相同的雲端服務供應商。

單一賣家架構:一個 SFE 與多個 BFE 通訊,以便接收出價

(完整大小的圖表)

在上述設定中,SSP-BA 會執行 B&A 競價,DSP-XDSP-Y 會使用 B&A 服務的買方堆疊參與競價。賣方的廣告服務會先為 DSP-XDSP-Y 執行內容相關競價,然後將 SelectAd 要求傳送至賣方的 SFE 服務,執行受保護目標對象競價。比對內容競價勝出出價和每位買家的訊號會傳送至 SelectAd 呼叫。接著,SFE 服務會將 GetBids 要求傳送至 DSP-XDSP-Y 的 BFE,後者會呼叫出價服務來產生出價。

系統會將經過加密的 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 競價的 SelectAd 呼叫中,會使用相同的 Nonce,而該 Nonce 會納入 SFE 傳回的 SelectAd 回應中。在用戶端競價階段,瀏覽器會驗證 Ad-Auction-Result-Nonce 回應標頭中的 Nonce 是否與加密競價結果酬載中的 Nonce 相符。

請參閱說明文件,進一步瞭解混合模式並行處理。

多賣家競價

您可以透過下列兩種方式,透過 B&A 執行 PA 多賣家競價:

  1. 裝置協調競價,其中對各個元件供應商廣告服務的呼叫來自瀏覽器
  2. 伺服器協調競價,其中對各個元件賣家廣告服務的呼叫來自頂層賣家的廣告服務

裝置端協調的多個賣方競價

在裝置協調的多賣方競價中,每個元件賣家都可以自由選擇所需的設定來執行競價。裝置端賣家、B&A 賣家和混合模式賣家都可以參與頂層競價。

這張圖表說明多位使用不同競價設定的賣家,如何將競價結果提交給頂層賣家

(完整大小的圖表)

在這個設定中,SSP-TOP 是頂層賣方,會執行多賣方競價,SSP-ODSSP-BASSP-MIX 都會參與其中:

  • SSP-OD 執行僅限裝置端的 PA 競價,並將裝置端元件競價設定提交給頂層賣家。
  • SSP-BA 會執行 B&A 競價,向賣方廣告服務傳送整合式競價要求,並執行自己的內容相關和 B&A 競價。結果會提交給頂層賣家。
  • SSP-MIX 會執行混合模式競價,首先在伺服器上執行 B&A 競價,然後提交 B&A 競價結果和裝置端競價設定。

頂層賣家會從各個賣家收集元件競價設定,並建構類似下列的競價設定:

await navigator.runAdAuction({
  seller: 'https://ssp-top.example',
  decisionLogicURL: 'https://ssp-top.example/score-ad.js',
  componentAuctions: [
    // SSP-BA's B&A-only auction
    {
      seller: 'https://ssp-ba.example',
      requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [193, 120, 4, ] // Encrypted B&A auction result
    },
    // SSP-MIX's B&A auction of mixed-mode
    {
      seller: 'https://ssp-mix.example',
      requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [133, 20, 4, ] // Encrypted B&A auction result
    }.
    // SSP-MIX's on-device auction of mixed-mode
    {
      seller: 'https://ssp-mix.example',
      interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
      decisionLogicURL: 'https://ssp-mix.example/score-ad.js',
    }
    // SSP-OD's on-device auction
    {
      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 提交出價。

頂層賣方平台會將統一競價要求傳送至賣方廣告服務。賣方廣告服務會呼叫 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,並執行元件 B&A 競價。接著,元件競價的結果會傳回至頂層賣方的 SFE,而元件競價會由頂層賣方的競價服務評分。系統會將得分最高的出價傳回至 SFE,並將加密酬載傳送至 SAS,再傳回給用戶端。在瀏覽器中,頂層賣家會呼叫 navigator.runAdAuction() 並提供已加密的伺服器競價結果酬載,藉此完成競價。

後續步驟

閱讀本指南後,您可以採取下列後續步驟:

瞭解詳情

有任何問題嗎?