Sebagai pembeli iklan (DSP dan pengiklan), Anda mungkin tertarik untuk berpartisipasi dalam lelang iklan Protected Audience di situs penayang untuk menargetkan iklan ke grup minat yang Anda tentukan di situs pengiklan. Dengan berpartisipasi dalam lelang Protected Audience, Anda dapat menjangkau pelanggan yang telah diidentifikasi di situs lain dengan cara yang menjaga privasi.
Dalam lelang Protected Audience, Anda memberikan logika untuk membuat bid, dan browser menghitung bid menggunakan logika tersebut. Hal ini berbeda dengan arsitektur lelang lainnya yang memungkinkan Anda mengajukan bid secara langsung, bukan memberikan logika.
Anda menyediakan logika pembuatan bid dalam fungsi JavaScript generateBid()
dan file dihosting di server Anda. Saat Anda menambahkan pengguna ke grup minat, lokasi file ini akan diteruskan ke konfigurasi grup minat sebagai biddingLogicUrl
.
Selama lelang, browser mengambil logika bidding Anda yang ditentukan di kolom biddingLogicUrl
, dan menjalankan fungsi generateBid()
untuk setiap grup minat di lingkungan terisolasi yang aman yang terbatas dalam komunikasinya dengan konteks luar. Saat generateBid()
dieksekusi, browser akan meneruskan sinyal ke fungsi sebagai argumen. Sinyal ini berisi berbagai informasi dari berbagai sumber, seperti data pihak pertama penayang, data penjual, data real-time, dan lainnya. Anda dapat menggunakan sinyal ini untuk menghitung bid, dan nilai ditampilkan dari panggilan generateBid()
. Setelah bid dikirimkan, browser akan menjalankan logika penskoran penjual pada setiap bid untuk menghitung skor keinginan penjual.
generateBid()
Berikut ini menjelaskan argumen fungsi generateBid()
dan struktur bid yang ditampilkan dari fungsi:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
Argumen
generateBid()
menggunakan argumen berikut:
Argumen | Peran |
---|---|
|
Objek yang diteruskan oleh pembeli iklan. Grup minat dapat diperbarui dengan dailyUpdateUrl . |
|
Properti argumen konfigurasi lelang yang diteruskan ke navigator.runAdAuction() oleh penjual. Hal ini memberikan informasi tentang konteks halaman (seperti ukuran iklan dan ID penayang), jenis lelang (harga pertama atau harga kedua), dan metadata lainnya. |
|
Properti argumen konfigurasi lelang yang diteruskan oleh penjual. Hal ini dapat memberikan sinyal kontekstual dari server pembeli tentang halaman, jika penjual adalah SSP yang melakukan panggilan bidding real-time ke server pembeli dan mengirimkan respons kembali, atau jika halaman penayang menghubungi server pembeli secara langsung. Jika ya, pembeli mungkin ingin memeriksa tanda tangan kriptografi sinyal tersebut di dalam generateBid() sebagai perlindungan terhadap pemalsuan. |
|
Objek yang kuncinya adalah trustedBiddingSignalsKeys untuk grup minat, dan nilainya ditampilkan dalam permintaan trustedBiddingSignals . |
|
Objek yang dibuat oleh browser, yang mungkin mencakup informasi tentang konteks halaman (seperti hostname halaman saat ini, yang dapat dipalsukan oleh penjual) dan data untuk grup minat itu sendiri (seperti catatan saat grup sebelumnya memenangkan lelang, untuk memungkinkan pembatasan frekuensi di perangkat). |
|
Sinyal yang berasal dari penjual tertentu, tidak seperti auctionSignals dan sellerSignals yang dapat berasal dari peserta mana pun yang ada dalam konteks tempat runAdAuction dieksekusi. |
Sinyal browser
Objek browserSignals
memiliki properti berikut:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
Properti | Deskripsi |
---|---|
|
Nama host tempat panggilan runAdAuction() dilakukan. |
|
Penjual yang menerima bid. Dalam lelang komponen, nilai ini adalah penjual komponen. |
|
Penjual tingkat teratas dalam lelang komponen, dan hanya ada dalam lelang komponen. |
|
Properti requestedSize merekomendasikan ukuran frame untuk lelang. Penjual menetapkan ukuran yang diminta dalam konfigurasi lelang, dan nilai tersebut tersedia untuk bidder di generateBid() . Bidder di dalam lelang dapat memilih ukuran konten yang berbeda untuk iklan, dan ukuran yang dihasilkan akan diskalakan secara visual agar sesuai dengan ukuran penampung elemen. |
|
Kolom joinCount adalah jumlah berapa kali perangkat ini bergabung dengan grup minat ini dalam 30 hari terakhir saat grup minat telah disimpan secara berkelanjutan (yaitu, tidak ada jeda dalam penyimpanan grup minat di perangkat karena keluar atau masa berlaku keanggotaan berakhir). |
|
Kolom recency adalah durasi waktu (dalam menit) sejak perangkat ini bergabung ke grup minat ini hingga sekarang |
|
Jumlah bid yang diajukan oleh grup minat tersebut. |
|
Kolom prevWinMs berisi iklan pemenang grup minat, dan waktu sejak kemenangan sebelumnya dalam milidetik. Perhatikan bahwa objek iklan di sini hanya berisi kolom renderURL dan metadata. |
|
objek WebAssembly.Module berdasarkan biddingWasmHelperURL grup minat. |
|
Nilai Data-Version dari respons layanan Key/Value pembeli. |
|
Jumlah maksimum komponen iklan yang dapat ditampilkan generateBid() |
Menghitung bid
Untuk menghitung nilai bid, kode di generateBid()
dapat menggunakan properti parameter fungsi.
Contoh:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
Mengembalikan bid
generateBid()
menampilkan objek dengan properti berikut:
Properti | Peran |
---|---|
ad |
Metadata arbitrer tentang iklan, seperti informasi yang diharapkan penjual untuk dipelajari tentang bid atau materi iklan ini. Penjual menggunakan informasi ini dalam logika keputusan dan lelangnya. |
adCost |
Nilai numerik yang digunakan untuk meneruskan biaya klik atau konversi pengiklan pelaporan dari generateBid ke reportWin. Presisi angka ini dibatasi hingga mantisa 8-bit dan eksponen 8-bit, dengan pembulatan apa pun dilakukan secara stokastik. |
adComponents |
Daftar opsional hingga 20 komponen untuk iklan yang terdiri dari beberapa bagian, yang diambil dari properti adComponents dari argumen grup minat yang diteruskan ke navigator.joinAdInterestGroup() . |
allowComponentAuction |
Nilai boolean yang menunjukkan apakah bid ini dapat digunakan dalam lelang komponen. Defaultnya adalah "false" jika tidak ditentukan. |
bid |
Bid numerik yang akan memasuki lelang. Penjual harus dapat membandingkan bid dari berbagai pembeli, sehingga bid harus dalam unit yang dipilih penjual (seperti"USD per seribu"). Jika bid nol atau negatif, grup minat ini tidak akan berpartisipasi dalam lelang penjual sama sekali. Dengan mekanisme ini, pembeli dapat menerapkan aturan pengiklan untuk menentukan tempat iklan mereka dapat atau tidak dapat ditampilkan. |
bidCurrency |
Mata uang untuk bid, digunakan untuk pemeriksaan mata uang. |
render |
Kamus yang menjelaskan materi iklan yang harus dirender jika bid ini memenangkan lelang. Hal ini mencakup:
|
|
Bilangan bulat 0-4095 (12-bit) yang diteruskan ke reportWin() , dengan pemberian derau, seperti yang dijelaskan dalam skema pemberian derau dan pengelompokan. Nilai yang tidak valid, seperti nilai negatif, tak terhingga, dan NaN , akan diabaikan dan tidak diteruskan. Hanya 12 bit terendah yang akan diteruskan. Pembeli dapat menggunakan sinyal yang tersedia dalam fungsi generateBid() , termasuk data dari data pembeli pihak pertama yang diambil pada saat pembuatan Grup Minat di userBiddingSignals , untuk mendapatkan beberapa nilai yang diteruskan ke fungsi pelaporan kemenangan pembeli guna mengaktifkan pelatihan model ML. |