เมื่อการประมูล Protected Audience แสดงผลตัวเลือกโฆษณา ระบบอาจแสดงผลเป็น URN แบบทึบแสงซึ่งใช้เพื่อแสดงโฆษณาใน iframe
หรือ FencedFrameConfig
ซึ่งใช้แสดงโฆษณาในเฟรมที่มีการล้อมรั้ว
คู่มือนี้จะอธิบายว่าเฟรมที่มีการปิดกั้นคืออะไรและเหตุใดจึงต้องใช้เฟรมดังกล่าว รวมถึงวิธีแสดงผลโฆษณาที่ใช้ทั้ง 2 วิธี ดูรายละเอียดเพิ่มเติมเกี่ยวกับเฟรมที่มีการปิดกั้นได้ในคู่มือนี้หรือในข้อเสนอ
เฟรมที่มีการปิดกั้นคืออะไร
เฟรมที่มีการปิดกั้น (<fencedframe>
) เป็นองค์ประกอบ HTML สำหรับเนื้อหาที่ฝัง
คล้ายกับ iframe
เฟรมที่มีการปิดกั้นซึ่งแตกต่างจาก iframe
คือ เฟรมที่มีการปิดกั้นจะจำกัดการสื่อสารกับบริบทที่ฝังอยู่เพื่อให้เฟรมเข้าถึงข้อมูลแบบข้ามเว็บไซต์ได้โดยไม่ต้องแชร์ข้อมูลกับบริบทที่ฝัง ในทำนองเดียวกัน ข้อมูลจากบุคคลที่หนึ่งในบริบทการฝังจะแชร์กับเฟรมที่มีการปิดกั้นไม่ได้
ตัวอย่างเช่น สมมติว่า news.example
(บริบทการฝัง) ฝังโฆษณาจาก shoes.example
ในเฟรมที่มีการปิดกั้น news.example
ขโมยข้อมูลจากโฆษณา shoes.example
ไม่ได้และ shoes.example
จะเรียนรู้ข้อมูลจากบุคคลที่หนึ่งจาก news.example
ไม่ได้
เฟรมที่มีการปิดกั้นทำงานอย่างไร
เฟรมที่มีการปิดกั้นจะใช้ออบเจ็กต์ FencedFrameConfig
สำหรับการนำทาง ออบเจ็กต์นี้ส่งมาจากการประมูล Protected Audience ได้ จากนั้นระบบจะตั้งค่าออบเจ็กต์การกำหนดค่าเป็นแอตทริบิวต์ config
ในองค์ประกอบเฟรมที่มีการปิดกั้น ซึ่งแตกต่างจาก iframe
ที่มีการกำหนด URL หรือ URN ทึบแสงให้กับแอตทริบิวต์ src
ออบเจ็กต์ FencedFrameConfig
มีพร็อพเพอร์ตี้ url
แบบอ่านอย่างเดียว อย่างไรก็ตาม เนื่องจากกรณีการใช้งานปัจจุบันต้องการ URL จริงของทรัพยากรภายในเพื่อซ่อน พร็อพเพอร์ตี้นี้จะแสดงผลสตริงที่ทึบแสงเมื่ออ่านแล้ว
เฟรมที่มีการปิดกั้นจะใช้ postMessage
เพื่อสื่อสารกับเครื่องมือฝังไม่ได้
แต่เฟรมที่มีการปิดกั้นจะใช้ postMessage
กับ iframe
ภายในเฟรมที่มีการปิดกั้นได้
เฟรมที่มีการปิดกั้นจะแยกออกจากผู้เผยแพร่โฆษณาในลักษณะอื่นๆ ผู้เผยแพร่โฆษณาจะไม่มีสิทธิ์เข้าถึง DOM ภายในเฟรมที่มีการปิดกั้น และเฟรมที่มีการปิดกั้นไม่สามารถเข้าถึง DOM ของผู้เผยแพร่โฆษณาได้ นอกจากนี้ แอตทริบิวต์อย่าง name
ซึ่งตั้งค่าเป็นค่าใดก็ได้และสังเกตการณ์ได้โดยผู้เผยแพร่โฆษณาจะไม่มีอยู่ในเฟรมที่มีการปิดกั้น
เฟรมที่มีการปิดกั้นทำงานเหมือนกับบริบทการท่องเว็บระดับบนสุด (เช่น แท็บเบราว์เซอร์) แม้ว่าเฟรมที่มีการปิดกั้นในกรณีการใช้งานบางกรณี (เช่น opaque-ads
) จะมีข้อมูลข้ามเว็บไซต์ (เช่น กลุ่มความสนใจของ Protected Audience API) ได้ แต่เฟรมจะไม่สามารถเข้าถึงพื้นที่เก็บข้อมูลหรือคุกกี้ที่ไม่ได้แบ่งพาร์ติชัน เฟรมที่มีการปิดกั้น opaque-ads
สามารถเข้าถึงคุกกี้และพาร์ติชันพื้นที่เก็บข้อมูลแบบ nonce ที่ไม่ซ้ำกันได้
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลักษณะของเฟรมที่มีการปิดกั้นได้ในคำอธิบาย
แสดงโฆษณาในเฟรมที่มีการปิดกั้น
ระบบจะส่ง FencedFrameConfig
จากการประมูล Protected Audience โดยมีเงื่อนไขว่าพารามิเตอร์ AuctionConfig
resolveToConfig
ได้รับการตั้งค่าเป็น "จริง"
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true
});
เมื่อได้รับการกำหนดค่าแล้ว คุณจะกำหนดให้กับแอตทริบิวต์ config
ของเฟรมที่มีรั้วเพื่อไปยังส่วนต่างๆ ของเฟรมไปยังทรัพยากรที่การกำหนดค่าดังกล่าวแสดงได้
Chrome เวอร์ชันก่อนหน้าไม่รองรับพร็อพเพอร์ตี้ resolveToConfig
คุณจึงต้องยืนยันว่าคําสัญญาได้รับการแก้ไขเป็น FencedFrameConfig
แล้วก่อนไปยังส่วนต่างๆ ดังนี้
if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
const frame = document.createElement('fencedframe');
frame.config = frameConfig;
}
แสดงโฆษณาใน iframe
หาก AuctionConfig
ไม่ได้ตั้งค่า resolveToConfig
อย่างชัดเจนหรือหากตั้งค่าเป็น "เท็จ" runAdAuction()
จะแสดงผล URN แบบทึบ URN นี้ตั้งค่าเป็น src
ของ iframe
เพื่อแสดงโฆษณาได้