Mempelajari arsitektur lelang Layanan Bidding dan Lelang
Ringkasan
Layanan Bidding dan Lelang (B&A) menyediakan serangkaian layanan untuk pembeli dan penjual iklan yang berjalan di Trusted Execution Environment (TEE) untuk memfasilitasi lelang Protected Audience (PA). Halaman ini menjelaskan berbagai konfigurasi lelang yang dapat digunakan B&A dalam lelang PA.
Definisi
Istilah | Deskripsi |
---|---|
Lelang Protected Audience | Lelang iklan yang melibatkan data lintas situs |
Lelang kontekstual | Lelang iklan yang tidak melibatkan data lintas situs. Lelang ini mengikuti jalur lelang Bidding Real-Time (RTB) yang ada. |
Permintaan lelang terpadu | Permintaan yang dikirim oleh kode JavaScript penjual dari browser yang menyertakan payload untuk lelang Protected Audience dan lelang kontekstual. |
Layanan Iklan Penjual (SAS) | Layanan yang bertanggung jawab untuk menangani permintaan lelang terpadu dari browser. Server ini mungkin merupakan server iklan RTB yang ada milik penjual. SAS bertanggung jawab untuk mengatur lelang kontekstual dan Protected Audience. |
Layanan Iklan Pembeli | Layanan yang bertanggung jawab untuk mengirimkan bid lelang kontekstual. Ini mungkin server iklan ORTB yang ada milik pembeli. |
Layanan untuk pembeli dan penjual
Layanan B&A terdiri dari empat layanan untuk pembeli dan penjual:
- Untuk pembeli, Layanan Bidding dan Layanan Front-End Pembeli (BFE) tersedia untuk digunakan.
- Untuk penjual, Layanan Lelang dan Layanan Front-End Penjual (SFE) tersedia untuk digunakan.
Peserta | Layanan | Deskripsi |
---|---|---|
Reseller | Layanan Front-End Pembeli (BFE) | Layanan ini menangani permintaan GetBids dari SFE penjual. GenerateBids bertanggung jawab untuk mendekripsi payload, mengambil sinyal K/V, dan memanggil GenerateBids Layanan Bidding. |
Layanan Bidding | Layanan menangani permintaan GenerateBids dari BFE. Layanan ini bertanggung jawab untuk menjalankan logika bidding pembeli, dan membuat bid. |
|
Penjual | Layanan Front-End Penjual (SFE) | Layanan ini menangani permintaan SelectAd dari Layanan Iklan Penjual. Fungsi ini bertanggung jawab untuk mendekripsi payload, memanggil operasi GetBids BFE, mengambil sinyal K/V, memanggil operasi ScoreAd Layanan Lelang, lalu menampilkan hasil lelang B&A terenkripsi ke SAS.
Jika layanan merupakan bagian dari stack penjual tingkat teratas dalam lelang multi-penjual yang diorkestrasi server, layanan tersebut juga menangani permintaan |
Layanan Lelang | Layanan menangani permintaan ScoreAd dari SFE. Fungsi ini bertanggung jawab untuk menjalankan logika penskoran penjual, dan memberikan skor keinginan bid. |
Arsitektur lelang B&A PA untuk Web
Diagram berikut menjelaskan lelang Protected Audience dasar dengan Layanan B&A dengan satu penjual dan satu pembeli. Kotak dengan garis merah tebal mewakili layanan yang berjalan di TEE:
- Kode JavaScript SSP di halaman penayang menghasilkan data lelang iklan B&A terenkripsi dengan memanggil
navigator.getInterestGroupAdAuctionData()
.- Payload terenkripsi ini berisi data pembeli dan hanya dapat didekripsi di dalam SFE di TEE.
- Kode JavaScript SSP mengirimkan permintaan lelang terpadu ke Layanan Iklan Penjual.
- Permintaan lelang terpadu berisi payload lelang kontekstual ORTB dalam teks biasa dan payload lelang B&A terenkripsi.
- Layanan Iklan Penjual adalah server iklan yang ada, dan tidak berjalan di TEE.
- Layanan Iklan Penjual memanggil layanan RTB DSP untuk meminta bid lelang kontekstual dan sinyal pembeli apa pun yang akan diteruskan ke lelang PA berikutnya.
- Ini dapat menjadi langkah saat pembeli memberikan sinyal niatnya untuk berpartisipasi dalam lelang PA.
- Setelah lelang kontekstual selesai, SAS akan mengirimkan permintaan
SelectAd
ke Layanan SFE.- Sinyal pembeli dan bid pemenang lelang kontekstual ditambahkan ke payload permintaan
SelectAd
.
- Sinyal pembeli dan bid pemenang lelang kontekstual ditambahkan ke payload permintaan
- Layanan SFE SSP memanggil Layanan BFE DSP dengan permintaan
GetBids
. - BFE DSP memanggil Layanan Bidding dengan permintaan
GenerateBids
. - Setelah bid diterima oleh SFE, panggilan
ScoreAd
dilakukan ke Layanan Lelang.- Bid dengan skor keinginan tertinggi ditampilkan ke SAS, lalu diteruskan ke kode JavaScript di halaman.
- Lelang selesai di browser dengan meneruskan hasil lelang B&A terenkripsi ke panggilan
navigator.runAdAuction()
.
Konfigurasi lelang
Lelang Protected Audience dengan Layanan B&A dapat dikonfigurasi dengan cara berikut:
- Lelang penjual tunggal dengan pembeli B&A
- Lelang mode campuran dengan pembeli di perangkat dan pembeli B&A
- Lelang multi-penjual yang dapat diorkestrasi perangkat atau diorkestrasi server
Peserta
Untuk menjelaskan setiap konfigurasi lelang, peserta berikut digunakan dalam panduan ini:
Peserta | Deskripsi |
---|---|
DSP-A |
Pembeli di perangkat |
DSP-B |
Pembeli di perangkat |
DSP-X |
Pembeli B&A |
DSP-Y |
Pembeli B&A |
SSP-TOP |
Penjual tingkat atas |
SSP-OD |
Penjual khusus di perangkat |
SSP-BA |
Penjual khusus B&A |
SSP-MIX |
Penjual mode campuran |
Ada empat DSP:
DSP-A
danDSP-B
hanya berpartisipasi dalam lelang di perangkatDSP-X
danDSP-Y
berpartisipasi dalam lelang di perangkat dan lelang B&A
Ada empat SSP, dan setiap penjual menjalankan konfigurasi lelang yang berbeda:
SSP-OD
menjalankan lelang khusus perangkatSSP-BA
menjalankan lelang khusus B&ASSP-MIX
menjalankan lelang mode campuranSSP-TOP
menjalankan lelang multi-penjual:SSP-OD/BA/MIX
berpartisipasi sebagai penjual komponen lelang multi-penjualSSP-TOP
Lelang B&A penjual tunggal
Dalam penyiapan satu penjual, satu penjual menjalankan lelang yang diikuti oleh beberapa pembeli. Jika penjual menjalankan lelang B&A, pembeli harus menjalankan stack pembeli Layanan B&A untuk mengirimkan bid ke lelang. Pembeli dan penjual tidak perlu menggunakan penyedia cloud yang sama.
Dalam penyiapan sebelumnya, SSP-BA
menjalankan lelang B&A yang diikuti oleh DSP-X
dan DSP-Y
menggunakan stack pembeli Layanan B&A. Layanan Iklan penjual menjalankan lelang kontekstual terlebih dahulu untuk DSP-X
dan DSP-Y
, lalu menjalankan lelang Protected Audience dengan mengirimkan permintaan SelectAd
ke Layanan SFE penjual. Bid pemenang lelang kontekstual dan sinyal untuk setiap pembeli diteruskan ke panggilan SelectAd
. Kemudian, Layanan SFE mengirimkan permintaan GetBids
ke BFE DSP-X
dan DSP-Y
yang akan memanggil Layanan Bidding mereka untuk membuat bid.
Hasil lelang B&A terenkripsi ditampilkan ke klien, dan diteruskan ke panggilan runAdAuction()
. Konfigurasi lelang satu penjual terlihat seperti berikut:
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
})
Nilai requestId
berasal dari panggilan getInterestGroupAdAuctionData()
di klien, dan data serverResponse
berasal dari lelang B&A sisi server.
Lelang mode campuran
Dalam konfigurasi mode campuran, pembeli dapat berpartisipasi dalam lelang penjual dari perangkat atau B&A. Panah biru mewakili jalur lelang di perangkat dan panah merah mewakili jalur lelang B&A:
Dalam penyiapan ini, DSP-A
dan DSP-B
adalah pembeli yang mengirimkan bid mereka di perangkat, dan DSP-X
dan DSP-Y
adalah pembeli yang mengirimkan bid mereka menggunakan B&A. Pembeli di perangkat berpartisipasi dalam lelang PA di perangkat di browser, dan pembeli B&A berpartisipasi dalam penyiapan lelang B&A yang dijelaskan di bagian lelang satu penjual.
Lelang kontekstual dijalankan terlebih dahulu untuk semua pembeli guna mengumpulkan bid pemenang lelang kontekstual dan sinyal pembeli. Kemudian, lelang B&A berjalan dan sinyal pembeli dari lelang kontekstual diteruskan ke permintaan SelectAd
ke SFE. Hasil lelang B&A terenkripsi yang ditampilkan dari SFE diteruskan ke browser. Setelah lelang B&A, hasilnya dimasukkan ke dalam lelang di perangkat yang diikuti oleh pembeli di perangkat.
Konfigurasi lelang penjual tunggal mode campuran untuk bagian lelang di perangkat terlihat mirip dengan berikut ini:
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',
}
]
})
Paralelisasi lelang di perangkat dan B&A
Tanpa paralelisasi, lelang dijalankan secara berurutan saat lelang kontekstual berjalan, lalu lelang B&A, dan terakhir lelang di perangkat. Dengan paralelisasi yang diterapkan, lelang kontekstual akan berjalan lagi terlebih dahulu, tetapi hasilnya dan sinyalnya akan di-streaming kembali ke klien untuk memulai lelang di perangkat secara paralel sebelum lelang B&A selesai.
Kode JavaScript di klien mengirimkan permintaan lelang terpadu ke SAS, dan SAS memulai lelang kontekstual serta lelang B&A PA. Saat SAS menerima respons dari server RTB pembeli, sinyal pembeli untuk lelang di perangkat dapat di-streaming kembali ke browser, bersama dengan pemenang lelang kontekstual setelah semua bid diterima. Sinyal pembeli yang di-streaming digunakan untuk membuat bid di perangkat, dan pemenang lelang kontekstual digunakan sebagai nilai minimum bid saat menilai bid.
Di SAS, penjual membuat nonce UUID yang ditetapkan di header respons Ad-Auction-Result-Nonce
saat melakukan streaming data lelang kontekstual ke browser. Nonce yang sama digunakan dalam panggilan SelectAd
ke SFE untuk lelang B&A, dan nonce tersebut akan disertakan dalam respons SelectAd
yang ditampilkan dari SFE. Selama fase lelang sisi klien, browser memverifikasi bahwa nonce di header respons Ad-Auction-Result-Nonce
cocok dengan nonce dalam payload hasil lelang terenkripsi.
Lihat penjelasan untuk mempelajari paralelisasi mode campuran lebih lanjut.
Lelang multi-penjual
Ada dua cara untuk menjalankan lelang multi-penjual PA dengan B&A:
- Lelang yang diatur perangkat dengan panggilan ke setiap layanan iklan penjual komponen berasal dari browser
- Lelang yang diatur server dengan panggilan ke setiap layanan iklan penjual komponen berasal dari layanan iklan penjual tingkat teratas
Lelang multi-penjual yang diatur perangkat
Dalam lelang multi-penjual yang diorkestrasi perangkat, setiap penjual komponen bebas menjalankan lelangnya dalam konfigurasi pilihan mereka. Penjual di perangkat, penjual B&A, dan penjual mode campuran semuanya dapat berpartisipasi dalam lelang tingkat teratas.
Dalam penyiapan ini,
SSP-TOP
, yang merupakan penjual tingkat teratas, menjalankan lelang multi-penjual yang diikuti oleh SSP-OD
, SSP-BA
, dan SSP-MIX
:
SSP-OD
, yang menjalankan lelang PA khusus perangkat, mengirimkan konfigurasi lelang komponen di perangkat ke penjual tingkat teratas.SSP-BA
, yang menjalankan lelang B&A, mengirimkan permintaan lelang terpadu ke Layanan Iklan Penjualnya dan menjalankan lelang kontekstual dan B&A-nya sendiri. Hasilnya dikirimkan ke penjual tingkat atas.SSP-MIX
, yang menjalankan lelang mode campuran, menjalankan lelang B&A terlebih dahulu di server, lalu mengirimkan hasil lelang B&A dan konfigurasi lelang di perangkat.
Penjual tingkat teratas mengumpulkan konfigurasi lelang komponen dari setiap penjual, dan membuat konfigurasi lelang yang terlihat mirip dengan berikut:
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',
}
]
})
Lelang multi-penjual yang diatur server
Dalam lelang multi-penjual yang diorkestrasi server, panggilan ke layanan iklan penjual komponen dilakukan dari layanan iklan penjual tingkat atas. Dalam penyiapan ini, penjual komponen tidak dapat menjalankan lelang di perangkat atau lelang mode campuran; semua penjual harus menggunakan B&A dan semua pembeli harus mengirimkan bid mereka menggunakan B&A.
Dalam diagram ini, SSP-TOP
menjalankan lelang multi-penjual yang diorkestrasi server yang diikuti oleh SSP-BA-X
dan SSP-BA-Y
.
Satu permintaan lelang terpadu yang berisi payload lelang kontekstual dan PA untuk semua peserta dikirim dari browser ke layanan iklan penjual tingkat teratas. Kemudian, SAS membuat panggilan GetComponentAuctionCiphertexts
ke SFE dengan payload. SFE akan mendekripsi payload, memisahkan payload menurut setiap penjual komponen, dan menampilkan payload yang dienkripsi ulang ke SAS penjual tingkat atas.
Definisi proto untuk permintaan dan respons GetComponentAuctionCiphertexts
adalah sebagai berikut:
// 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;
}
Dengan payload setiap penjual komponen, SAS penjual tingkat teratas memanggil SAS penjual komponen, dan setiap SAS komponen menjalankan lelang B&A komponennya. Kemudian, hasil lelang komponen ditampilkan ke SFE penjual tingkat teratas, dan bid lelang komponen diberi skor oleh Layanan Lelang penjual tingkat teratas. Bidding dengan skor keinginan tertinggi ditampilkan ke SFE, dan payload terenkripsi tersebut dikirim ke SAS untuk ditampilkan ke klien. Di browser, penjual tingkat teratas menyelesaikan lelang dengan memanggil navigator.runAdAuction()
dan menyediakan payload hasil lelang server terenkripsi.
Langkah berikutnya
Setelah membaca panduan ini, Anda dapat melakukan langkah-langkah berikut:
Pelajari lebih lanjut
- Untuk pemahaman yang lebih mendalam tentang cara kerja B&A untuk Protected Audience, lihat penjelasan berikut di GitHub:
- Bereksperimenlah dengan Protected Audience dengan B&A dengan mengikuti codelab Pengujian Lokal Menyeluruh.
- Untuk integrasi penjual, lihat Mengintegrasikan dengan B&A sebagai penjual.
Ada pertanyaan?
- Ajukan pertanyaan tentang Layanan Bidding dan Lelang dengan membuka masalah di repositori Layanan B&A.
- Ajukan pertanyaan tentang Privacy Sandbox secara umum dengan membuka masalah di repositori privacy-sandbox-dev-support.