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.