บทความนี้มีไว้สําหรับใคร
โพสต์นี้เป็นข้อมูลอ้างอิงทางเทคนิคเกี่ยวกับการปรับปรุง Protected Audience API เวอร์ชันทดลองในปัจจุบัน
Protected Audience API เป็นภาพรวมทางเทคนิคน้อยกว่าของข้อเสนอ และยังมีอภิธานศัพท์
การสาธิตที่ใช้ Protected Audience จะแสดงคำแนะนำแบบทีละขั้นเกี่ยวกับ FLEDGE พื้นฐาน ของการทำให้ใช้งานได้
วิดีโอสาธิตเกี่ยวกับ Protected Audience ซึ่งจะอธิบายวิธีการทำงานของโค้ดเดโมและแสดงวิธีใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome สำหรับการแก้ไขข้อบกพร่องของ Protected Audience
Protected Audience คืออะไร
Protected Audience API เป็นข้อเสนอของ Privacy Sandbox เพื่อแสดง รีมาร์เก็ตติ้งและกรณีการใช้งานของกลุ่มเป้าหมายที่กำหนดเอง ซึ่งออกแบบมาให้ใช้โดย บุคคลที่สามเพื่อติดตามพฤติกรรมการท่องเว็บของผู้ใช้ในเว็บไซต์ต่างๆ API ช่วยให้มีการประมูลในอุปกรณ์ได้โดย เบราว์เซอร์เพื่อเลือกโฆษณาที่เกี่ยวข้องสำหรับเว็บไซต์ที่ผู้ใช้เคยเข้าชมก่อนหน้านี้
Protected Audience เป็นการทดสอบแรกที่จะติดตั้งใช้งานใน Chromium ภายใน กลุ่มข้อเสนอ TURTLEDOVE
แผนภาพด้านล่างแสดงภาพรวมวงจรการใช้งาน FLEDGE
ฉันจะลองใช้ Protected Audience ได้อย่างไร
การสาธิต Protected Audience
ดูคำแนะนำแบบทีละขั้นเกี่ยวกับการติดตั้งใช้งาน Protected Audience เบื้องต้นในเว็บไซต์ของผู้ลงโฆษณาและผู้เผยแพร่โฆษณาได้ที่ protected-audience-demo.web.app.
วิดีโอสาธิต ซึ่งจะอธิบายวิธีการทำงานของโค้ดเดโมและแสดงวิธีใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome สำหรับการแก้ไขข้อบกพร่องของ Protected Audience
เข้าร่วมช่วงทดลองใช้ Protected Audience จากต้นทาง
มีการทดลองใช้ต้นทางและความเกี่ยวข้องของ Privacy Sandbox ที่พร้อมให้ใช้งานใน Chrome เบต้า 101.0.4951.26 ขึ้นไปบนเดสก์ท็อปสำหรับ Protected Audience หัวข้อ และ 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 นี้
คุณทดสอบ Protected Audience สำหรับผู้ใช้รายเดียวใน Chrome เบต้า 101.0.4951.26 ขึ้นไปบนเดสก์ท็อปได้โดยทำดังนี้
- เปิดใช้ API ความเป็นส่วนตัวเกี่ยวกับโฆษณาทั้งหมดภายใต้
chrome://settings/adPrivacy
- ตั้งค่าแฟล็กจากบรรทัดคำสั่ง
แสดงโฆษณาใน iframe หรือเฟรมที่มีการปิดกั้น
โฆษณาจะแสดงผลใน <iframe>
หรือ <fencedframe>
ได้
โดยขึ้นอยู่กับแฟล็กที่ตั้งค่าไว้
วิธีใช้ <fencedframe>
เพื่อแสดงโฆษณา
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames
วิธีใช้ <iframe>
เพื่อแสดงโฆษณา
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames
รวม Flag BiddingAndScoringDebugReportingAPI
เพื่อเปิดใช้วิธีการรายงานการแพ้/ชนะการแก้ไขข้อบกพร่องชั่วคราว
เรียกใช้ Chromium ด้วย Flag อธิบายวิธีการตั้งค่าสถานะเมื่อเรียกใช้ Chrome และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium จากคำสั่ง บรรทัด รายการการแจ้งว่าไม่เหมาะสมทั้งหมดของ Protected Audience สามารถดูได้จาก การค้นหาโค้ด Chromium
ใน Chrome เวอร์ชันล่าสุดรองรับฟีเจอร์ใดบ้าง
เราเปิดให้ใช้งาน Protected Audience ในเบื้องหลังของฟีเจอร์ใน Chromium เป็นครั้งแรก ทดสอบเพื่อทดสอบฟีเจอร์ต่อไปนี้ของข้อเสนอ Protected Audience
- กลุ่มความสนใจ: จัดเก็บโดยเบราว์เซอร์ โดยมีข้อมูลเมตาที่เกี่ยวข้องเพื่อกำหนดค่าการเสนอราคาโฆษณา และการแสดงภาพ
- การเสนอราคาในอุปกรณ์โดยผู้ซื้อ (DSP หรือผู้ลงโฆษณา): อิงตามกลุ่มความสนใจและสัญญาณที่จัดเก็บไว้ จากผู้ขาย
- การเลือกโฆษณาบนอุปกรณ์โดยผู้ขาย (SSP หรือผู้เผยแพร่โฆษณา): ตามราคาเสนอในการประมูล ข้อมูลเมตาจากผู้ซื้อ
- การแสดงโฆษณาใน Fenced Frame เวอร์ชันผ่อนคลายชั่วคราว: พร้อมการเข้าถึงเครือข่ายและ อนุญาตให้บันทึกสำหรับการแสดงโฆษณา
คำอธิบาย API จะให้รายละเอียดเพิ่มเติม เกี่ยวกับการรองรับและข้อจํากัดด้านฟีเจอร์
สิทธิ์ของกลุ่มความสนใจ
ค่าเริ่มต้นในการใช้งาน Protected Audience ในปัจจุบันคืออนุญาตให้เรียกใช้ joinAdInterestGroup()
จาก
ที่ใดก็ได้ในหน้าเว็บ แม้แต่จาก iframe แบบข้ามโดเมน ในอนาคต เมื่อเจ้าของเว็บไซต์มีเวลา
เพื่อปรับนโยบายสิทธิ์ของ iframe ข้ามโดเมน โดยมีแผนที่ไม่อนุญาตให้เรียกใช้
iframe ข้ามโดเมน ตามคำอธิบาย
บริการคีย์/ค่า
ในฐานะส่วนหนึ่งของการประมูลเพื่อแสดงโฆษณาที่ใช้ Protected Audience API เบราว์เซอร์จะเข้าถึง บริการคีย์/ค่า ที่ส่งคู่คีย์-ค่าแบบง่ายเพื่อให้ข้อมูลแก่ผู้ซื้อโฆษณา เช่น งบประมาณแคมเปญ ข้อบังคับของข้อเสนอ Protected Audience ว่าเซิร์ฟเวอร์นี้ "ไม่ได้ดำเนินการบันทึกระดับเหตุการณ์ และไม่มีผลข้างเคียงอื่นๆ ที่เกี่ยวข้อง คำขอ"
ตอนนี้โค้ดบริการคีย์/ค่า Protected Audience มีให้บริการในที่เก็บ GitHub ของ Privacy Sandbox แล้ว นักพัฒนาซอฟต์แวร์ Chrome และ Android สามารถใช้บริการนี้ได้ ดูการอัปเดตสถานะได้ในบล็อกโพสต์ประกาศ ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการคีย์/ค่าของ Protected Audience จากตัวอธิบาย API และตัวอธิบายโมเดลการเชื่อถือ
สำหรับการทดสอบเริ่มต้น ระบบจะใช้โมเดล "Bring Your Own Server" ในระยะยาว AdTech จะต้องใช้บริการคีย์/ค่า Protected Audience แบบโอเพนซอร์สซึ่งทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้เพื่อดึงข้อมูลแบบเรียลไทม์
เพื่อให้มั่นใจว่าระบบนิเวศมีเวลาเพียงพอในการทดสอบ เราจึงไม่คาดว่าจะกำหนดให้ต้องใช้บริการคีย์/ค่าโอเพนซอร์สหรือ TEE จนกว่าจะผ่านไปสักระยะหนึ่งหลังจากที่เลิกใช้งานคุกกี้ของบุคคลที่สาม เราจะประกาศแจ้งที่สำคัญเพื่อให้นักพัฒนาแอปเริ่มทดสอบและปรับใช้ก่อนที่จะมีการเปลี่ยนแปลง
ตรวจหาการรองรับฟีเจอร์
ก่อนใช้ 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 อย่างชัดแจ้งในช่วงระยะเวลาการทดสอบจะสามารถใช้ นโยบายสิทธิ์ที่เกี่ยวข้อง เพื่อบล็อกการเข้าถึง
มีนโยบายสิทธิ์ของ 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
คุณอาจแก้ไขข้อบกพร่องของเวิร์กเล็ต Protected Audience ภายในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ได้ใน Chrome Canary 98.0.4718.0
ขั้นตอนแรกคือการตั้งค่าเบรกพอยท์ผ่านหมวดหมู่ใหม่ในแผงเบรกพอยท์ของ Listener เหตุการณ์ ในแผงแหล่งที่มา
เมื่อเบรกพอยท์ทริกเกอร์ การดำเนินการจะหยุดชั่วคราวก่อนคำสั่งแรกที่ระดับบนสุดของ Worklet แบบ คุณสามารถใช้เบรกพอยท์ปกติหรือคำสั่งขั้นตอนเพื่อไปยังการเสนอราคา/การให้คะแนน/การรายงาน ของฟังก์ชันนั้นๆ
สคริปต์ Worklet แบบสดจะแสดงในแผง Threads ด้วย
เนื่องจากเวิร์กเล็ตบางรายการอาจทำงานพร้อมกัน ดังนั้นเทรดหลายรายการจึงอาจอยู่ใน "หยุดชั่วคราว" ระบุ คุณจะใช้รายการชุดข้อความเพื่อสลับระหว่างชุดข้อความต่างๆ แล้วกลับมาแสดงอีกครั้งหรือตรวจสอบให้ละเอียดยิ่งขึ้นได้ เหมาะสม
สังเกตเหตุการณ์ Protected Audience
คุณสังเกตกลุ่มความสนใจและการประมูลที่ใช้ Protected Audience API ได้จากแผงแอปพลิเคชันในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome กิจกรรม
หากคุณไปที่เว็บไซต์ช็อปปิ้งสำหรับเดโมของ Protected Audience
ในเบราว์เซอร์ที่เปิดใช้ Protected Audience เครื่องมือสำหรับนักพัฒนาเว็บจะแสดงข้อมูลเกี่ยวกับเหตุการณ์ join
ทีนี้หากคุณไปที่เว็บไซต์ผู้เผยแพร่โฆษณาเดโมของ Protected Audience
ในเบราว์เซอร์ที่เปิดใช้ Protected Audience เครื่องมือสำหรับนักพัฒนาเว็บจะแสดงข้อมูลเกี่ยวกับเหตุการณ์ 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()
จาก
ที่มาเดียวกับเว็บไซต์ที่เข้าชม นั่นคือ จากต้นทางเดียวกับเฟรมระดับบนสุดของ
หน้าปัจจุบัน เว็บไซต์ใช้ส่วนหัวนโยบายสิทธิ์สำหรับ Protected Audience ได้
คำสั่ง join-ad-interest-group
เพื่อปิดใช้การเรียก 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
วัน การเรียกใช้อย่างต่อเนื่องจะเขียนทับค่าที่จัดเก็บไว้ก่อนหน้านี้
พร็อพเพอร์ตี้กลุ่มความสนใจ
พร็อพเพอร์ตี้ | ต้องระบุ | ตัวอย่าง | บทบาท |
---|---|---|---|
owner |
ต้องระบุ | 'https://dsp.example' |
ต้นทางของเจ้าของกลุ่มความสนใจ |
name |
ต้องระบุ | 'custom-bikes' |
ชื่อกลุ่มความสนใจ |
biddingLogicUrl ** |
ไม่บังคับ* | 'https://dsp.example/bid/custom-bikes/bid.js' |
URL สำหรับ JavaScript สำหรับการเสนอราคาที่เรียกใช้ใน Worklet |
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 ชั่วโมง และ การอัปเดตที่ดำเนินการไม่สำเร็จเนื่องจากตัดการเชื่อมต่อจากอินเทอร์เน็ตจะพยายามเชื่อมต่อใหม่ทันที
การอัปเดตด้วยตนเอง
การอัปเดตกลุ่มความสนใจที่เป็นต้นทางของเฟรมปัจจุบันจะทริกเกอร์ด้วยตนเองได้ผ่าน
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()
ฟังก์ชันนี้เรียกเพียงครั้งเดียวสำหรับโฆษณาที่ผู้สมัครแต่ละรายการ runAdAuction()
ตรวจสอบโฆษณาแต่ละรายการ พร้อมกับราคาเสนอและข้อมูลเมตาที่เกี่ยวข้อง จากนั้นจึงกำหนดโฆษณา
ที่เป็นตัวเลข
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
...
return {
ad: adObject,
bid: bidValue,
render: renderUrl,
adComponents: [adComponentRenderUrl1, ...]
};
}
generateBid()
รับอาร์กิวเมนต์ต่อไปนี้
interestGroup
ออบเจ็กต์ที่ส่งไปยังjoinAdInterestGroup()
โดยผู้ซื้อโฆษณา (กลุ่มความสนใจ อาจอัปเดตผ่านdailyUpdateUrl
)auctionSignals
พร็อพเพอร์ตี้ของอาร์กิวเมนต์การกำหนดค่าการประมูลที่ส่งไปยัง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
ข้อมูลเมตาที่กำหนดเองเกี่ยวกับโฆษณา เช่น ข้อมูลที่ผู้ขายคาดหวังว่าจะเรียนรู้เกี่ยวกับการเสนอราคานี้ หรือ ครีเอทีฟโฆษณา ผู้ขาย](/privacy-sandbox/resources/อภิธานศัพท์#ssp) ใช้ข้อมูลนี้ในการประมูลและตัดสินใจ ครีเอทีฟโฆษณา ผู้ขายใช้ข้อมูลนี้ในการประมูลและตัดสินใจbid
ตัวเลขราคาเสนอที่จะเข้าสู่การประมูล ผู้ขายต้องอยู่ในสถานะที่จะเปรียบเทียบได้ ราคาเสนอจากผู้ซื้อที่ต่างกัน ดังนั้นราคาเสนอต้องอยู่ในหน่วยที่ผู้ขายเลือก (เช่น "USD ต่อ 1,000") หากราคาเสนอเป็นศูนย์หรือค่าลบ กลุ่มความสนใจนี้จะไม่เข้าร่วมใน กับผู้ขายรายใดเลย ด้วยกลไกนี้ ผู้ซื้อสามารถใช้กฎของผู้ลงโฆษณา โฆษณาของตนอาจปรากฏหรือไม่แสดงก็ได้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 |
รันไทม์สูงสุด (ms) ของสคริปต์ scoreAd() ของผู้ขาย |
perBuyerSignals |
ไม่บังคับ | {'https://dsp.example': {...}, |
สัญญาณบริบทเกี่ยวกับหน้าเว็บของผู้ซื้อแต่ละรายจากเซิร์ฟเวอร์ของผู้ซื้อ |
perBuyerTimeouts |
ไม่บังคับ | 50 |
รันไทม์สูงสุด (ms) ของสคริปต์ generateBid() ของผู้ซื้อบางราย |
componentAuctions |
ไม่บังคับ | [{'seller': 'https://www.some-other-ssp.com', |
การกำหนดค่าเพิ่มเติมสำหรับการประมูลคอมโพเนนต์ |
* ผู้ขายอาจระบุ interestGroupBuyers: '*'
เพื่ออนุญาตให้กลุ่มความสนใจทุกกลุ่มเสนอราคาได้
จากนั้น ระบบจะยอมรับหรือปฏิเสธโฆษณาตามเกณฑ์อื่นนอกเหนือจากการรวมเจ้าของกลุ่มความสนใจ
ตัวอย่างเช่น ผู้ขายอาจตรวจสอบครีเอทีฟโฆษณาเพื่อยืนยันว่าปฏิบัติตามนโยบายของตน
** การใช้งาน Protected Audience ปัจจุบันไม่รองรับ additionalBids
อ่านการประมูล
ผู้เข้าร่วมในส่วน
ดูข้อมูลเพิ่มเติมเกี่ยวกับคำอธิบายสำหรับ Protected Audience
ระบบเลือกโฆษณาอย่างไร
โค้ดที่ decisionLogicUrl
(พร็อพเพอร์ตี้ของออบเจ็กต์การกำหนดค่าการประมูลที่ส่งไปยัง
runAdAuction()
) ต้องมีฟังก์ชัน scoreAd()
ทำงานเพียงครั้งเดียวสำหรับโฆษณาแต่ละรายการ
เพื่อกำหนดความน่าพอใจ
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 โดยค่าเริ่มต้น โปรดเปิดใช้ API ความเป็นส่วนตัวเกี่ยวกับโฆษณาทั้งหมดใน chrome://settings/adPrivacy
เพื่อให้ทดสอบเมธอดได้ หากใช้ Chrome ที่มีแฟล็กบรรทัดคำสั่งเพื่อเปิดใช้ Protected Audience คุณจะต้อง
เปิดใช้เมธอดอย่างชัดเจนโดยรวม Flag BiddingAndScoringDebugReportingAPI
หาก
ไม่ได้เปิดใช้งานการตั้งค่าสถานะ วิธีการจะยังคงใช้ได้แต่ไม่ได้ดำเนินการใดๆ
8. รายงานการคลิกโฆษณา
รายงานการคลิกโฆษณาที่แสดงในเฟรมที่มีการปิดกั้น หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับวิธีการทำงาน ดูการรายงานโฆษณาเฟรมที่มีการปิดกั้น
แผนภาพด้านล่างแสดงแต่ละขั้นตอนของการประมูลเพื่อแสดงโฆษณาที่ใช้ Protected Audience API
Protected Audience กับ TURTLEDOVE แตกต่างกันอย่างไร
Protected Audience เป็นการทดสอบแรกที่จะนำมาใช้ใน Chromium ภายในกลุ่มข้อเสนอ TURTLEDOVE
Protected Audience เป็นไปตามหลักการระดับสูงของ TURTLEDOVE การโฆษณาออนไลน์บางรายการมีพื้นฐานมาจากการแสดงโฆษณาต่อผู้ที่อาจสนใจซึ่งเคยโต้ตอบกับผู้ลงโฆษณาหรือเครือข่ายโฆษณาดังกล่าว ที่ผ่านมา ปัญหานี้เกิดจากผู้ลงโฆษณาซึ่งรู้จักบุคคลหนึ่งขณะเรียกดูเว็บไซต์ ซึ่งเป็นข้อกังวลหลักเกี่ยวกับความเป็นส่วนตัวของเว็บในปัจจุบัน
ความพยายามของ TURTLEDOVE คือการนำเสนอ API ใหม่เพื่อจัดการกับ Use Case นี้ พร้อมทั้งนำเสนอความก้าวหน้าด้านความเป็นส่วนตัวที่สำคัญบางประการ ดังนี้
- เบราว์เซอร์มีข้อมูลสิ่งที่ผู้ลงโฆษณาคิด ไม่ใช่ผู้ลงโฆษณา ที่สนใจ
- ผู้ลงโฆษณาสามารถแสดงโฆษณาโดยอิงตามความสนใจได้ แต่จะไม่สามารถรวมความสนใจนั้นกับความสนใจอื่นๆ ได้ ข้อมูลเกี่ยวกับบุคคล โดยเฉพาะอย่างยิ่ง พวกเขาเป็นใคร หรือกำลังเข้าชมหน้าเว็บใด
Protected Audience เติบโตขึ้นจาก TURTLEDOVE และชุดข้อเสนอที่เกี่ยวข้องสำหรับการแก้ไขเพื่อให้ให้บริการแก่นักพัฒนาแอปที่จะใช้ API ได้ดียิ่งขึ้น ดังนี้
- ใน SPARROW: Criteo เสนอให้เพิ่ม ("ผู้รับสายแทน") กำลังทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) Protected Audience ประกอบด้วย TEE ที่จํากัดมากขึ้น การค้นหาข้อมูลแบบเรียลไทม์และการรายงานแบบรวม
- TERN และ Magnite ของ NextRoll แยกวิเคราะห์ ข้อเสนอได้อธิบายบทบาทต่างๆ ที่ผู้ซื้อและผู้ขายมีในการประมูลบนอุปกรณ์ ขั้นตอนการเสนอราคา/การให้คะแนนโฆษณาของ Protected Audience จะอิงตามงานนี้
- ตามผลลัพธ์ของ RTB House และ ระดับผลิตภัณฑ์ TURTLEDOVE การแก้ไขปรับปรุงรูปแบบการลบข้อมูลระบุตัวบุคคลและความสามารถในการปรับเปลี่ยนในแบบของคุณสำหรับการประมูลในอุปกรณ์
- PARAKEET คือ ข้อเสนอของ Microsoft สำหรับบริการโฆษณาแบบเหมือน TURTLEDOVE ที่ต้องใช้พร็อกซีเซิร์ฟเวอร์ที่ทำงานใน TEE ระหว่างเบราว์เซอร์และผู้ให้บริการ AdTech เพื่อลบข้อมูลระบุตัวบุคคลในคำขอโฆษณาและบังคับใช้ความเป็นส่วนตัว พร็อพเพอร์ตี้ Protected Audience ไม่ได้ใช้รูปแบบการพร็อกซีนี้ เรากำลังนำ JavaScript API สำหรับ PARAKEET และ Protected Audience ให้สอดคล้องกัน เพื่อรองรับการดำเนินงานในอนาคตเพื่อรวมระบบที่ดีที่สุด ของทั้ง 2 ข้อเสนอ
ทั้งนี้ Protected Audience ยังไม่ได้ป้องกันเครือข่ายโฆษณาของเว็บไซต์ไม่ให้ทราบว่าผู้ใช้เห็นโฆษณาใด เราคาดว่า แก้ไข API ให้มีความเป็นส่วนตัวมากขึ้นเมื่อเวลาผ่านไป
มีการกำหนดค่าเบราว์เซอร์แบบใดบ้าง
ผู้ใช้ปรับการเข้าร่วมการทดลองใช้ Privacy Sandbox ใน Chrome ได้ด้วยการเปิดหรือปิดใช้
การตั้งค่าระดับบนสุดใน chrome://settings/adPrivacy
ระหว่างการทดสอบเริ่มต้น ผู้ที่จะ
สามารถใช้การตั้งค่า Privacy Sandbox ระดับสูงนี้เพื่อเลือกไม่ใช้ Protected Audience Chrome วางแผนที่จะอนุญาต
ผู้ใช้ เพื่อดูและจัดการรายการกลุ่มความสนใจที่พวกเขาได้เพิ่มไว้ในเว็บ
เว็บไซต์ที่เข้าชมได้ เช่นเดียวกับเทคโนโลยี Privacy Sandbox การตั้งค่าของผู้ใช้อาจ
พัฒนาขึ้นตามความคิดเห็นจากผู้ใช้ หน่วยงานกำกับดูแล และอื่นๆ
เราจะอัปเดตการตั้งค่าที่มีอยู่ใน Chrome ต่อไปเมื่อข้อเสนอ Protected Audience ดำเนินไปโดยอิงตาม เกี่ยวกับการทดสอบและความคิดเห็น เราวางแผนที่จะเสนอการตั้งค่าที่ละเอียดยิ่งขึ้นเพื่อจัดการ Protected Audience และข้อมูลที่เกี่ยวข้องในอนาคต
ผู้โทร API จะเข้าถึงการเป็นสมาชิกกลุ่มไม่ได้เมื่อผู้ใช้ท่องเว็บในโหมดไม่ระบุตัวตนและการเป็นสมาชิก ถูกนำออกเมื่อผู้ใช้ล้างข้อมูลเว็บไซต์
มีส่วนร่วมและแชร์ความคิดเห็น
- GitHub: อ่านข้อเสนอ หยิบยกคำถามและติดตามการสนทนา
- W3C: พูดคุยเกี่ยวกับกรณีการใช้งานของอุตสาหกรรมในหัวข้อการปรับปรุงธุรกิจการโฆษณาบนเว็บ กลุ่ม
- การสนับสนุนนักพัฒนาแอป: ถามคำถามและเข้าร่วมการสนทนาใน ที่เก็บการสนับสนุนนักพัฒนาซอฟต์แวร์ของ Privacy Sandbox
- รายชื่ออีเมล FLEDGE: fledge-api-announce ให้ประกาศและข้อมูลอัปเดตเกี่ยวกับ API
- เข้าร่วมการโทรที่กำหนดเวลาไว้สำหรับ Protected Audience (ทุก สัปดาห์ที่ 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 [ความคืบหน้าด้านความเป็นส่วนตัว Sandbox]
ดูข้อมูลเพิ่มเติม
- Protected Audience API: ภาพรวมทางเทคนิคของข้อเสนอน้อยกว่า
- การสาธิต Protected Audience: คำแนะนำแบบทีละขั้นเกี่ยวกับการติดตั้งใช้งาน Protected Audience เบื้องต้น
- วิดีโอสาธิตเกี่ยวกับ Protected Audience: อธิบายโค้ดเดโมและแสดงวิธีใช้ Chrome DevTools สำหรับการแก้ไขข้อบกพร่องของ Protected Audience
- คำอธิบายทางเทคนิคของ Protected Audience API
- เจาะลึกเรื่อง Privacy Sandbox
- ความตั้งใจในการสร้างต้นแบบ
รูปภาพโดย Ray Hennessy ใน Unsplash