บทความนี้มีไว้สำหรับผู้ใด
โพสต์นี้เป็นข้อมูลอ้างอิงทางเทคนิคเกี่ยวกับเวอร์ชันปัจจุบันของ Protected Audience API เวอร์ชันทดลอง
Protected Audience API เป็นภาพรวมที่เข้าใจง่ายของข้อเสนอนี้ และยังมีคําอธิบายอภิธานศัพท์ด้วย
การสาธิตกลุ่มเป้าหมายที่มีการป้องกันแสดงขั้นตอนการติดตั้งใช้งาน FLEDGE ขั้นพื้นฐาน
วิดีโอสาธิตกลุ่มเป้าหมายที่ได้รับการคุ้มครองอธิบายวิธีการทำงานของโค้ดเดโม และแสดงวิธีใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome สำหรับการแก้ไขข้อบกพร่องของกลุ่มเป้าหมายที่ได้รับการคุ้มครอง
Protected Audience คืออะไร
Protected Audience API เป็นข้อเสนอของ Privacy Sandbox เพื่อแสดงกรณีการใช้งานรีมาร์เก็ตติ้งและกลุ่มเป้าหมายที่กำหนดเอง ซึ่งออกแบบมาเพื่อไม่ให้บุคคลที่สามใช้ติดตามพฤติกรรมการท่องเว็บของผู้ใช้ในเว็บไซต์ต่างๆ API นี้ช่วยให้เบราว์เซอร์ทำการประมูลในอุปกรณ์เพื่อเลือกโฆษณาที่เกี่ยวข้องสําหรับเว็บไซต์ที่ผู้ใช้เคยเข้าชม
กลุ่มเป้าหมายที่ได้รับการคุ้มครองเป็นการทดสอบครั้งแรกที่จะนำมาใช้ใน Chromium ภายในกลุ่มข้อเสนอ TURTLEDOVE
แผนภาพด้านล่างแสดงภาพรวมของวงจร FLEDGE

ฉันจะลองใช้กลุ่มเป้าหมายที่ได้รับการปกป้องได้อย่างไร
การสาธิต Protected Audience
คุณสามารถดูการแนะนำการใช้งานกลุ่มเป้าหมายที่มีการป้องกันขั้นพื้นฐานในเว็บไซต์ของผู้ลงโฆษณาและผู้เผยแพร่โฆษณาได้ที่ protected-audience-demo.web.app
วิดีโอสาธิตอธิบายวิธีการทำงานของโค้ดเดโม และแสดงวิธีใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome สำหรับการแก้ไขข้อบกพร่องของ Protected Audience
เข้าร่วมช่วงทดลองใช้ Protected Audience จากต้นทาง
การทดลองใช้จากต้นทางที่เกี่ยวข้องกับความเกี่ยวข้องและการวัดผลของ Privacy Sandbox พร้อมให้ใช้งานใน Chrome Beta 101.0.4951.26 ขึ้นไปบนเดสก์ท็อปสําหรับ Protected Audience, Topics และ Attribution Reporting API
หากต้องการเข้าร่วม ให้ลงทะเบียนรับโทเค็นช่วงทดลองใช้จากต้นทาง
เมื่อลงทะเบียนเข้าร่วมช่วงทดลองใช้เรียบร้อยแล้ว คุณจะลองใช้ Protected Audience JavaScript API ในหน้าเว็บที่ให้โทเค็นช่วงทดลองใช้ที่ถูกต้องได้ เช่น เพื่อขอให้เบราว์เซอร์เข้าร่วมกลุ่มความสนใจอย่างน้อย 1 กลุ่ม แล้วทำการประมูลโฆษณาเพื่อเลือกและแสดงโฆษณา
การสาธิต Protected Audience แสดงตัวอย่างพื้นฐานของการติดตั้งใช้งาน Protected Audience แบบครบวงจร
ระบุโทเค็นช่วงทดลองใช้สำหรับทุกหน้าที่ต้องการเรียกใช้โค้ด Protected Audience API
ใช้เป็นเมตาแท็กใน <head>
<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
ใช้เป็นส่วนหัว HTTP
Origin-Trial: TOKEN_GOES_HERE
การให้โทเค็นแบบเป็นโปรแกรม
const otMeta = document.createElement('meta'); otMeta.httpEquiv = 'origin-trial'; otMeta.content = 'TOKEN_GOES_HERE'; document.head.append(otMeta);
IFrame ที่เรียกใช้โค้ด Protected Audience เช่น navigator.joinAdInterestGroup()
ที่เรียกใช้โดยเจ้าของกลุ่มความสนใจ จะต้องระบุโทเค็นที่ตรงกับต้นทาง
รายละเอียดช่วงทดลองใช้จากต้นทางของ Protected Audience ครั้งแรกที่เสนอจะแสดงรายละเอียดเพิ่มเติมเกี่ยวกับเป้าหมายของช่วงทดลองใช้ครั้งแรกและอธิบายฟีเจอร์ที่รองรับ
ทดสอบ API นี้
คุณสามารถทดสอบกลุ่มเป้าหมายที่ได้รับการคุ้มครองสําหรับผู้ใช้รายเดียวใน Chrome เบต้า 101.0.4951.26 ขึ้นไปบนเดสก์ท็อปได้โดยทำดังนี้
- โดยการเปิดใช้ Ad Privacy API ทั้งหมดในส่วน
chrome://settings/adPrivacy
- โดยการติดธงจากบรรทัดคำสั่ง
แสดงผลโฆษณาใน iframe หรือเฟรมที่มีการกำหนดเขต
โฆษณาอาจแสดงผลเป็น <iframe>
หรือ <fencedframe>
โดยขึ้นอยู่กับการตั้งค่า Flag
วิธีใช้ <fencedframe>
เพื่อแสดงโฆษณา
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames
วิธีใช้ <iframe>
เพื่อแสดงโฆษณา
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames
ใส่ Flag BiddingAndScoringDebugReportingAPI
เพื่อเปิดใช้วิธีการรายงานการสูญเสีย/ชนะชั่วคราวสำหรับการแก้ไขข้อบกพร่อง
เรียกใช้ Chromium ด้วย Flagอธิบายวิธีตั้งค่า Flag เมื่อเรียกใช้ Chrome และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium จากบรรทัดคำสั่ง ดูรายการ Flag ของกลุ่มเป้าหมายที่ได้รับการคุ้มครองทั้งหมดได้จากChromium Code Search
Chrome เวอร์ชันล่าสุดรองรับฟีเจอร์ใดบ้าง
เรากำลังทําให้ Protected Audience พร้อมใช้งานหลัง Flag ฟีเจอร์ใน Chromium เป็นการทดสอบครั้งแรกเพื่อทดสอบฟีเจอร์ต่อไปนี้ของข้อเสนอ Protected Audience
- กลุ่มความสนใจ: เบราว์เซอร์จัดเก็บไว้พร้อมข้อมูลเมตาที่เกี่ยวข้องเพื่อกําหนดค่าการเสนอราคาและการแสดงโฆษณา
- การเสนอราคาในอุปกรณ์โดยผู้ซื้อ (DSP หรือผู้ลงโฆษณา): อิงตามกลุ่มความสนใจและสัญญาณที่บันทึกไว้จากผู้ขาย
- การเลือกโฆษณาในอุปกรณ์โดยผู้ขาย (SSP หรือผู้เผยแพร่โฆษณา): อิงตามราคาเสนอในการประมูลและข้อมูลเมตาจากผู้ซื้อ
- การแสดงผลโฆษณาในเฟรมที่มีการป้องกันชั่วคราว: มีการอนุญาตให้เข้าถึงเครือข่ายและการบันทึกการแสดงผลโฆษณา
คำอธิบาย API มีรายละเอียดเพิ่มเติมเกี่ยวกับการรองรับและข้อจำกัดของฟีเจอร์
สิทธิ์ของกลุ่มความสนใจ
ค่าเริ่มต้นในการใช้งาน Protected Audience ในปัจจุบันคือการอนุญาตให้เรียกใช้ joinAdInterestGroup()
จากทุกที่ในหน้าเว็บ แม้แต่จาก iframe แบบข้ามโดเมน ในอนาคต เมื่อเจ้าของเว็บไซต์มีเวลาปรับนโยบายสิทธิ์ของ iframe ข้ามโดเมนแล้ว แผนของเราคือการไม่อนุญาตการเรียกใช้จาก iframe ข้ามโดเมน ตามที่คำอธิบายอธิบายไว้
บริการคีย์/ค่า
ในการประมูลโฆษณากลุ่มเป้าหมายที่ได้รับการคุ้มครอง เบราว์เซอร์จะเข้าถึงบริการคีย์/ค่าซึ่งแสดงผลคู่คีย์-ค่าแบบง่ายเพื่อมอบข้อมูลแก่ผู้ซื้อโฆษณา เช่น งบประมาณแคมเปญที่เหลือ โปรโปซาลกลุ่มเป้าหมายที่ได้รับการคุ้มครองกําหนดว่าเซิร์ฟเวอร์นี้ "ไม่บันทึกในระดับเหตุการณ์และไม่มีผลกระทบอื่นๆ ตามคําขอเหล่านี้"
โค้ดบริการคีย์/ค่าของกลุ่มเป้าหมายที่ได้รับการคุ้มครองพร้อมใช้งานแล้วในที่เก็บ GitHub ของ Privacy Sandbox นักพัฒนาซอฟต์แวร์ Chrome และ Android สามารถใช้บริการนี้ได้ โปรดดูการอัปเดตสถานะในบล็อกโพสต์ประกาศ ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการคีย์/ค่าของ Protected Audience จากคำอธิบาย API และคำอธิบายรูปแบบความน่าเชื่อถือ
สำหรับการทดสอบครั้งแรกจะใช้รูปแบบ "นำเซิร์ฟเวอร์มาใช้เอง" ในระยะยาว เทคโนโลยีโฆษณาจะต้องใช้บริการคีย์/ค่าของ Protected Audience แบบโอเพนซอร์สที่ทำงานในสภาพแวดล้อมการเรียกใช้ที่เชื่อถือได้เพื่อดึงข้อมูลแบบเรียลไทม์
เราคาดว่าจะไม่กำหนดให้ต้องใช้บริการคีย์/ค่าหรือ TEE แบบโอเพนซอร์สจนกว่าจะถึงเวลาเลิกใช้งานคุกกี้ของบุคคลที่สาม เพื่อให้ระบบนิเวศมีเวลาทดสอบอย่างเพียงพอ เราจะแจ้งให้นักพัฒนาแอปทราบล่วงหน้าอย่างเพียงพอเพื่อให้เริ่มการทดสอบและการนำไปใช้ก่อนการเปลี่ยนแปลงนี้
ตรวจหาการรองรับฟีเจอร์
ก่อนใช้ API ให้ตรวจสอบว่าเบราว์เซอร์รองรับ API นั้นและ API พร้อมใช้งานในเอกสารหรือไม่ โดยทำดังนี้
'joinAdInterestGroup' in navigator &&
document.featurePolicy.allowsFeature('join-ad-interest-group') &&
document.featurePolicy.allowsFeature('run-ad-auction') ?
console.log('navigator.joinAdInterestGroup() is supported on this page') :
console.log('navigator.joinAdInterestGroup() is not supported on this page');
ฉันจะเลือกไม่ใช้ Protected Audience ได้อย่างไร
คุณสามารถบล็อกการเข้าถึง Protected Audience API ในฐานะเจ้าของเว็บไซต์หรือผู้ใช้รายบุคคล
เว็บไซต์จะควบคุมการเข้าถึงได้อย่างไร
ในที่สุด Protected Audience จะกําหนดให้เว็บไซต์ต้องตั้งค่านโยบายสิทธิ์เพื่ออนุญาตให้ใช้ฟังก์ชัน Protected Audience ได้ วิธีนี้ช่วยให้มั่นใจได้ว่าบุคคลที่สามที่ไม่ทราบข้อมูลจะไม่สามารถใช้งาน API ได้ อย่างไรก็ตาม ระบบจะยกเว้นข้อกำหนดนี้โดยค่าเริ่มต้นเพื่อให้การทดสอบในช่วงช่วงทดลองใช้จากต้นทางครั้งแรกเป็นไปอย่างสะดวก เว็บไซต์ที่ต้องการปิดใช้ฟังก์ชัน Protected Audience อย่างชัดแจ้งในระหว่างระยะเวลาการทดสอบสามารถใช้นโยบายสิทธิ์ที่เกี่ยวข้องเพื่อบล็อกการเข้าถึงได้
นโยบายสิทธิ์ของกลุ่มเป้าหมายที่มีการป้องกันมี 2 รายการที่ตั้งค่าแยกกันได้ ดังนี้
join-ad-interest-group
เปิด/ปิดใช้ฟังก์ชันเพื่อเพิ่มเบราว์เซอร์ลงในกลุ่มความสนใจrun-ad-auction
เปิด/ปิดใช้ฟังก์ชันการทำงานเพื่อเรียกใช้การประมูลในอุปกรณ์
คุณสามารถปิดการเข้าถึง Protected Audience API ทั้งหมดในบริบทของบุคคลที่หนึ่งได้โดยระบุนโยบายสิทธิ์ต่อไปนี้ในส่วนหัวการตอบกลับ HTTP
Permissions-Policy: join-ad-interest-group=(), run-ad-auction=()
คุณปิดใช้การใช้ API ใน iframe ได้โดยเพิ่มแอตทริบิวต์ allow
ต่อไปนี้ลงในองค์ประกอบ iframe
<iframe src="https://example.com" allow="join-ad-interest-group 'none'; run-ad-auction 'none'"></iframe>
โปรดดูรายละเอียดเพิ่มเติมในส่วนนโยบายสิทธิ์ช่วงทดลองใช้จากต้นทางของ Protected Audience ครั้งแรกที่เสนอ
ผู้ใช้เลือกไม่ใช้
ผู้ใช้สามารถบล็อกการเข้าถึง Protected Audience API และฟีเจอร์อื่นๆ ของ Privacy Sandbox โดยใช้กลไกต่อไปนี้
- ปิดใช้ช่วงทดลองใช้ Privacy Sandbox ในการตั้งค่า Chrome: การตั้งค่า >
ความปลอดภัยและความเป็นส่วนตัว > Privacy Sandbox ซึ่งเข้าถึงได้ที่
chrome://settings/adPrivacy
- ปิดใช้คุกกี้ของบุคคลที่สามในการตั้งค่า Chrome: การตั้งค่า > ความปลอดภัยและความเป็นส่วนตัว
- ตั้งค่าคุกกี้และข้อมูลเว็บไซต์อื่นๆเป็น "บล็อกคุกกี้ของบุคคลที่สาม" หรือ "บล็อกคุกกี้ทั้งหมด" จาก
chrome://settings/cookies
- ใช้โหมดไม่ระบุตัวตน
คําอธิบาย Protected Audience ให้รายละเอียดเพิ่มเติมเกี่ยวกับองค์ประกอบการออกแบบ API และอธิบายวิธีที่ API พยายามบรรลุเป้าหมายด้านความเป็นส่วนตัว
แก้ไขข้อบกพร่องของชิ้นงาน Protected Audience
ตั้งแต่ Chrome Canary 98.0.4718.0 เป็นต้นไป คุณสามารถแก้ไขข้อบกพร่องของชิ้นงานกลุ่มเป้าหมายที่ได้รับการคุ้มครองภายในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ได้
ขั้นตอนแรกคือตั้งจุดหยุดผ่านหมวดหมู่ใหม่ในแผงจุดหยุดของโปรแกรมรับฟังเหตุการณ์ในแผงแหล่งที่มา

เมื่อทริกเกอร์จุดหยุดพักชั่วคราว ระบบจะหยุดการดําเนินการชั่วคราวก่อนคำสั่งแรกในระดับบนสุดของสคริปต์เวิร์กเลต คุณสามารถใช้จุดพักหรือคําสั่งขั้นตอนปกติเพื่อไปยังฟังก์ชันการเสนอราคา/การให้คะแนน/การรายงานได้
สคริปต์ของเวิร์กเลตแบบเรียลไทม์จะปรากฏในแผงชุดข้อความด้วย

เนื่องจากบางเวิร์กเลตอาจทำงานพร้อมกัน หลายเธรดจึงอาจอยู่ในสถานะ "หยุดชั่วคราว" คุณสามารถใช้รายการเธรดเพื่อสลับไปมาระหว่างเธรดต่างๆ รวมถึงดำเนินการต่อหรือตรวจสอบเธรดอย่างละเอียดยิ่งขึ้นตามความเหมาะสม
ดูเหตุการณ์ของ Protected Audience
จากแผงแอปพลิเคชันในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome คุณสามารถดูกลุ่มความสนใจของกลุ่มเป้าหมายที่มีการป้องกันและเหตุการณ์การประมูลได้
หากคุณไปที่เว็บไซต์การช็อปปิ้งเดโมของกลุ่มเป้าหมายที่มีการป้องกันในเบราว์เซอร์ที่เปิดใช้กลุ่มเป้าหมายที่มีการป้องกัน DevTools จะแสดงข้อมูลเกี่ยวกับเหตุการณ์ join

ตอนนี้ หากคุณไปที่เว็บไซต์ผู้เผยแพร่โฆษณาเดโมของ Protected Audience ในเบราว์เซอร์ที่เปิดใช้ Protected Audience แล้ว DevTools จะแสดงข้อมูลเกี่ยวกับเหตุการณ์ bid
และ win

Protected Audience API ทํางานอย่างไร
ในตัวอย่างนี้ ผู้ใช้เรียกดูเว็บไซต์ของผู้ผลิตจักรยานคัสตอม จากนั้นเข้าชมเว็บไซต์ข่าวในภายหลัง และเห็นโฆษณาจักรยานใหม่จากผู้ผลิตจักรยาน
1. ผู้ใช้เข้าชมเว็บไซต์ของผู้ลงโฆษณา

สมมติว่าผู้ใช้เข้าชมเว็บไซต์ของผู้ผลิตจักรยานคัสตอม (ผู้ลงโฆษณาในตัวอย่างนี้) และใช้เวลาอยู่ในหน้าผลิตภัณฑ์จักรยานเหล็กทำมือ ซึ่งเปิดโอกาสให้ผู้ผลิตจักรยานใช้รีมาร์เก็ตติ้ง
2. ระบบจะขอให้เบราว์เซอร์ของผู้ใช้เพิ่มกลุ่มความสนใจ

ส่วนคำอธิบาย: เบราว์เซอร์บันทึกกลุ่มความสนใจ
แพลตฟอร์มฝั่งซื้อ (DSP) ของผู้ลงโฆษณา (หรือผู้ลงโฆษณาเอง) จะเรียกใช้ navigator.joinAdInterestGroup()
เพื่อขอให้เบราว์เซอร์เพิ่มกลุ่มความสนใจลงในรายการกลุ่มที่เบราว์เซอร์เป็นสมาชิก ในตัวอย่างนี้ กลุ่มมีชื่อว่า custom-bikes
และเจ้าของคือ dsp.example
เจ้าของกลุ่มความสนใจ (ในกรณีนี้คือ DSP) จะเป็นผู้ซื้อในการประมูลโฆษณาที่อธิบายไว้ในขั้นตอนที่ 4
การเป็นสมาชิกกลุ่มความสนใจจะจัดเก็บไว้ในอุปกรณ์ของผู้ใช้โดยเบราว์เซอร์ และจะไม่แชร์กับผู้ให้บริการเบราว์เซอร์หรือบุคคลอื่น
joinAdInterestGroup()
ต้องได้รับสิทธิ์จาก
- เว็บไซต์ที่เข้าชม
- เจ้าของกลุ่มความสนใจ
ตัวอย่างเช่น malicious.example
ต้องไม่สามารถเรียกใช้ joinAdInterestGroup()
ที่มี dsp.example
เป็นเจ้าของได้หากไม่ได้รับอนุญาตจาก dsp.example
สิทธิ์จากเว็บไซต์ที่เข้าชม
ต้นทางเดียวกัน: โดยค่าเริ่มต้น ระบบจะให้สิทธิ์โดยปริยายสำหรับการเรียกใช้ joinAdInterestGroup()
จากต้นทางเดียวกับเว็บไซต์ที่เข้าชม กล่าวคือจากต้นทางเดียวกับเฟรมระดับบนสุดของหน้าปัจจุบัน เว็บไซต์สามารถใช้คําสั่ง join-ad-interest-group
ในส่วนหัวนโยบายสิทธิ์ของ Protected Audience เพื่อปิดใช้การเรียก joinAdInterestGroup()
ข้ามต้นทาง: การเรียกใช้ joinAdInterestGroup()
จากต้นทางที่แตกต่างจากหน้าปัจจุบันจะสำเร็จก็ต่อเมื่อเว็บไซต์ที่เข้าชมได้ตั้งค่านโยบายสิทธิ์ที่อนุญาตให้เรียกใช้ joinAdInterestGroup()
จาก iframe ข้ามต้นทาง
สิทธิ์จากเจ้าของกลุ่มความสนใจ
ระบบจะมอบสิทธิ์ของเจ้าของกลุ่มความสนใจโดยนัยด้วยการเรียกใช้ joinAdInterestGroup()
จาก iframe ที่มีต้นทางเดียวกับเจ้าของกลุ่มความสนใจ เช่น dsp.example
iframe สามารถเรียก joinAdInterestGroup()
สำหรับกลุ่มความสนใจที่เป็นของ dsp.example
ข้อเสนอคือ joinAdInterestGroup()
สามารถทํางานในหน้าเว็บหรือ iframe ในโดเมนของเจ้าของ หรือมอบสิทธิ์ให้โดเมนอื่นๆ ได้โดยใช้รายการที่ URL ของ .well-known
การใช้ navigator.joinAdInterestGroup()
ตัวอย่างการใช้ API
const interestGroup = {
owner: 'https://dsp.example',
name: 'custom-bikes',
biddingLogicUrl: ...,
biddingWasmHelperUrl: ...,
dailyUpdateUrl: ...,
trustedBiddingSignalsUrl: ...,
trustedBiddingSignalsKeys: ['key1', 'key2'],
userBiddingSignals: {...},
ads: [bikeAd1, bikeAd2, bikeAd3],
adComponents: [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2],
};
navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);
ออบเจ็กต์ interestGroup
ที่ส่งไปยังฟังก์ชันต้องมีขนาดไม่เกิน 50 KiB ไม่เช่นนั้นการเรียกใช้จะไม่สําเร็จ พารามิเตอร์ที่ 2 ระบุระยะเวลาของกลุ่มความสนใจ โดยไม่เกิน 30 วัน การเรียกใช้ที่ต่อเนื่องจะเขียนทับค่าที่เก็บไว้ก่อนหน้านี้
X-Allow-FLEDGE: true
พร็อพเพอร์ตี้ของกลุ่มความสนใจ
พร็อพเพอร์ตี้ | ต้องระบุ | ตัวอย่าง | บทบาท |
---|---|---|---|
owner |
ต้องระบุ | 'https://dsp.example' |
ต้นทางของเจ้าของกลุ่มความสนใจ |
name |
ต้องระบุ | 'custom-bikes' |
ชื่อกลุ่มความสนใจ |
biddingLogicUrl ** |
ไม่บังคับ* | 'https://dsp.example/bid/custom-bikes/bid.js' |
URL สําหรับ JavaScript การเสนอราคาที่ทํางานในเวิร์กเลต |
biddingWasmHelperUrl ** |
ไม่บังคับ* | 'https://dsp.example/bid/custom-bikes/bid.wasm' |
URL สำหรับโค้ด WebAssembly ที่มาจาก biddingLogicUrl |
dailyUpdateUrl ** |
ไม่บังคับ | 'https://dsp.example/bid/custom-bikes/update' |
URL ที่แสดงผล JSON เพื่ออัปเดตแอตทริบิวต์กลุ่มความสนใจ (ดูอัปเดตกลุ่มความสนใจ) |
trustedBiddingSignalsUrl ** |
ไม่บังคับ | 'https://dsp.example/trusted/bidding-signals' |
URL ฐานสําหรับคําขอคีย์-ค่าไปยังเซิร์ฟเวอร์ที่เชื่อถือของผู้เสนอราคา |
trustedBiddingSignalsKeys |
ไม่บังคับ | ['key1', 'key2' ...] |
คีย์สําหรับคําขอไปยังเซิร์ฟเวอร์ที่เชื่อถือของคีย์-ค่า |
userBiddingSignals |
ไม่บังคับ | {...} |
ข้อมูลเมตาเพิ่มเติมที่เจ้าของสามารถใช้ในระหว่างการเสนอราคา |
ads |
ไม่บังคับ* | [bikeAd1, bikeAd2, bikeAd3] |
โฆษณาที่อาจแสดงผลสําหรับกลุ่มความสนใจนี้ |
adComponents |
ไม่บังคับ | [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2] |
องค์ประกอบสําหรับโฆษณาที่ประกอบด้วยหลายส่วน |
* พร็อพเพอร์ตี้ทั้งหมดเป็นค่าที่ไม่บังคับ ยกเว้น owner
และ name
พร็อพเพอร์ตี้ biddingLogicUrl
และ ads
นั้นไม่บังคับ แต่จำเป็นต้องระบุเพื่อเข้าร่วมการประมูล อาจมีกรณีการใช้งานในการสร้างกลุ่มความสนใจที่ไม่มีพร็อพเพอร์ตี้เหล่านี้ เช่น เจ้าของกลุ่มความสนใจอาจต้องการเพิ่มเบราว์เซอร์ลงในกลุ่มความสนใจสําหรับแคมเปญที่ยังไม่ได้ทํางาน หรือสําหรับการใช้งานอื่นๆ ในอนาคต หรืออาจใช้งบประมาณการโฆษณาหมดชั่วคราว
** URL biddingLogicUrl
, biddingWasmHelperUrl
, dailyUpdateUrl
และ trustedBiddingSignalsUrl
ต้องมีต้นทางเดียวกับเจ้าของ URL ads
และ adComponents
ไม่มีข้อจำกัดดังกล่าว
อัปเดตแอตทริบิวต์กลุ่มความสนใจ
dailyUpdateUrl
ระบุเว็บเซิร์ฟเวอร์ที่แสดงผล JSON ซึ่งกําหนดพร็อพเพอร์ตี้กลุ่มความสนใจ ซึ่งสอดคล้องกับออบเจ็กต์กลุ่มความสนใจที่ส่งไปยัง navigator.joinAdInterestGroup()
ซึ่งจะเป็นกลไกให้เจ้าของกลุ่มอัปเดตแอตทริบิวต์ของกลุ่มความสนใจเป็นระยะ ในการใช้งานปัจจุบัน คุณจะเปลี่ยนแอตทริบิวต์ต่อไปนี้ได้
biddingLogicUrl
biddingWasmHelperUrl
trustedBiddingSignalsUrl
trustedBiddingSignalsKeys
ads
priority
ระบบจะไม่เขียนทับช่องที่ไม่ได้ระบุใน JSON แต่จะอัปเดตเฉพาะช่องที่ระบุใน JSON เท่านั้น ส่วนการเรียกใช้ navigator.joinAdInterestGroup()
จะเขียนทับกลุ่มความสนใจที่มีอยู่
การอัปเดตจะดำเนินการอย่างดีที่สุดและอาจดำเนินการไม่สำเร็จภายใต้เงื่อนไขต่อไปนี้
- หมดเวลาของคําขอเครือข่าย (ปัจจุบันคือ 30 วินาที)
- เครือข่ายล้มเหลวอื่นๆ
- แยกวิเคราะห์ JSON ไม่สำเร็จ
นอกจากนี้ ระบบยังอาจยกเลิกการอัปเดตหากมีการอัปเดตติดต่อกันเป็นเวลานานเกินไป แต่จะไม่จำกัดอัตราการอัปเดตที่ยกเลิก (เหลืออยู่) การอัปเดตมีขีดจำกัดอัตราสูงสุดที่ 1 ครั้งต่อวัน ระบบจะลองอัปเดตอีกครั้งหลังจากผ่านไป 1 ชั่วโมงหากอัปเดตไม่สำเร็จเนื่องจากข้อผิดพลาดของเครือข่าย และระบบจะลองอัปเดตอีกครั้งทันทีเมื่อเชื่อมต่ออินเทอร์เน็ตอีกครั้งหากอัปเดตไม่สำเร็จเนื่องจากอินเทอร์เน็ตตัดการเชื่อมต่อ
การอัปเดตด้วยตนเอง
คุณสามารถเรียกให้อัปเดตกลุ่มความสนใจซึ่งเป็นเจ้าของโดยต้นทางของเฟรมปัจจุบันได้ด้วยตัวเองผ่าน
navigator.updateAdInterestGroups()
การจำกัดอัตราการเรียกใช้จะป้องกันไม่ให้การอัปเดตเกิดขึ้นบ่อยเกินไป โดยระบบจะไม่ดำเนินการใดๆ กับการเรียกใช้ navigator.updateAdInterestGroups()
ซ้ำจนกว่าจะผ่านระยะเวลาการจำกัดอัตราการเรียกใช้ (ปัจจุบันคือ 1 วัน) ระบบจะรีเซ็ตขีดจํากัดอัตราหากเรียกใช้ navigator.joinAdInterestGroup()
อีกครั้งสําหรับกลุ่มความสนใจ owner
และ name
เดียวกัน
การอัปเดตอัตโนมัติ
ระบบจะอัปเดตกลุ่มความสนใจทั้งหมดที่โหลดสำหรับการประมูลโดยอัตโนมัติหลังจากการประมูลเสร็จสมบูรณ์ โดยขึ้นอยู่กับขีดจํากัดอัตราเดียวกันกับการอัปเดตด้วยตนเอง สําหรับเจ้าของแต่ละรายที่มีกลุ่มความสนใจอย่างน้อย 1 กลุ่มที่เข้าร่วมการประมูล ระบบจะทําราวกับว่ามีการเรียก navigator.updateAdInterestGroups()
จาก iframe ที่มีต้นทางตรงกับเจ้าของรายนั้น
ระบุโฆษณาสําหรับกลุ่มความสนใจ
ออบเจ็กต์ ads
และ adComponents
มี URL ของครีเอทีฟโฆษณาและข้อมูลเมตาที่กำหนดเอง (ไม่บังคับ) ที่ใช้ได้ในเวลาเสนอราคา เช่น
{
renderUrl: 'https://cdn.example/.../bikeAd1.html',
metadata: bikeAd1metadata // optional
}
ผู้ซื้อเสนอราคาได้อย่างไร
สคริปต์ที่ biddingLogicUrl
ซึ่งเจ้าของกลุ่มความสนใจระบุต้องมีฟังก์ชัน generateBid()
เมื่อผู้ขายพื้นที่โฆษณาเรียก navigator.runAdAuction()
ระบบจะเรียกใช้ฟังก์ชัน generatedBid()
1 ครั้งสําหรับกลุ่มความสนใจแต่ละกลุ่มที่เบราว์เซอร์เป็นสมาชิกอยู่ หากเจ้าของกลุ่มความสนใจได้รับเชิญให้เสนอราคา กล่าวคือ generateBid()
จะเรียกใช้ 1 ครั้งสําหรับโฆษณาแต่ละรายการที่ตรงตามเกณฑ์ ผู้ขายระบุพร็อพเพอร์ตี้ decisionLogicUrl
ในพารามิเตอร์การกําหนดค่าการประมูลที่ส่งไปยัง navigator.runAdAuction()
โค้ดใน URL นี้ต้องมีฟังก์ชัน scoreAd()
ซึ่งจะเรียกใช้สำหรับผู้เสนอราคาแต่ละรายในการประมูล เพื่อประเมินราคาเสนอแต่ละรายการที่ generateBid()
แสดงผล
สคริปต์ที่ biddingLogicUrl
ที่ผู้ซื้อพื้นที่โฆษณาระบุต้องมีฟังก์ชัน generateBid()
ระบบจะเรียกใช้ฟังก์ชันนี้ 1 ครั้งสําหรับโฆษณาที่มีโอกาสแสดงแต่ละรายการ runAdAuction()
จะตรวจสอบโฆษณาแต่ละรายการแยกกัน รวมถึงราคาเสนอและข้อมูลเมตาที่เกี่ยวข้อง จากนั้นจะกําหนดคะแนนความน่าพึงพอใจแบบตัวเลขให้กับโฆษณา
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
...
return {
ad: adObject,
bid: bidValue,
render: renderUrl,
adComponents: [adComponentRenderUrl1, ...]
};
}
generateBid()
ใช้อาร์กิวเมนต์ต่อไปนี้
interestGroup
ออบเจ็กต์ที่ผู้ซื้อโฆษณาส่งไปยังjoinAdInterestGroup()
(กลุ่มความสนใจอาจอัปเดตได้ผ่านdailyUpdateUrl
)auctionSignals
พร็อพเพอร์ตี้ของอาร์กิวเมนต์ auction config ที่ผู้ขายพื้นที่โฆษณาส่งให้กับnavigator.runAdAuction()
ข้อมูลนี้ให้ข้อมูลเกี่ยวกับบริบทของหน้าเว็บ (เช่น ขนาดโฆษณาและรหัสผู้เผยแพร่โฆษณา) ประเภทการประมูล (ราคาอันดับ 1 หรืออันดับ 2) และข้อมูลเมตาอื่นๆperBuyerSignals
เช่นเดียวกับauctionSignals
ซึ่งเป็นพร็อพเพอร์ตี้ของการกำหนดค่าการประมูล ที่ส่งผ่านโดยผู้ขายไปยังnavigator.runAdAuction()
ซึ่งสามารถส่งสัญญาณตามบริบทจากเซิร์ฟเวอร์ของผู้ซื้อเกี่ยวกับหน้าเว็บได้ หากผู้ขายเป็น SSP ที่ใช้การเรียกใช้การเสนอราคาแบบเรียลไทม์กับเซิร์ฟเวอร์ของผู้ซื้อและส่งการตอบกลับกลับ หรือหากหน้าเว็บของผู้เผยแพร่โฆษณาติดต่อเซิร์ฟเวอร์ของผู้ซื้อโดยตรง หากเป็นเช่นนั้น ผู้ซื้ออาจต้องตรวจสอบลายเซ็นการเข้ารหัสของสัญญาณเหล่านั้นภายใน generateBid() เพื่อป้องกันการแทรกแซงtrustedBiddingSignals
ออบเจ็กต์ที่คีย์คือtrustedBiddingSignalsKeys
สําหรับกลุ่มความสนใจ และค่าที่แสดงในคําขอtrustedBiddingSignals
browserSignals
ออบเจ็กต์ที่สร้างโดยเบราว์เซอร์ ซึ่งอาจรวมถึงข้อมูลเกี่ยวกับบริบทของหน้า (เช่นhostname
ของหน้าปัจจุบัน ซึ่งผู้ขายอาจปลอมแปลงได้) และข้อมูลสำหรับกลุ่มความสนใจนั้นๆ (เช่น บันทึกเวลาที่กลุ่มชนะการประมูลก่อนหน้านี้ เพื่ออนุญาตให้มีการจำกัดความถี่ในอุปกรณ์)
ออบเจ็กต์ browserSignals
มีพร็อพเพอร์ตี้ต่อไปนี้
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
joinCount: 3,
bidCount: 17,
prevWins: [[time1,ad1],[time2,ad2],...],
wasmHelper: ... /* WebAssembly.Module object based on interest group's biddingWasmHelperUrl. */
dataVersion: 1, /* Data-Version value from the buyer's Key/Value service response(s). */
}
หากต้องการคำนวณค่า bid
โค้ดใน generateBid()
สามารถใช้พร็อพเพอร์ตี้ของพารามิเตอร์ของฟังก์ชันได้ เช่น
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
...
}
}
generateBid()
จะแสดงผลออบเจ็กต์ที่มีพร็อพเพอร์ตี้ 4 รายการ ได้แก่
ad
ข้อมูลเมตาที่ไม่เจาะจงเกี่ยวกับโฆษณา เช่น ข้อมูลที่ผู้ขายคาดหวังว่าจะได้ทราบเกี่ยวกับการเสนอราคาหรือครีเอทีฟโฆษณานี้ ผู้ขาย](/resources/glossary#ssp) ใช้ข้อมูลนี้ในการประมูลและตัดสินใจเกี่ยวกับครีเอทีฟโฆษณา ผู้ขายจะใช้ข้อมูลนี้ในการประมูลและตรรกะการตัดสินใจbid
ราคาเสนอที่เป็นตัวเลขที่จะเข้าร่วมการประมูล ผู้ขายต้องสามารถเปรียบเทียบราคาเสนอจากผู้ซื้อรายต่างๆ ได้ ดังนั้นราคาเสนอจึงต้องอยู่ในหน่วยที่ผู้ขายเลือก (เช่น "USD ต่อพัน") หากราคาเสนอเป็น 0 หรือติดลบ กลุ่มความสนใจนี้จะไม่เข้าร่วมการประมูลของผู้ขายเลย กลไกนี้ช่วยให้ผู้ซื้อใช้กฎของผู้ลงโฆษณาเพื่อกำหนดตําแหน่งที่โฆษณาอาจปรากฏหรือไม่ปรากฏได้render
URL หรือรายการ URL ที่จะใช้ในการแสดงผลครีเอทีฟโฆษณาหากราคาเสนอนี้ชนะการประมูล (ดูโฆษณาที่ประกอบด้วยหลายส่วนในคำอธิบาย API) ค่าต้องตรงกับrenderUrl
ของโฆษณาที่กําหนดไว้สําหรับกลุ่มความสนใจรายการใดรายการหนึ่งadComponents
รายการคอมโพเนนต์สูงสุด 20 รายการ (ไม่บังคับ) สำหรับโฆษณาที่ประกอบด้วยหลายส่วน ซึ่งนำมาจากพร็อพเพอร์ตี้adComponents
ของอาร์กิวเมนต์กลุ่มความสนใจที่ส่งไปยังnavigator.joinAdInterestGroup()
การขอให้เบราว์เซอร์ออกจากกลุ่มความสนใจ
เจ้าของกลุ่มความสนใจจะขอให้นำเบราว์เซอร์ออกจากกลุ่มความสนใจได้ กล่าวคือ ระบบจะขอให้เบราว์เซอร์นํากลุ่มความสนใจออกจากรายการกลุ่มที่ตนเป็นสมาชิก
navigator.leaveAdInterestGroup({
owner: 'https://dsp.example',
name: 'custom-bikes'
});
หากผู้ใช้กลับไปที่เว็บไซต์ซึ่งขอให้เบราว์เซอร์เพิ่มกลุ่มความสนใจ เจ้าของกลุ่มความสนใจจะเรียกใช้ฟังก์ชัน navigator.leaveAdInterestGroup()
เพื่อขอให้เบราว์เซอร์นํากลุ่มความสนใจออกได้
โค้ดของโฆษณายังเรียกใช้ฟังก์ชันนี้สําหรับกลุ่มความสนใจได้ด้วย
3. ผู้ใช้เข้าชมเว็บไซต์ที่ขายพื้นที่โฆษณา

ต่อมาผู้ใช้เข้าชมเว็บไซต์ที่ขายพื้นที่โฆษณา เช่น เว็บไซต์ข่าว เว็บไซต์มีพื้นที่โฆษณาซึ่งขายแบบเป็นโปรแกรมโดยใช้การเสนอราคาแบบเรียลไทม์
4. การประมูลเพื่อแสดงโฆษณาจะทํางานในเบราว์เซอร์

ส่วนคำอธิบาย: ผู้ขายเรียกใช้การประมูลในอุปกรณ์
การประมูลโฆษณามีแนวโน้มที่จะดำเนินการโดย SSP ของผู้เผยแพร่โฆษณา หรือผู้เผยแพร่โฆษณาเอง วัตถุประสงค์ของการประมูลคือเลือกโฆษณาที่เหมาะสมที่สุดสําหรับช่องโฆษณาเดียวที่พร้อมใช้งานในหน้าปัจจุบัน การประมูลจะพิจารณากลุ่มความสนใจที่เบราว์เซอร์เป็นสมาชิกอยู่ รวมถึงข้อมูลจากผู้ซื้อและผู้ขายพื้นที่โฆษณาจากบริการคีย์/ค่า
ผู้ขายพื้นที่โฆษณาส่งคําขอไปยังเบราว์เซอร์ของผู้ใช้เพื่อเริ่มการประมูลโฆษณาโดยเรียกใช้ navigator.runAdAuction()
เช่น
const auctionConfig = {
seller: 'https://ssp.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://dsp.example': {...},
'https://another-buyer.example': {...},
...
},
perBuyerTimeouts: {
'https://dsp.example': 50,
'https://another-buyer.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://some-other-ssp.example',
'decisionLogicUrl': ...,
...
},
...
]
};
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
runAdAuction()
จะแสดงผลลัพธ์เป็น URN (urn:uuid:<something>
) ที่แสดงถึงผลลัพธ์ของการประมูลโฆษณา เบราว์เซอร์จะถอดรหัสได้ก็ต่อเมื่อส่งไปยังเฟรมที่มีการป้องกันเพื่อการแสดงผลเท่านั้น หน้าผู้เผยแพร่โฆษณาจะตรวจสอบโฆษณาที่ชนะไม่ได้
สคริปต์ decisionLogicUrl
จะพิจารณาโฆษณาแต่ละรายการ รวมถึงราคาเสนอและข้อมูลเมตาที่เกี่ยวข้องทีละรายการ จากนั้นจึงกําหนดคะแนนความพึงปรารถนาเป็นตัวเลข
ที่พัก auctionConfig
แห่ง
พร็อพเพอร์ตี้ | ต้องระบุ | ตัวอย่าง | บทบาท |
---|---|---|---|
seller |
ต้องระบุ | 'https://ssp.example' |
ต้นทางของผู้ขาย |
decisionLogicUrl |
ต้องระบุ | 'https://ssp.example/auction-decision-logic.js' |
URL สําหรับ JavaScript ของ Worklet การประมูล |
trustedScoringSignalsUrl |
ไม่บังคับ | 'https://ssp.example/scoring-signals' |
URL ของเซิร์ฟเวอร์ที่เชื่อถือของผู้ขาย |
interestGroupBuyers* |
ต้องระบุ | ['https://dsp.example', 'https://buyer2.example', ...] |
ต้นทางของเจ้าของกลุ่มความสนใจทั้งหมดที่ขอให้เสนอราคาในการประมูล |
auctionSignals |
ไม่บังคับ | {...} |
ข้อมูลผู้ขายเกี่ยวกับบริบทของหน้าเว็บ ประเภทการประมูล ฯลฯ |
sellerSignals |
ไม่บังคับ | {...} |
ข้อมูลตามการตั้งค่าของผู้เผยแพร่โฆษณา การสร้างคําขอโฆษณาตามบริบท ฯลฯ |
sellerTimeout |
ไม่บังคับ | 100 |
รันไทม์สูงสุด (มิลลิวินาที) ของสคริปต์ scoreAd() ของผู้ขาย |
perBuyerSignals |
ไม่บังคับ | {'https://dsp.example': {...}, |
สัญญาณตามบริบทเกี่ยวกับหน้าเว็บสําหรับผู้ซื้อแต่ละรายจากเซิร์ฟเวอร์ของผู้ซื้อ |
perBuyerTimeouts |
ไม่บังคับ | 50 |
รันไทม์สูงสุด (ms) ของสคริปต์ generateBid() ของผู้ซื้อรายใดรายหนึ่ง |
componentAuctions |
ไม่บังคับ | [{'seller': 'https://www.some-other-ssp.com', |
การกําหนดค่าเพิ่มเติมสําหรับการประมูลคอมโพเนนต์ |
* ผู้ขายอาจระบุ interestGroupBuyers: '*'
เพื่ออนุญาตให้กลุ่มความสนใจทั้งหมดเสนอราคาได้
จากนั้นระบบจะยอมรับหรือปฏิเสธโฆษณาตามเกณฑ์อื่นๆ นอกเหนือจากการรวมเจ้าของกลุ่มความสนใจ
ตัวอย่างเช่น ผู้ขายอาจตรวจสอบครีเอทีฟโฆษณาเพื่อยืนยันว่าเป็นไปตามนโยบาย
** additionalBids
ไม่รองรับการใช้งาน Protected Audience ในปัจจุบัน อ่านข้อมูลเพิ่มเติมได้ในส่วนผู้เข้าร่วมการประมูลในคำอธิบายกลุ่มเป้าหมายที่ได้รับการคุ้มครอง
โฆษณาได้รับการเลือกอย่างไร
โค้ดที่ decisionLogicUrl
(พร็อพเพอร์ตี้ของออบเจ็กต์การกําหนดค่าการประมูลที่ส่งไปยัง runAdAuction()
) ต้องมีฟังก์ชัน scoreAd()
ระบบจะเรียกใช้ขั้นตอนนี้ 1 ครั้งสําหรับโฆษณาแต่ละรายการเพื่อพิจารณาความน่าพึงพอใจ
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
scoreAd()
ใช้อาร์กิวเมนต์ต่อไปนี้
adMetadata
ข้อมูลเมตาที่ไม่เจาะจงซึ่งระบุโดยผู้ซื้อbid
ค่าการเสนอราคาที่เป็นตัวเลขauctionConfig
ออบเจ็กต์การกําหนดค่าการประมูลที่ส่งไปยังnavigator.runAdAuction()
trustedScoringSignals
ค่าที่ดึงข้อมูล ณ เวลาประมูลจากเซิร์ฟเวอร์ที่เชื่อถือได้ของผู้ขาย ซึ่งแสดงถึงความคิดเห็นของผู้ขายเกี่ยวกับโฆษณาbrowserSignals
ออบเจ็กต์ที่เบราว์เซอร์สร้างขึ้น ซึ่งรวมถึงข้อมูลที่เบราว์เซอร์ทราบและสคริปต์การประมูลของผู้ขายอาจต้องการยืนยัน
{
topWindowHostname: 'publisher.example',
interestGroupOwner: 'https://dsp.example',
renderUrl: 'https://cdn.example/render',
adComponents: ['https://cdn.com/ad-component-1', ...],
biddingDurationMsec: 12,
dataVersion: 1 /* Data-Version value from the seller's Key/Value service response. */
}
ก่อนที่การประมูลจะเริ่มขึ้น ผู้ขายจะค้นหาโฆษณาตามบริบทที่ดีที่สุดสําหรับช่องโฆษณาที่พร้อมใช้งาน ตรรกะส่วนหนึ่งของ scoreAd()
คือการปฏิเสธโฆษณาที่ไม่สามารถเอาชนะผู้ชนะตามบริบท
5. ผู้ขายและผู้ซื้อที่เข้าร่วมจะได้รับข้อมูลแบบเรียลไทม์จากบริการคีย์/ค่า

ส่วนคําอธิบาย: การดึงข้อมูลแบบเรียลไทม์จากบริการคีย์/ค่าของ Protected Audience
ในระหว่างการประมูลโฆษณา ผู้ขายพื้นที่โฆษณาจะได้รับข้อมูลแบบเรียลไทม์เกี่ยวกับครีเอทีฟโฆษณาที่เฉพาะเจาะจงโดยส่งคําขอไปยังบริการคีย์/ค่าโดยใช้พร็อพเพอร์ตี้ trustedScoringSignalsUrl
ของอาร์กิวเมนต์การกําหนดค่าการประมูลที่ส่งไปยัง navigator.runAdAuction()
พร้อมกับคีย์จากพร็อพเพอร์ตี้ renderUrl
ของรายการทั้งหมดในช่อง ads
และ adComponents
ของกลุ่มความสนใจทั้งหมดในการประมูล
ในทํานองเดียวกัน ผู้ซื้อพื้นที่โฆษณาสามารถขอข้อมูลแบบเรียลไทม์จากบริการคีย์/ค่าได้โดยใช้พร็อพเพอร์ตี้ trustedBiddingSignalsUrl
และ trustedBiddingSignalsKeys
ของอาร์กิวเมนต์กลุ่มความสนใจที่ส่งผ่านไปยัง navigator.joinAdInterestGroup()
เมื่อเรียก runAdAuction()
แล้วเบราว์เซอร์จะส่งคําขอไปยังเซิร์ฟเวอร์ที่เชื่อถือของผู้ซื้อโฆษณาแต่ละราย URL สําหรับคําขออาจมีลักษณะดังนี้
https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
- URL พื้นฐานมาจาก
trustedBiddingSignalsUrl
hostname
มาจากเบราว์เซอร์- ค่า
keys
นำมาจากtrustedBiddingSignalsKeys
การตอบกลับคําขอนี้เป็นออบเจ็กต์ JSON ที่ให้ค่าสําหรับคีย์แต่ละรายการ
6. โฆษณาที่ชนะจะแสดง

ส่วนคําอธิบาย: เบราว์เซอร์แสดงผลโฆษณาที่มีประสิทธิภาพสูงสุด
ตามที่อธิบายไว้ก่อนหน้านี้ พรอมต์ที่ runAdAuction()
แสดงผลจะเปลี่ยนเป็น URN ซึ่งส่งไปยังเฟรมที่มีการกำหนดเขตเพื่อแสดงผล และเว็บไซต์จะแสดงโฆษณาที่ชนะ
7. รายงานผลลัพธ์การประมูล
ส่วนคําอธิบาย: การรายงานระดับเหตุการณ์ (สําหรับตอนนี้)
ผลลัพธ์ที่รายงานโดยผู้ขาย
ส่วนคำอธิบาย: การรายงานของผู้ขายเกี่ยวกับการแสดงผล
JavaScript ของผู้ขายที่ระบุไว้ใน decisionLogicUrl
(ซึ่งระบุ scoreAd()
ด้วย) สามารถรวมฟังก์ชัน reportResult()
เพื่อรายงานผลลัพธ์ของการประมูล
reportResult(auctionConfig, browserSignals) {
...
return signalsForWinner;
}
อาร์กิวเมนต์ที่ส่งไปยังฟังก์ชันนี้มีดังนี้
auctionConfig
ออบเจ็กต์การกําหนดค่าการประมูลที่ส่งไปยังnavigator.runAdAuction()
browserSignals
ออบเจ็กต์ที่เบราว์เซอร์สร้างขึ้นซึ่งให้ข้อมูลเกี่ยวกับการประมูล เช่น{ 'topWindowHostname': 'publisher.example', 'interestGroupOwner': 'https://dsp.example', 'renderUrl': 'https://cdn.example/url-of-winning-creative.wbn', 'bid:' <bidValue>, 'desirability': <winningAdScore> }
ระบบจะใช้ค่าที่ฟังก์ชันนี้แสดงผลเป็นอาร์กิวเมนต์ sellerSignals
ของฟังก์ชัน reportWin()
ของผู้เสนอราคาที่ชนะ
ผู้เสนอราคาที่ชนะรายงานผลลัพธ์
ส่วนคําอธิบาย: การรายงานของผู้ซื้อเกี่ยวกับเหตุการณ์การแสดงผลและโฆษณา
JavaScript ของผู้เสนอราคาที่ชนะ (ซึ่งระบุ generateBid()
ด้วย) สามารถมีฟังก์ชัน reportWin()
เพื่อรายงานผลลัพธ์ของการประมูล
reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals) {
...
}
อาร์กิวเมนต์ที่ส่งไปยังฟังก์ชันนี้มีดังนี้
auctionSignals
และperBuyerSignals
ค่าเดียวกันกับที่ส่งไปยังgenerateBid()
สําหรับผู้เสนอราคาที่ชนะsellerSignals
ค่าที่แสดงผลของreportResult()
ซึ่งช่วยให้ผู้ขายมีโอกาสส่งข้อมูลไปยังผู้ซื้อbrowserSignals
ออบเจ็กต์ที่เบราว์เซอร์สร้างขึ้นซึ่งให้ข้อมูลเกี่ยวกับการประมูล เช่น{ 'topWindowHostname': 'publisher.example', 'seller': 'https://ssp.example', 'interestGroupOwner': 'https://dsp.example', 'interestGroupName': 'custom-bikes', 'renderUrl': 'https://cdn.example/winning-creative.wbn', 'bid:' <bidValue> }
การติดตั้งใช้งานการรายงานการสูญเสีย/การชนะชั่วคราว
การรายงานการประมูลใน Chrome มี 2 วิธีชั่วคราว ดังนี้
forDebuggingOnly.reportAdAuctionLoss()
forDebuggingOnly.reportAdAuctionWin()
โดยแต่ละเมธอดจะใช้อาร์กิวเมนต์รายการเดียว ซึ่งเป็น URL ที่จะดึงข้อมูลหลังจากการประมูลเสร็จสมบูรณ์ เรียกได้หลายครั้งทั้งใน scoreAd()
และ generateBid()
โดยมีอาร์กิวเมนต์ URL ที่แตกต่างกัน
Chrome จะส่งรายงานการแก้ไขข้อบกพร่องเกี่ยวกับจำนวนครั้งที่ชนะ/แพ้ก็ต่อเมื่อการประมูลทํางานเสร็จสมบูรณ์เท่านั้น หากการประมูลถูกยกเลิก (เช่น เนื่องจากการนําทางใหม่) ระบบจะไม่สร้างรายงาน
ซึ่งวิธีการเหล่านี้มีให้ใช้งานใน Chrome โดยค่าเริ่มต้น หากต้องการทดสอบวิธีการ ให้เปิดใช้ Ad Privacy API ทั้งหมดในส่วน chrome://settings/adPrivacy
หากใช้ Chrome ที่มี Flag บรรทัดคำสั่งเพื่อเปิดใช้กลุ่มเป้าหมายที่ได้รับการคุ้มครอง คุณจะต้องเปิดใช้วิธีการดังกล่าวอย่างชัดเจนโดยใส่ Flag BiddingAndScoringDebugReportingAPI
หากไม่ได้เปิดใช้ Flag ดังกล่าว วิธีการจะยังคงใช้งานได้แต่จะไม่ทําการใดๆ
8. มีการรายงานการคลิกโฆษณา

ระบบจะรายงานการคลิกโฆษณาที่แสดงผลในเฟรมที่มีการกำหนดเขต ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของฟีเจอร์นี้ได้ที่การรายงานโฆษณาในเฟรมที่มีรั้วล้อม
แผนภาพด้านล่างแสดงขั้นตอนต่างๆ ของการประมูลโฆษณาสำหรับ Protected Audience

Protected Audience กับ TURTLEDOVE แตกต่างกันอย่างไร
กลุ่มเป้าหมายที่ได้รับการคุ้มครองเป็นการทดสอบครั้งแรกที่จะนำมาใช้ใน Chromium ภายในกลุ่มข้อเสนอของ TURTLEDOVE
กลุ่มเป้าหมายที่ได้รับการคุ้มครองเป็นไปตามหลักการระดับสูงของ TURTLEDOVE การโฆษณาออนไลน์บางประเภทอิงตามการแสดงโฆษณาต่อผู้ที่อาจสนใจซึ่งเคยโต้ตอบกับผู้ลงโฆษณาหรือเครือข่ายโฆษณา ที่ผ่านมาวิธีนี้ได้ผลเนื่องจากผู้ลงโฆษณาจดจําบุคคลที่เฉพาะเจาะจงขณะท่องเว็บ ซึ่งเป็นข้อกังวลด้านความเป็นส่วนตัวหลักของเว็บในปัจจุบัน
โครงการ TURTLEDOVE มุ่งนำเสนอ API ใหม่เพื่อจัดการกับ Use Case นี้ไปพร้อมกับการนำเสนอความเป็นส่วนตัวขั้นสูงที่สำคัญบางอย่าง ดังนี้
- เบราว์เซอร์จะเก็บข้อมูลเกี่ยวกับสิ่งที่ผู้ลงโฆษณาคิดว่าผู้ใช้สนใจ ไม่ใช่ผู้ลงโฆษณา
- ผู้ลงโฆษณาสามารถแสดงโฆษณาตามความสนใจได้ แต่จะรวมความสนใจนั้นเข้ากับข้อมูลอื่นๆ เกี่ยวกับบุคคลไม่ได้ โดยเฉพาะข้อมูลเกี่ยวกับตัวตนหรือหน้าเว็บที่เข้าชม
Protected Audience พัฒนามาจาก TURTLEDOVE และชุดข้อเสนอที่เกี่ยวข้องสำหรับการแก้ไขเพื่อให้บริการนักพัฒนาซอฟต์แวร์ที่จะใช้ API ได้ดียิ่งขึ้น
- ใน SPARROW: Criteo เสนอให้เพิ่มรูปแบบบริการ ("Gatekeeper") ที่ทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) กลุ่มเป้าหมายที่ได้รับการคุ้มครองมีการจำกัดการใช้ TEE มากขึ้นสำหรับการค้นหาข้อมูลแบบเรียลไทม์และการรายงานแบบรวม
- TERN ของ NextRoll และข้อเสนอ PARRROT ของ Magnite อธิบายบทบาทที่แตกต่างกันของผู้ซื้อและผู้ขายในการประมูลบนอุปกรณ์ ขั้นตอนการเสนอราคา/การให้คะแนนโฆษณาของกลุ่มเป้าหมายที่ได้รับการคุ้มครองจะอิงตามงานวิจัยนี้
- การแก้ไข TURTLEDOVE ตามผลลัพธ์และระดับผลิตภัณฑ์ของ RTB House ช่วยปรับปรุงรูปแบบการไม่ระบุตัวตนและความสามารถในการปรับเปลี่ยนในแบบของคุณของการประมูลในอุปกรณ์
- PARAKEET คือข้อเสนอของ Microsoft สําหรับบริการโฆษณาที่คล้ายกับ TURTLEDOVE ซึ่งอาศัยเซิร์ฟเวอร์พร็อกซีที่ทํางานใน TEE ระหว่างเบราว์เซอร์กับผู้ให้บริการเทคโนโลยีโฆษณา เพื่อลบข้อมูลระบุตัวตนในคําขอโฆษณาและบังคับใช้พร็อพเพอร์ตี้ความเป็นส่วนตัว Protected Audience ไม่ได้ใช้รูปแบบพร็อกซีนี้ เราจะปรับ JavaScript API สำหรับ PARAKEET และ Protected Audience ให้สอดคล้องกัน เพื่อรองรับการทำงานในอนาคตในการรวมฟีเจอร์ที่ดีที่สุดของทั้ง 2 ข้อเสนอเข้าด้วยกัน
กลุ่มเป้าหมายที่ได้รับการคุ้มครองยังไม่ป้องกันไม่ให้เครือข่ายโฆษณาของเว็บไซต์ทราบว่าผู้ใช้เห็นโฆษณาใด เราคาดว่าจะแก้ไข API ให้ความเป็นส่วนตัวมากขึ้นในอนาคต
การกำหนดค่าเบราว์เซอร์ใดบ้างที่ใช้ได้
ผู้ใช้สามารถปรับการเข้าร่วมการทดลองใช้ Privacy Sandbox ใน Chrome ได้โดยเปิดหรือปิดการตั้งค่าระดับบนสุดใน chrome://settings/adPrivacy
ในระหว่างการทดสอบระยะเริ่มต้น ผู้ใช้จะใช้การตั้งค่า Privacy Sandbox ระดับสูงนี้เพื่อเลือกไม่ใช้กลุ่มเป้าหมายที่ได้รับการคุ้มครองได้ Chrome วางแผนที่จะอนุญาตให้ผู้ใช้ดูและจัดการรายการกลุ่มความสนใจที่ตนอยู่ทั่วทั้งเว็บในเว็บไซต์ที่ตนเข้าชม การตั้งค่าของผู้ใช้อาจเปลี่ยนแปลงไปตามความคิดเห็นจากผู้ใช้ ผู้ควบคุมดูแล และอื่นๆ เช่นเดียวกับเทคโนโลยี Privacy Sandbox เอง
เราจะอัปเดตการตั้งค่าที่ใช้ได้ใน Chrome อย่างต่อเนื่องเมื่อข้อเสนอ Protected Audience พัฒนาไป โดยอิงตามการทดสอบและความคิดเห็น ในอนาคต เราวางแผนที่จะเสนอการตั้งค่าที่ละเอียดยิ่งขึ้นเพื่อจัดการ Protected Audience และข้อมูลที่เชื่อมโยง
ผู้เรียก API จะเข้าถึงการเป็นสมาชิกกลุ่มไม่ได้เมื่อผู้ใช้ท่องเว็บในโหมดไม่ระบุตัวตน และระบบจะนำการเป็นสมาชิกออกเมื่อผู้ใช้ล้างข้อมูลเว็บไซต์
มีส่วนร่วมและแชร์ความคิดเห็น
- GitHub: อ่านข้อเสนอ ตั้งคำถามและติดตามการพูดคุย
- W3C: พูดคุยเกี่ยวกับกรณีการใช้งานในอุตสาหกรรมในกลุ่มการปรับปรุงธุรกิจการโฆษณาบนเว็บ
- การสนับสนุนนักพัฒนาแอป: ถามคําถามและเข้าร่วมการสนทนาในที่เก็บข้อมูลการสนับสนุนนักพัฒนาแอป Privacy Sandbox
- รายชื่ออีเมลของ FLEDGE: fledge-api-announce มีประกาศและการอัปเดตเกี่ยวกับ API
- เข้าร่วมการโทรที่กำหนดเวลาไว้สำหรับกลุ่มเป้าหมายที่ได้รับการคุ้มครอง (ทุกๆ 2 สัปดาห์) ทุกคนเข้าร่วมได้ โดยก่อนเข้าร่วม โปรดเข้าร่วม WICG คุณจะเข้าร่วมอย่างกระตือรือร้นหรือแค่ฟังก็ได้
- ใช้แบบฟอร์มความคิดเห็นของ Privacy Sandbox เพื่อแชร์ความคิดเห็นกับทีม Chrome เป็นการส่วนตัวนอกฟอรัมสาธารณะ
รับการสนับสนุน
หากต้องการถามคําถามเกี่ยวกับการติดตั้งใช้งาน เดโม หรือเอกสารประกอบ ให้ทำดังนี้
- เปิดปัญหาใหม่ในที่เก็บ privacy-sandbox-dev-support ตรวจสอบว่าได้เลือกเทมเพลตปัญหาสําหรับ Protected Audience
- แจ้งปัญหาในที่เก็บโค้ดเดโมใน GitHub
- หากมีคำถามทั่วไปเพิ่มเติมเกี่ยวกับวิธีใช้ API เพื่อตอบโจทย์กรณีการใช้งานของคุณ ให้แจ้งปัญหาในที่เก็บโปรเจ็กต์
สําหรับข้อบกพร่องและปัญหาเกี่ยวกับการติดตั้งใช้งาน Protected Audience API ใน Chrome ให้ดูปัญหาที่มีอยู่ซึ่งรายงานสำหรับ API * แจ้งปัญหาใหม่ได้ที่ crbug.com/new
รับข้อมูลอัปเดต
- หากต้องการรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงสถานะใน API โปรดเข้าร่วมรายชื่ออีเมลสำหรับนักพัฒนาซอฟต์แวร์
- หากต้องการติดตามการพูดคุยเกี่ยวกับ API ทั้งหมดที่กำลังดำเนินอยู่อย่างใกล้ชิด ให้คลิกปุ่มติดตามในหน้าข้อเสนอใน GitHub ซึ่งคุณต้องมีหรือสร้างบัญชี GitHub
- หากต้องการรับข้อมูลอัปเดตโดยรวมเกี่ยวกับ Privacy Sandbox โปรดสมัครรับฟีด RSS [ความคืบหน้าใน Privacy Sandbox]
ดูข้อมูลเพิ่มเติม
- Protected Audience API: ภาพรวมที่ไม่ใช่ทางเทคนิคมากนักของข้อเสนอ
- การสาธิต Protected Audience: คำแนะนำการใช้งาน Protected Audience ขั้นพื้นฐาน
- วิดีโอสาธิตกลุ่มเป้าหมายที่ได้รับการคุ้มครอง:อธิบายโค้ดเดโมและแสดงวิธีใช้เครื่องมือสําหรับนักพัฒนาเว็บใน Chrome สำหรับการแก้ไขข้อบกพร่องของกลุ่มเป้าหมายที่ได้รับการคุ้มครอง
- คำอธิบายทางเทคนิคของ Protected Audience API
- เจาะลึก Privacy Sandbox
- ความตั้งใจในการสร้างต้นแบบ
รูปภาพโดย Ray Hennessy ใน Unsplash