Merender iklan

Saat lelang Protected Audience menampilkan kandidat iklan, kandidat tersebut dapat ditampilkan sebagai URN buram, yang digunakan untuk merender iklan di iframe, atau FencedFrameConfig yang digunakan untuk merender iklan dalam frame tertutup.

Panduan ini akan menjelaskan apa itu frame tertutup dan alasan mengapa frame tersebut diperlukan, serta cara merender iklan menggunakan salah satu metode. Untuk melihat frame yang dibatasi secara lebih mendalam, temukan informasi selengkapnya dalam panduan ini atau dalam proposal.

Apa itu frame dengan fence?

Fenced frame (<fencedframe>) adalah elemen HTML untuk konten sematan, mirip dengan iframe. Tidak seperti iframe, frame yang dibatasi membatasi komunikasi dengan konteks penyematannya untuk memungkinkan akses frame ke data lintas situs tanpa membagikannya dengan konteks penyematan. Demikian pula, data pihak pertama apa pun dalam konteks penyematan tidak dapat dibagikan dengan frame tertutup.

Misalnya, news.example (konteks penyematan) menyematkan iklan dari shoes.example dalam frame tertutup. news.example tidak dapat mengekstraksi data dari iklan shoes.example, dan shoes.example tidak dapat mempelajari data pihak pertama dari news.example.

Bagaimana cara kerja frame yang dibatasi?

Frame tertutup menggunakan objek FencedFrameConfig untuk navigasi. Objek ini dapat ditampilkan dari lelang Protected Audience. Kemudian, objek config ditetapkan sebagai atribut config pada elemen frame tertutup. Hal ini berbeda dengan iframe yang menetapkan URL atau URN buram ke atribut src. Objek FencedFrameConfig memiliki properti url hanya baca; namun, karena kasus penggunaan saat ini mengharuskan URL sebenarnya dari resource internal disembunyikan, properti ini menampilkan string buram saat dibaca.

Frame tertutup tidak dapat menggunakan postMessage untuk berkomunikasi dengan penyematnya. Namun, frame tertutup dapat menggunakan postMessage dengan iframe di dalam frame tertutup.

Frame tertutup akan diisolasi dari penayang dengan cara lain. Penayang tidak akan memiliki akses ke DOM di dalam frame tertutup, dan frame tertutup tidak dapat mengakses DOM penayang. Selain itu, atribut seperti name, yang dapat disetel ke nilai apa pun dan diamati oleh penayang, tidak tersedia di frame tertutup.

Frame tertutup berperilaku seperti konteks penjelajahan tingkat atas (seperti tab browser). Meskipun frame yang dibatasi dalam kasus penggunaan tertentu (seperti opaque-ads) dapat berisi data lintas situs (seperti grup minat Protected Audience API), frame tidak dapat mengakses penyimpanan atau cookie yang tidak dipartisi. Frame tertutup opaque-ads dapat mengakses partisi penyimpanan dan cookie berbasis nonce yang unik.

Karakteristik frame tertutup dijelaskan lebih lanjut dalam penjelasan.

Merender iklan dalam frame tertutup

FencedFrameConfig ditampilkan dari lelang Protected Audience, asalkan parameter resolveToConfig AuctionConfig ditetapkan ke benar:

const frameConfig = await navigator.runAdAuction({
  // ...auction configuration
  resolveToConfig: true
});

Setelah mendapatkan konfigurasi, Anda dapat menetapkannya ke atribut config frame tertutup untuk membuka frame ke resource yang diwakili oleh konfigurasi. Chrome versi sebelumnya tidak mendukung properti resolveToConfig, jadi Anda tetap harus mengonfirmasi bahwa promise diselesaikan keFencedFrameConfig sebelum membuka:

if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
  const frame = document.createElement('fencedframe');
  frame.config = frameConfig;
}

Merender iklan dalam iframe

Jika AuctionConfig tidak menetapkan resolveToConfig secara eksplisit atau jika ditetapkan ke false, runAdAuction() akan menampilkan URN buram. URN ini dapat ditetapkan sebagai iframe's src untuk merender iklan.