Jalankan worklet Penyimpanan Bersama untuk memilih URL dan merendernya dalam frame dengan fence.
Shared Storage API adalah informasi Proposal sandbox untuk tujuan umum, penyimpanan lintas situs, yang mendukung banyak yang mungkin terjadi. Salah satu contohnya adalah kontrol frekuensi, yang tersedia untuk uji di Chrome Beta 104.0.5086.0 dan yang lebih baru.
Jalankan skrip worklet untuk memilih URL dari daftar yang disediakan, berdasarkan skrip data, lalu merender URL tersebut dalam {i>frame<i} dengan fence. Ini dapat digunakan untuk memilih iklan baru atau konten lain saat batas frekuensi telah tercapai.
Menguji pemilihan materi iklan menurut frekuensi
Untuk menguji pemilihan materi iklan menurut frekuensi dengan Penyimpanan Bersama dan Bingkai Berpagar, konfirmasi bahwa Anda
menggunakan Chrome 104.0.5086.0 atau yang lebih baru. Aktifkan semua API privasi iklan di chrome://settings/adPrivacy
.
Anda juga dapat mengaktifkan Shared Storage dengan tanda --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
di command line.
Bereksperimen dengan contoh kode
Untuk memilih dan membuat URL buram, daftarkan modul worklet untuk membaca data penyimpanan. Class worklet menerima daftar hingga delapan URL, lalu mengembalikan indeks URL yang dipilih.
Saat klien memanggil sharedStorage.selectURL()
, worklet
dieksekusi dan menampilkan URL buram untuk dirender ke frame dengan fence.
Misalnya, Anda ingin memilih iklan atau konten yang berbeda untuk dirender berdasarkan frekuensi berapa kali pengguna telah melihatnya sebelumnya. Anda dapat menghitung berapa kali pengguna telah melihat sebuah konten, dan menyimpan nilai tersebut ke dalam penyimpanan bersama. Setelah disimpan, nilai dalam penyimpanan bersama akan tersedia untuk Anda di berbagai origin.
Kemudian, worklet penyimpanan bersama akan membaca nilai dalam penyimpanan bersama, dan menambahkan penghitung dengan setiap tampilan tambahan. Jika hitungan belum mencapai batas yang telah ditentukan, konten yang ingin Anda render akan ditampilkan (indeks 1
). Jika tidak, URL default akan ditampilkan (indeks 0
).
Dalam contoh ini:
creative-selection-by-frequencyjs
dimuat melalui iframe produsen konten atau pengiklan, dan bertanggung jawab untuk memuat worklet penyimpanan bersama, dan merender objek buram yang ditampilkan sumber ke dalam {i>frame<i} dengan {i>fence<i}.creative-selection-by-frequency-worklet.js
adalah worklet penyimpanan bersama yang membaca penghitungan frekuensi untuk menentukan URL mana yang ditampilkan untuk konten atau materi iklan.
creative-selection-by-frequency.js
// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
{ url: `https://${contentProducerUrl}/default-content.html` },
{ url: `https://${contentProducerUrl}/example-content.html` },
];
async function injectAd() {
// Load the worklet module.
await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');
// Set the initial frequency count
window.sharedStorage.set('frequency-count', 0, {
ignoreIfPresent: true,
});
// Run the URL selection operation to choose an ad based on the frequency count in shared storage.
const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
resolveToConfig: true
});
// Render the opaque URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectAd();
creative-selection-by-frequency-worklet.js
const FREQUENCY_LIMIT = 5;
class CreativeSelectionByFrequencyOperation {
async run(urls, data) {
// Read the current frequency limit in shared storage
const count = parseInt(await sharedStorage.get('frequency-count'));
// Check if the frequency limit has been reached.
if (count === FREQUENCY_LIMIT) {
console.log('Frequency limit has been reached, and the default content will be rendered.');
return 0;
}
// Set the new frequency count in shared storage
await sharedStorage.set('frequency-count', count + 1);
return 1;
}
}
// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);
Kasus penggunaan
Semua kasus penggunaan yang tersedia untuk Select URL API dapat ditemukan di bagian ini. Kami akan terus menambahkan contoh saat menerima masukan dan menemukan kasus pengujian baru.
- Memutar materi iklan: Menyimpan data, seperti ID materi iklan dan interaksi pengguna, untuk menentukan materi iklan yang dilihat pengguna di berbagai situs.
- Memilih materi iklan berdasarkan frekuensi: Gunakan data jumlah penayangan untuk menentukan materi iklan yang dilihat pengguna di berbagai situs.
- Menjalankan pengujian A/B: Anda dapat menetapkan pengguna ke grup eksperimen, lalu menyimpan grup tersebut di Shared Storage untuk diakses lintas situs.
- Menyesuaikan pengalaman untuk pelanggan yang diketahui: Membagikan konten kustom dan pesan ajakan (CTA) berdasarkan status pendaftaran pengguna atau status pengguna lainnya.
Berinteraksi dan memberikan masukan
Perhatikan bahwa proposal Select URL API sedang dalam diskusi dan pengembangan aktif serta dapat berubah sewaktu-waktu.
Kami ingin mengetahui pendapat Anda tentang Select URL API.
- Proposal: Tinjau proposal mendetail.
- Diskusi: Bergabunglah dengan diskusi yang sedang berlangsung untuk mengajukan pertanyaan dan membagikan insight Anda.
Mendapatkan Info Terbaru
- Daftar Email: Berlangganan ke daftar email kami untuk mendapatkan info terbaru dan pengumuman terkait API URL Pilih dan Shared Storage.
Perlu Bantuan?
- Dukungan Developer: Terhubung dengan developer lain dan dapatkan jawaban atas pertanyaan Anda di repositori Dukungan Developer Privacy Sandbox.