Saat menampilkan kandidat iklan, lelang Protected Audience dapat
ditampilkan sebagai URN buram, yang digunakan untuk merender iklan dalam iframe
, atau
FencedFrameConfig
yang digunakan untuk merender iklan dalam frame dengan fence.
Panduan ini akan menjelaskan definisi frame dengan fence dan alasan diperlukannya frame tersebut, serta cara merender iklan menggunakan salah satu metode tersebut. Untuk pembahasan lebih mendalam tentang frame dengan fence, temukan informasi selengkapnya dalam panduan ini atau dalam proposal.
Apa yang dimaksud dengan frame dengan fence?
Frame dengan fence (<fencedframe>
) adalah elemen HTML untuk konten tersemat,
serupa dengan iframe
. Tidak seperti iframe
, frame dengan fence membatasi komunikasi
dengan konteks embeddingnya, untuk memungkinkan akses frame ke data lintas situs tanpa
membagikannya dengan konteks embedding. Demikian pula, data pihak pertama apa pun dalam
konteks penyematan tidak dapat dibagikan ke frame dengan fence.
Misalnya, news.example
(konteks penyematan) menyematkan iklan dari
shoes.example
dalam frame dengan fence. news.example
tidak boleh mengambil data yang tidak sah dari
iklan shoes.example
, dan shoes.example
tidak dapat mempelajari data pihak pertama dari
news.example
.
Bagaimana cara kerja frame dengan fence?
Frame dengan fence menggunakan objek FencedFrameConfig
untuk navigasi. Objek ini dapat
ditampilkan dari lelang Protected Audience. Kemudian, objek konfigurasi ditetapkan sebagai
atribut config
pada elemen frame dengan fence. 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 memerlukan URL aktual resource internal untuk disembunyikan,
properti ini akan menampilkan string buram saat dibaca.
Frame dengan fence tidak dapat menggunakan postMessage
untuk berkomunikasi dengan penyematnya.
Namun, frame dengan fence dapat menggunakan postMessage
dengan iframe
di dalam
frame dengan fence.
Frame dengan fence akan diisolasi dari penayang dengan cara lain. Penayang
tidak akan memiliki akses ke DOM di dalam frame dengan fence, dan frame dengan fence
tidak dapat mengakses DOM penayang. Selain itu, atribut seperti name
, yang dapat
ditetapkan ke nilai apa pun kepada dan diamati oleh penayang, tidak tersedia dalam frame
dengan fence.
Frame dengan fence berperilaku seperti konteks penjelajahan level atas (seperti tab
browser). Meskipun frame dengan fence 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 dengan fence opaque-ads
dapat mengakses cookie dan partisi penyimpanan berbasis nonce yang unik.
Karakteristik frame dengan fence dijelaskan lebih lanjut dalam penjelasan.
Render iklan dalam frame dengan fence
FencedFrameConfig
ditampilkan dari lelang Protected Audience, asalkan
parameter resolveToConfig
AuctionConfig
ditetapkan ke true:
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true
});
Setelah mendapatkan konfigurasi, Anda dapat menetapkannya ke atribut config
frame dengan fence untuk menavigasi frame ke resource yang direpresentasikan oleh konfigurasi.
Versi Chrome sebelumnya tidak mendukung properti resolveToConfig
, sehingga Anda tetap harus mengonfirmasi bahwa promise tersebut di-resolve ke FencedFrameConfig
sebelum membuka:
if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
const frame = document.createElement('fencedframe');
frame.config = frameConfig;
}
Merender iklan dalam iframe
Jika AuctionConfig
tidak secara eksplisit menetapkan resolveToConfig
atau jika disetel
ke salah (false), runAdAuction()
akan menampilkan URN buram. URN ini dapat ditetapkan sebagai
src
iframe
untuk merender iklan.