Arsitektur

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 GetComponentAuctionCiphertexts dari SAS.

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 sisi klien mengirimkan permintaan lelang terpadu ke SSP. SAS mengirimkan permintaan ke SFE, dan SFE mengirimkan permintaan ke BFE untuk bid

(Diagram berukuran penuh)

  1. 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.
  2. 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.
  3. 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.
  4. Setelah lelang kontekstual selesai, SAS akan mengirimkan permintaan SelectAd ke Layanan SFE.
    • Sinyal pembeli dan bid pemenang lelang kontekstual ditambahkan ke payload permintaan SelectAd.
  5. Layanan SFE SSP memanggil Layanan BFE DSP dengan permintaan GetBids.
  6. BFE DSP memanggil Layanan Bidding dengan permintaan GenerateBids.
  7. 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.
  8. 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 dan DSP-B hanya berpartisipasi dalam lelang di perangkat
  • DSP-X dan DSP-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 perangkat
  • SSP-BA menjalankan lelang khusus B&A
  • SSP-MIX menjalankan lelang mode campuran
  • SSP-TOP menjalankan lelang multi-penjual:
    • SSP-OD/BA/MIX berpartisipasi sebagai penjual komponen lelang multi-penjual SSP-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.

Arsitektur penjual tunggal dengan satu SFE yang berkomunikasi dengan beberapa BFE untuk menerima bid

(Diagram berukuran penuh)

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:

Arsitektur penjual mode campuran tempat pembeli dapat mengirimkan bid dari perangkat atau B&A

(Diagram berukuran penuh)

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.

Diagram yang menjelaskan cara bid dan sinyal lelang kontekstual serta hasil SelectAd di-streaming kembali ke kode JavaScript browser

(Diagram berukuran penuh)

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:

  1. Lelang yang diatur perangkat dengan panggilan ke setiap layanan iklan penjual komponen berasal dari browser
  2. 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.

Diagram yang menjelaskan cara beberapa penjual yang menjalankan konfigurasi lelang yang berbeda dapat mengirimkan hasil lelang mereka ke penjual tingkat teratas

(Diagram berukuran penuh)

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.

SSP tingkat teratas mengirimkan permintaan lelang terpadu ke Layanan Iklan Penjualnya. Layanan Iklan Penjual memanggil SFE untuk menjalankan operasi GetComponentAuctionCipherTexts. Ciphertext yang ditampilkan kemudian dikirim ke setiap layanan iklan penjual komponen yang melakukan lelang B&A-nya sendiri

(Diagram berukuran penuh)

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

Ada pertanyaan?