ดูวิธีกําหนดค่าการประมูลที่ใช้ Protected Audience API
การประมูลในอุปกรณ์ที่ผู้ขายเรียกใช้
การประมูลที่ใช้ Protected Audience API ในอุปกรณ์จะทํางานในเว็บไซต์ที่ขายพื้นที่โฆษณา และเรา เรียกบุคคลที่จัดการประมูลว่าผู้ขาย หลายฝ่ายอาจทำหน้าที่เป็นผู้ขาย โดยเว็บไซต์อาจจัดการประมูลโฆษณาของตนเอง หรืออาจรวมสคริปต์ของบุคคลที่สามเพื่อจัดการประมูลให้ หรืออาจใช้ SSP ที่รวมการจัดการประมูลในอุปกรณ์เข้ากับกิจกรรมการประมูลโฆษณาฝั่งเซิร์ฟเวอร์อื่นๆ ผู้ขายมีหน้าที่พื้นฐาน 3 อย่างในการประมูลโฆษณาในอุปกรณ์ ดังนี้
- ผู้ขายจะตัดสินใจ (ก) ว่าผู้ซื้อรายใดเข้าร่วมได้ และ (ข) ว่าราคาเสนอใดจากกลุ่มความสนใจของผู้ซื้อเหล่านั้นมีสิทธิ์เข้าร่วมการประมูล ซึ่งช่วยให้ผู้ขายบังคับใช้กฎของเว็บไซต์สำหรับโฆษณาที่ได้รับอนุญาตให้ปรากฏในหน้าเว็บได้
- ผู้ขายมีหน้าที่รับผิดชอบตรรกะทางธุรกิจของการประมูล ซึ่งเป็นโค้ด JavaScript ที่พิจารณาราคาและข้อมูลเมตาของแต่ละราคาเสนอ และคำนวณคะแนน "ความน่าสนใจ" ราคาเสนอที่มีคะแนนความน่าดึงดูดใจสูงสุดจะเป็นผู้ชนะการประมูล
- ผู้ขายจะรายงานผลลัพธ์ของการประมูล ซึ่งรวมถึงข้อมูลเกี่ยวกับ ราคาที่ตกลงซื้อขายและค่าตอบแทนอื่นๆ ผู้ซื้อที่ชนะและแพ้ยังได้รับสิทธิ์ ในการสร้างรายงานของตนเองด้วย
เอกสารนี้จะอธิบายวิธีกําหนดค่าและเริ่มการประมูลบนอุปกรณ์
กำหนดค่าการประมูลโฆษณาที่ใช้ Protected Audience API
หากต้องการจัดการประมูลเพื่อแสดงโฆษณา Protected Audience API ขั้นตอนแรกคือการ
กำหนดค่าการประมูล โดยทำได้ด้วยการสร้างออบเจ็กต์ auctionConfig
ตัวอย่างการกำหนดค่ามีดังนี้
const auctionConfig = {
seller: 'https://seller.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://buyer-1.example': {...},
'https://buyer-2.example': {...},
...
},
perBuyerTimeouts: {
'https://buyer-1.example': 50,
'https://buyer-2.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://component-seller.example',
'decisionLogicUrl': ...,
...
},
...
],
resolveToConfig: [true|false],
};
ที่พัก AuctionConfig แห่ง
พร็อพเพอร์ตี้ที่จำเป็น
พร็อพเพอร์ตี้ที่จำเป็นสำหรับ auctionConfigs มีเพียง seller, decisionLogicUrl และ interestGroupBuyers
| พร็อพเพอร์ตี้ | ตัวอย่าง | บทบาท |
|---|---|---|
| seller | https://seller.example | แหล่งที่มาของผู้ขาย |
| decisionLogicUrl | https://seller.example/decision-logic.js | URL สำหรับ Worklet ตรรกะการตัดสินใจของ JavaScript ในการประมูล ฟิลด์นี้ต้องมีแหล่งที่มาเดียวกันกับฟิลด์ผู้ขาย |
| interestGroupBuyers | [https://buyer-1.example, https://buyer-2.example, ...] |
ต้นทางของเจ้าของกลุ่มความสนใจทั้งหมดที่ขอให้เสนอราคาในการประมูล |
พร็อพเพอร์ตี้ที่ไม่บังคับ
พร็อพเพอร์ตี้ที่เหลือสำหรับ auctionConfigs เป็นพร็อพเพอร์ตี้ที่ไม่บังคับ
| พร็อพเพอร์ตี้ | ตัวอย่าง | บทบาท |
|---|---|---|
| trustedScoringSignalsUrl | https://seller.example/scoring-signals | URL ของเซิร์ฟเวอร์คีย์/ค่าของผู้ขาย ระบบจะค้นหาข้อมูลนี้ในระหว่างกระบวนการให้คะแนนโฆษณาโดยใช้ URL การแสดงผลของครีเอทีฟโฆษณาเป็นคีย์ ฟิลด์นี้ต้องมีแหล่งที่มาเดียวกันกับฟิลด์ผู้ขาย |
| auctionSignals | {"category":"news"} | ออบเจ็กต์ที่แปลงเป็น JSON ได้ซึ่งแสดงสัญญาณที่พร้อมใช้งานสำหรับผู้ซื้อและผู้ขายทั้งหมดที่เข้าร่วมการประมูล |
| sellerSignals | {...} | ออบเจ็กต์ที่แปลงเป็น JSON ได้ซึ่งแสดงสัญญาณที่ใช้ได้เฉพาะผู้ขาย |
| perBuyerSignals | {https://dsp.example: {...}, https://another-buyer.example: {...}, ... } |
สัญญาณที่พร้อมใช้งานสำหรับผู้ซื้อรายหนึ่งๆ สัญญาณอาจมาจากผู้ขายและผู้ซื้อเอง |
| perBuyerTimeouts | {https://www.example-dsp.com: 50, https://www.another-buyer.com: 200, *: 150, ...}, |
ระยะเวลาการทำงานสูงสุดของสคริปต์ generateBid() ของผู้ซื้อรายหนึ่งๆ ในหน่วยมิลลิวินาที ระบบจะใช้สัญลักษณ์ไวลด์การ์ดกับผู้ซื้อทุกรายที่ไม่ได้กำหนดการหมดเวลาที่เฉพาะเจาะจง |
| sellerTimeout | 100 | รันไทม์สูงสุดเป็นมิลลิวินาทีของสคริปต์ scoreAd() ของผู้ขาย |
| componentAuctions | [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] | การกำหนดค่าเพิ่มเติมสำหรับการประมูลคอมโพเนนต์ |
| resolveToConfig | จริง|เท็จ | บูลีนที่กําหนดให้ Promise ที่ได้จาก runAdAuction() แก้ไขเป็น FencedFrameConfig หากเป็นจริง (สําหรับใช้ใน <fencedframe>) หรือเป็น URL urn:uuid ที่ทึบแสงหากเป็นเท็จ (สําหรับใช้ใน <iframe>) ค่าเริ่มต้นคือเท็จ |
ระบุสัญญาณแบบอะซิงโครนัส
คุณอาจระบุค่าของสัญญาณบางอย่าง (ค่าที่กำหนดค่าโดยฟิลด์ auctionSignals,
sellerSignals, perBuyerSignals และ perBuyerTimeouts) เป็น Promise แทนที่จะเป็นค่าที่เฉพาะเจาะจงก็ได้ ซึ่งจะอนุญาตให้
บางส่วนของการประมูล เช่น การโหลดสคริปต์และสัญญาณที่เชื่อถือได้ และ
การเปิดตัวกระบวนการ Worklet ที่แยกจากกัน ทับซ้อนกับการคำนวณ (หรือการดึงข้อมูลจากเครือข่าย)
ของค่าเหล่านั้น สคริปต์ Worklet จะเห็นเฉพาะค่าที่แก้ไขแล้ว หากมีการปฏิเสธ Promise ดังกล่าว การประมูลจะถูกยกเลิก เว้นแต่จะล้มเหลวไปแล้วหรือถูกยกเลิกด้วยวิธีอื่นๆ
กำหนดค่าการประมูลที่มีผู้ขายหลายราย
ในบางกรณี ผู้ขายหลายรายอาจต้องการเข้าร่วมการประมูล โดยผู้ชนะจากการประมูลแยกกันจะได้รับการส่งต่อให้เข้าร่วมการประมูลอื่นที่ผู้ขายรายอื่นเป็นผู้ดำเนินการ การประมูลแยกต่างหากที่ส่งต่อขึ้นไปนี้เรียกว่าการประมูลคอมโพเนนต์
componentAuctions object สามารถมีการกำหนดค่าการประมูลเพิ่มเติมสำหรับการประมูลคอมโพเนนต์ของผู้ขายแต่ละราย เพื่ออำนวยความสะดวกในการประมูลคอมโพเนนต์เหล่านี้
ราคาเสนอที่ชนะของการประมูลคอมโพเนนต์แต่ละรายการจะส่งไปยังการประมูล "ระดับบนสุด"
ซึ่งจะเป็นการกำหนดผลลัพธ์สุดท้ายของการประมูล auctionConfig ของการประมูลคอมโพเนนต์อาจไม่มี
componentAuctions ของตนเอง เมื่อ componentAuctions ไม่ว่างเปล่า
interestGroupBuyers ต้องว่างเปล่า กล่าวคือ สำหรับการประมูล Protected
Audience ใดๆ จะมีผู้ขายรายเดียวและไม่มีการประมูลคอมโพเนนต์ หรือ
ไม่เช่นนั้น ราคาเสนอทั้งหมดจะมาจากการประมูลคอมโพเนนต์ และการประมูลระดับบนสุดจะเลือกได้เฉพาะผู้ชนะจากการประมูลคอมโพเนนต์
จัดการประมูล
ผู้ขายส่งคำขอไปยังเบราว์เซอร์ของผู้ใช้เพื่อเริ่มการประมูลโฆษณาโดย
เรียกใช้ navigator.runAdAuction()
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction() การเรียกจะแสดงผล Promise ที่เปลี่ยนเป็นโฆษณา โค้ดในหน้าผู้เผยแพร่โฆษณาไม่สามารถตรวจสอบโฆษณาที่ชนะหรือดูเนื้อหาของโฆษณาจากผลลัพธ์ของ runAdAuction() ได้ หากตั้งค่าแฟล็ก
resolveToConfigเป็น true ใน AuctionConfig ระบบจะแสดงผลออบเจ็กต์
FencedFrameConfig ซึ่งแสดงผลได้เฉพาะใน Fenced Frame หากตั้งค่าแฟล็กเป็น false ระบบจะแสดงผล URN แบบทึบแสงซึ่งแสดงใน iframe ได้ runAdAuction อาจแสดงค่าเป็น null
ซึ่งบ่งบอกว่าไม่มีการเลือกโฆษณา ในกรณีนี้ ผู้ขายอาจเลือกแสดงโฆษณาที่กำหนดเป้าหมายตามบริบท