瞭解出價和競價服務的競價架構
總覽
出價和競價 (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) 服務 | 這項服務會處理賣方 SFE 的 GetBids 要求。負責解密酬載、擷取 K/V 信號,以及呼叫出價服務的 GenerateBids。 |
| 出價服務 | 這項服務會處理 BFE 的 GenerateBids 要求。負責執行買方的出價邏輯,並產生出價。 |
|
| 賣方 | 賣家前端 (SFE) 服務 | 這項服務會處理賣方廣告服務的 SelectAd 要求。負責解密酬載、呼叫 BFE 的 GetBids 作業、擷取 K/V 信號、呼叫 Auction Service 的 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 會將
SelectAd要求傳送至 SFE 服務。- 內容比對競價的得標出價和買方信號會新增至
SelectAd請求酬載。
- 內容比對競價的得標出價和買方信號會新增至
- SSP 的 SFE 服務會透過
GetBids要求呼叫 DSP 的 BFE 服務。 - DSP 的 BFE 會使用
GenerateBids要求呼叫出價服務。 - SFE 收到出價後,會對競價服務發出
ScoreAd呼叫。- 系統會將最高期望分數的出價傳回 SAS,然後轉送至網頁上的 JavaScript 程式碼。
- 將加密的 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-A和DSP-B只會參與裝置端競價DSP-X和DSP-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 服務的買方堆疊,才能向競價提交出價。買方和賣方不必使用相同的雲端供應商。
在上述設定中,SSP-BA 會執行 B&A 競價,DSP-X 和 DSP-Y 則會使用 B&A 服務的買方堆疊參與競價。賣方的廣告服務會先對 DSP-X 和 DSP-Y 執行內容相關競價,然後將 SelectAd 要求傳送至賣方的 SFE 服務,執行 Protected Audience 競價。系統會將比對內容競價的勝出出價和每位買家的信號傳遞至 SelectAd 呼叫。接著,SFE 服務會將 GetBids 要求傳送至 DSP-X 和 DSP-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 競價路徑:
在這個設定中,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 競價完成前,平行啟動裝置端競價。
用戶端中的 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 多重賣家競價:
- 裝置主導的競價,其中對各元件賣方廣告服務的呼叫來自瀏覽器
- 伺服器協調式競價,其中對每個元件賣方廣告服務的呼叫,都來自頂層賣方的廣告服務
裝置調度多賣方競價
在裝置主導的多賣家競價中,每個元件賣家都可以自由選擇競價設定。裝置內建賣家、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 上的下列說明:
- 請按照端對端本機測試程式碼研究室的說明,透過 B&A 實驗 Protected Audience。
- 如要瞭解如何整合賣家,請參閱「以賣家身分與 B&A 整合」一文。
有任何問題嗎?
- 如要詢問出價和競價服務相關問題,請在 B&A 服務存放區中開啟問題。