ในฐานะผู้ซื้อโฆษณา (DSP และผู้ลงโฆษณา) คุณอาจสนใจเข้าร่วมการประมูลเพื่อแสดงโฆษณา Protected Audience บนเว็บไซต์ของผู้เผยแพร่โฆษณา เพื่อกำหนดเป้าหมายโฆษณาไปยังกลุ่มความสนใจที่คุณกำหนดไว้ในเว็บไซต์ของผู้ลงโฆษณา การเข้าร่วมการประมูล Protected Audience ทำให้คุณเข้าถึงลูกค้าที่ระบุในเว็บไซต์อื่นๆ ด้วยวิธีการรักษาความเป็นส่วนตัวได้
ในการประมูล Protected Audience คุณจะให้ตรรกะในการสร้างราคาเสนอ แล้วเบราว์เซอร์จะคำนวณราคาเสนอโดยใช้ตรรกะนั้น ซึ่งแตกต่างจากสถาปัตยกรรมการประมูลอื่นๆ ที่คุณส่งราคาเสนอโดยตรง ซึ่งตรงข้ามกับการระบุตรรกะ
คุณระบุตรรกะการสร้างราคาเสนอในฟังก์ชัน JavaScript ของ generateBid()
และไฟล์จะโฮสต์บนเซิร์ฟเวอร์ของคุณ เมื่อคุณเพิ่มผู้ใช้ในกลุ่มความสนใจ ตำแหน่งของไฟล์นี้จะส่งไปที่การกำหนดค่ากลุ่มความสนใจในฐานะ biddingLogicUrl
ในระหว่างการประมูล เบราว์เซอร์จะดึงข้อมูลตรรกะการเสนอราคาที่ระบุในช่อง biddingLogicUrl
และเรียกใช้ฟังก์ชัน generateBid()
สําหรับกลุ่มความสนใจแต่ละกลุ่มในสภาพแวดล้อมแยกต่างหากที่ปลอดภัย ซึ่งมีข้อจำกัดในการสื่อสารกับบริบทภายนอก เมื่อระบบเรียกใช้ generateBid()
เบราว์เซอร์จะส่งผ่านสัญญาณไปยังฟังก์ชันในรูปแบบอาร์กิวเมนต์ สัญญาณเหล่านี้มีข้อมูลหลากหลายจากแหล่งที่มาต่างๆ เช่น ข้อมูลจากบุคคลที่หนึ่งของผู้เผยแพร่โฆษณา ข้อมูลของผู้ขาย ข้อมูลแบบเรียลไทม์ และอื่นๆ คุณใช้สัญญาณเหล่านี้ในการคำนวณราคาเสนอได้ และระบบจะแสดงค่าจากการเรียก generateBid()
หลังจากส่งราคาเสนอแล้ว เบราว์เซอร์จะดำเนินการตรรกะการให้คะแนนของผู้ขายในราคาเสนอแต่ละครั้งเพื่อคำนวณคะแนนความพอใจของผู้ขาย
generateBid()
คำอธิบายต่อไปนี้จะอธิบายอาร์กิวเมนต์ของฟังก์ชัน generateBid()
และโครงสร้างของราคาเสนอที่แสดงผลจากฟังก์ชัน
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)
};
}
อาร์กิวเมนต์
generateBid()
รับอาร์กิวเมนต์ต่อไปนี้
อาร์กิวเมนต์ | บทบาท |
---|---|
|
ออบเจ็กต์ที่ผู้ซื้อโฆษณาส่งให้ กลุ่มความสนใจอาจได้รับการอัปเดตด้วย dailyUpdateUrl |
|
พร็อพเพอร์ตี้ของอาร์กิวเมนต์ auction config ซึ่งผู้ขายส่งไปยัง navigator.runAdAuction() ข้อมูลนี้ให้ข้อมูลเกี่ยวกับบริบทของหน้าเว็บ (เช่น ขนาดโฆษณาและรหัสผู้เผยแพร่โฆษณา) ประเภทการประมูล (ราคาอันดับ 1 หรือราคาอันดับ 2) และข้อมูลเมตาอื่นๆ |
|
พร็อพเพอร์ตี้ของอาร์กิวเมนต์การกำหนดค่าการประมูลที่ผู้ขายส่ง ซึ่งสามารถให้สัญญาณบริบทเกี่ยวกับหน้าเว็บจากเซิร์ฟเวอร์ของผู้ซื้อ หากผู้ขายเป็น SSP ซึ่งทำการเรียกการเสนอราคาแบบเรียลไทม์ไปยังเซิร์ฟเวอร์ของผู้ซื้อ และทำการตอบกลับไป หรือในกรณีที่หน้าของผู้เผยแพร่โฆษณาติดต่อกับเซิร์ฟเวอร์ของผู้ซื้อโดยตรง ในกรณีนี้ ผู้ซื้ออาจต้องการตรวจสอบลายเซ็นที่เข้ารหัสของสัญญาณเหล่านั้นภายใน generateBid() เพื่อป้องกันการปลอมแปลง |
|
ออบเจ็กต์ที่มีคีย์เป็น trustedBiddingSignalsKeys สำหรับกลุ่มความสนใจ และมีค่าที่ส่งคืนในคำขอ trustedBiddingSignals |
|
ออบเจ็กต์ที่สร้างขึ้นโดยเบราว์เซอร์ ซึ่งอาจรวมถึงข้อมูลเกี่ยวกับบริบทของหน้าเว็บ (เช่น hostname ของหน้าปัจจุบัน ซึ่งผู้ขายอาจปลอมแปลงขึ้น) และข้อมูลสำหรับกลุ่มความสนใจนั้นเอง (เช่น บันทึกว่ากลุ่มชนะการประมูลก่อนหน้านี้เมื่อใด เพื่ออนุญาตการกำหนดความถี่สูงสุดในอุปกรณ์) |
|
สัญญาณที่มีการรับประกันว่ามาจากผู้ขายที่เฉพาะเจาะจง ซึ่งต่างจาก auctionSignals และ sellerSignals ที่มาจากผู้เข้าร่วมทุกคนที่ปรากฏอยู่ในบริบทของการดำเนินการ runAdAuction |
สัญญาณของเบราว์เซอร์
ออบเจ็กต์ browserSignals
มีพร็อพเพอร์ตี้ต่อไปนี้
{
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
}
พร็อพเพอร์ตี้ | คำอธิบาย |
---|---|
|
ชื่อโฮสต์ที่ใช้โทร runAdAuction() |
|
ผู้ขายที่ส่งการเสนอราคาไปให้ ในการประมูลส่วนประกอบ ค่านี้จะเป็นผู้ขายส่วนประกอบ |
|
ผู้ขายระดับบนสุดในการประมูลคอมโพเนนต์และเข้าร่วมการประมูลคอมโพเนนต์เท่านั้น |
|
พร็อพเพอร์ตี้ requestedSize แนะนําขนาดเฟรมสําหรับการประมูล ผู้ขายจะกำหนดขนาดที่ขอในการกำหนดค่าการประมูล และค่านี้จะพร้อมใช้สำหรับผู้เสนอราคาใน generateBid() ผู้เสนอราคาภายในการประมูลอาจเลือกขนาดเนื้อหาที่แตกต่างกันสำหรับโฆษณา และขนาดผลลัพธ์ดังกล่าวจะได้รับการปรับขนาดเพื่อให้พอดีกับขนาดคอนเทนเนอร์ขององค์ประกอบ |
|
ช่อง joinCount คือจำนวนครั้งที่อุปกรณ์นี้เข้าร่วมกลุ่มความสนใจนี้ในช่วง 30 วันที่ผ่านมาขณะที่ระบบจัดเก็บกลุ่มความสนใจดังกล่าวอย่างต่อเนื่อง (กล่าวคือ ไม่มีช่องว่างในพื้นที่เก็บข้อมูลของกลุ่มความสนใจในอุปกรณ์เนื่องจากการเป็นสมาชิกหรือการเป็นสมาชิกหมดอายุ) |
|
ช่อง recency คือระยะเวลา (เป็นนาที) นับจากที่อุปกรณ์นี้เข้าร่วมกลุ่มความสนใจนี้จนถึงปัจจุบัน |
|
จำนวนครั้งที่กลุ่มความสนใจส่งราคาเสนอ |
|
ช่อง prevWinMs ประกอบด้วยโฆษณาที่ชนะของกลุ่มความสนใจ และเวลานับตั้งแต่ที่ชนะก่อนหน้าในหน่วยมิลลิวินาที โปรดทราบว่าออบเจ็กต์โฆษณาที่นี่มีเฉพาะช่อง renderURL และข้อมูลเมตา |
|
ออบเจ็กต์ WebAssembly.Module ตามbiddingWasmHelperURL ของกลุ่มความสนใจ |
|
ค่าเวอร์ชันข้อมูลจากการตอบกลับบริการคีย์/ค่าของผู้ซื้อ |
|
จำนวนคอมโพเนนต์โฆษณาสูงสุดที่ generateBid() อาจแสดงผลได้ |
คำนวณราคาเสนอ
ในการคำนวณมูลค่าราคาเสนอ โค้ดใน generateBid()
จะใช้พร็อพเพอร์ตี้ของพารามิเตอร์ของฟังก์ชันได้
เช่น
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
ส่งคืนราคาเสนอ
generateBid()
แสดงผลออบเจ็กต์ที่มีพร็อพเพอร์ตี้ต่อไปนี้
พร็อพเพอร์ตี้ | บทบาท |
---|---|
ad |
ข้อมูลเมตาที่กำหนดเองเกี่ยวกับโฆษณา เช่น ข้อมูลที่ผู้ขายคาดว่าจะเรียนรู้เกี่ยวกับราคาเสนอหรือครีเอทีฟโฆษณานี้ ผู้ขายใช้ข้อมูลนี้ในตรรกะการประมูลและการตัดสินใจของตน |
adCost |
ค่าตัวเลขที่ใช้เพื่อส่งการรายงานการคลิกของผู้ลงโฆษณาหรือต้นทุน Conversion จาก generateBid ไปยัง reportWin ความแม่นยำของจำนวนนี้จะจำกัดอยู่ที่ตั๊กแตนตำข้าวและเลขชี้กำลัง 8 บิต ที่มีการปัดเศษแบบโครงสร้าง |
adComponents |
รายการคอมโพเนนต์ (ไม่บังคับ) สูงสุด 20 รายการสำหรับโฆษณาที่ประกอบด้วยหลายชิ้น ซึ่งนำมาจากพร็อพเพอร์ตี้ adComponents ของอาร์กิวเมนต์กลุ่มความสนใจที่ส่งไปยัง navigator.joinAdInterestGroup() |
allowComponentAuction |
ค่าบูลีนที่ระบุว่าราคาเสนอนี้สามารถใช้ในการประมูลส่วนประกอบได้หรือไม่ ค่าเริ่มต้นเป็น "false" หากไม่ได้ระบุไว้ |
bid |
ราคาเสนอที่เป็นตัวเลขที่จะเข้าสู่การประมูล ผู้ขายต้องอยู่ในตำแหน่งที่จะเปรียบเทียบราคาเสนอจากผู้ซื้อรายต่างๆ ดังนั้นราคาเสนอจะต้องอยู่ในหน่วยที่ผู้ขายเลือก (เช่น "USD ต่อพัน) หากราคาเสนอเป็น 0 หรือติดลบ กลุ่มความสนใจนี้จะไม่เข้าร่วมการประมูลของผู้ขายเลย ด้วยกลไกนี้ ผู้ซื้อสามารถใช้กฎของผู้ลงโฆษณาใดๆ ก็ได้ว่าจะให้โฆษณาของตนแสดงที่ใดหรือไม่ปรากฏ |
bidCurrency |
สกุลเงินของราคาเสนอซึ่งใช้สำหรับการตรวจสอบสกุลเงิน |
render |
พจนานุกรมที่อธิบายครีเอทีฟโฆษณาที่ควรจะแสดงผลหากราคาเสนอนี้ชนะการประมูล ซึ่งรวมถึงเนื้อหาต่อไปนี้
|
|
จำนวนเต็ม 0-4095 (12 บิต) ที่ส่งไปยัง reportWin() พร้อม Noise ตามที่อธิบายไว้ในรูปแบบ Noise และที่เก็บข้อมูล ค่าที่ไม่ถูกต้อง เช่น ค่าลบ ค่าอนันต์ และค่า NaN จะถูกละเว้นและไม่ส่งผ่าน ระบบจะส่งเฉพาะ 12 บิตต่ำสุดเท่านั้น ผู้ซื้อสามารถใช้สัญญาณต่างๆ ที่มีอยู่ในฟังก์ชัน generateBid() รวมถึงข้อมูลจากข้อมูลผู้ซื้อบุคคลที่หนึ่งที่บันทึกไว้ในเวลาที่สร้างกลุ่มความสนใจในเดือนuserBiddingSignals เพื่อหาค่าบางส่วนที่ส่งไปยังฟังก์ชันการรายงานที่ชนะของผู้ซื้อเพื่อเปิดใช้การฝึกโมเดล ML |