架構

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

總覽

出價和競價 (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 拍賣架構

下圖說明使用 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 會將 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 買方
  • 可由裝置或伺服器自動調度的多賣方競價

參與者

為說明各項競價設定,本指南會使用下列參與者:

學員 說明
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/MIXSSP-TOP多重賣方競價的元件賣家身分參與

單一賣家 B&A 競價

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

單一賣家架構,其中一個 SFE 會與多個 BFE 通訊,以接收出價。
(完整大小的圖表)

在上述設定中,SSP-BA 會執行 B&A 競價,DSP-XDSP-Y 則會使用 B&A 服務的買方堆疊參與競價。賣方的廣告服務會先對 DSP-XDSP-Y 執行內容相關競價,然後將 SelectAd 要求傳送至賣方的 SFE 服務,執行 Protected Audience 競價。系統會將比對內容競價的勝出出價和每位買家的信號傳遞至 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 競價完成前,平行啟動裝置端競價。

圖表:說明內容相關競價出價和信號,以及 SelectAd 結果如何串流回瀏覽器 JavaScript 程式碼
(完整大小的圖表)

用戶端中的 JavaScript 程式碼會將統一競價要求傳送至 SAS,而 SAS 會啟動內容相關競價和 PA B&A 競價。當 SAS 收到買方 RTB 伺服器的回應時,裝置端競價的買方信號會連同情境競價得主 (收到所有出價後) 一併串流回瀏覽器。系統會使用串流買家信號在裝置上產生出價,並在評估出價時,將比對內容競價的勝出者做為出價底價。

在 SAS 中,賣方會產生 UUID nonce,並在將情境競價資料串流至瀏覽器時,於 Ad-Auction-Result-Nonce 回應標頭中設定。在 B&A 競價的 SFE SelectAd 呼叫中,會使用相同的 Nonce,而該 Nonce 會納入 SFE 傳回的 SelectAd 回應。在用戶端競價階段,瀏覽器會驗證 Ad-Auction-Result-Nonce 回應標頭中的隨機值,是否與加密競價結果酬載中的隨機值相符。

如要進一步瞭解混合模式平行化,請參閱說明

多賣家競價

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

  1. 裝置主導的競價,其中對各元件賣方廣告服務的呼叫來自瀏覽器
  2. 伺服器協調式競價,其中對每個元件賣方廣告服務的呼叫,都來自頂層賣方的廣告服務

裝置調度多賣方競價

在裝置主導的多賣家競價中,每個元件賣家都可以自由選擇競價設定。裝置內建賣家、B&A 賣家和混合模式賣家都可以參與頂層競價。

這張圖表說明多位賣家如何提交競價結果給頂層賣家,這些賣家執行不同的競價設定。
(完整大小的圖表)
在這個設定中,頂層賣方 `SSP-TOP` 會執行多賣方競價,`SSP-OD`、`SSP-BA` 和 `SSP-MIX` 都會參與競價: * `SSP-OD` 會執行僅限裝置端的 PA 競價,並將裝置端元件競價設定提交給頂層賣方。 * `SSP-BA` 執行 B&A 競價,並將整合式競價要求傳送至賣方廣告服務,然後執行自己的內容相關和 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'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,而每個元件 SAS 則會執行元件 B&A 競價。接著,元件競價的結果會傳回給頂層賣方的 SFE,且元件競價出價會由頂層賣方的競價服務評分。系統會將最高期望分數的出價傳回 SFE,並將加密的酬載傳送至 SAS,再傳回給用戶端。在瀏覽器中,頂層賣家會呼叫 navigator.runAdAuction() 並提供加密的伺服器競價結果酬載,完成競價。

後續步驟

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

瞭解詳情

有任何問題嗎?