ในฐานะผู้ซื้อโฆษณา (DSP และผู้ลงโฆษณา) คุณอาจสนใจเข้าร่วมการประมูลเพื่อแสดงโฆษณาที่ใช้ Protected Audience API ในเว็บไซต์ของผู้เผยแพร่โฆษณาเพื่อกำหนดเป้าหมายโฆษณาไปยังกลุ่มความสนใจที่คุณกำหนดไว้ในเว็บไซต์ของผู้ลงโฆษณา การเข้าร่วมการประมูลที่ใช้ Protected Audience API จะช่วยให้คุณเข้าถึงลูกค้าที่ระบุตัวตนในเว็บไซต์อื่นๆ ได้ด้วยวิธีที่รักษาความเป็นส่วนตัว
ในการประมูลที่ใช้ Protected Audience API คุณจะต้องระบุตรรกะในการสร้างราคาเสนอ และเบราว์เซอร์จะคำนวณราคาเสนอโดยใช้ตรรกะนั้น ซึ่งไม่เหมือนกับสถาปัตยกรรมการประมูลอื่นๆ ที่คุณส่งราคาเสนอโดยตรง ซึ่งตรงข้ามกับการระบุตรรกะ
คุณระบุตรรกะการสร้างการเสนอราคาในฟังก์ชัน 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 |
|
พร็อพเพอร์ตี้ของอาร์กิวเมนต์การกำหนดค่าการประมูลที่ผู้ขายส่งไปให้ navigator.runAdAuction() ซึ่งให้ข้อมูลเกี่ยวกับบริบทของหน้าเว็บ (เช่น ขนาดโฆษณาและรหัสผู้เผยแพร่โฆษณา) ประเภทการประมูล (ราคาอันดับ 1 หรือราคาอันดับ 2) และข้อมูลเมตาอื่นๆ |
|
พร็อพเพอร์ตี้ของอาร์กิวเมนต์ auction config ที่ผู้ขายส่ง ซึ่งจะให้สัญญาณบริบทจากเซิร์ฟเวอร์ของผู้ซื้อเกี่ยวกับหน้าเว็บ หากผู้ขายเป็น 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 ความแม่นยำของตัวเลขนี้จำกัดอยู่ที่ Mantissa แบบ 8 บิตและเลขชี้กำลัง 8 บิต โดยมีการปัดเศษแบบใดก็ตาม |
adComponents |
รายการที่ไม่บังคับของคอมโพเนนต์สูงสุด 20 รายการสำหรับโฆษณาที่ประกอบด้วยหลายชิ้น ซึ่งนำมาจากพร็อพเพอร์ตี้ adComponents ของอาร์กิวเมนต์กลุ่มความสนใจที่ส่งไปยัง navigator.joinAdInterestGroup() |
allowComponentAuction |
ค่าบูลีนที่ระบุว่าจะใช้ราคาเสนอนี้ในการประมูลคอมโพเนนต์ได้หรือไม่ มีค่าเริ่มต้นเป็น "false" หากไม่ได้ระบุไว้ |
bid |
ตัวเลขราคาเสนอที่จะเข้าสู่การประมูล ผู้ขายต้องอยู่ในฐานะที่จะสามารถเปรียบเทียบราคาเสนอจากผู้ซื้อต่างๆ ได้ ดังนั้นราคาเสนอจะต้องอยู่ในหน่วยที่ผู้ขายเลือก (เช่น "USD ต่อพันครั้ง") หากราคาเสนอเป็น 0 หรือติดลบ กลุ่มความสนใจนี้จะไม่เข้าร่วมการประมูลของผู้ขายเลย ด้วยกลไกนี้ ผู้ซื้อสามารถใช้กฎของผู้ลงโฆษณาสำหรับตำแหน่งที่โฆษณาอาจปรากฏหรือไม่แสดงก็ได้ |
bidCurrency |
สกุลเงินสำหรับราคาเสนอ ซึ่งจะใช้สำหรับcurrency-checking |
render |
พจนานุกรมที่อธิบายครีเอทีฟโฆษณาที่ควรแสดงผลเมื่อราคาเสนอนี้ชนะการประมูล ซึ่งรวมถึง
|
|
จำนวนเต็ม 0-4095 (12 บิต) ที่ส่งไปยัง reportWin() พร้อมการแปลงข้อมูล ตามที่อธิบายไว้ในรูปแบบเสียงรบกวนและการเก็บข้อมูล ระบบจะไม่สนใจค่าที่ไม่ถูกต้อง เช่น ค่าลบ อนันต์ และค่า NaN และจะไม่ส่งผ่านค่าที่ไม่ถูกต้อง ระบบจะส่งผ่านเฉพาะ 12 บิตต่ำสุดเท่านั้น ผู้ซื้อสามารถใช้สัญญาณที่มีอยู่ในฟังก์ชัน generateBid() รวมถึงข้อมูลจากข้อมูลผู้ซื้อบุคคลที่หนึ่งซึ่งบันทึกไว้ในเวลาที่สร้างกลุ่มความสนใจในuserBiddingSignals เพื่อรับค่าบางส่วนที่ส่งไปยังฟังก์ชันการรายงานที่ชนะของผู้ซื้อเพื่อเปิดใช้การฝึกโมเดล ML |