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