แสดงโฆษณา

เมื่อการประมูล 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 เพื่อแสดงโฆษณาได้