Merender iklan

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.