Terkadang dijelaskan sebagai "frekuensi yang efektif", sering kali terdapat jumlah minimum penayangan sebelum pengguna mengenali atau mengingat konten tertentu (sering kali dalam konteks penayangan iklan). Anda dapat menggunakan Penyimpanan Bersama untuk membuat laporan tentang pengguna unik yang telah melihat konten setidaknya sebanyak K beberapa kali.
Shared Storage API adalah proposal Privacy Sandbox untuk penyimpanan lintas situs tujuan umum, yang mendukung banyak kemungkinan kasus penggunaan. Private Aggregation API adalah output yang tersedia di Shared Storage yang memungkinkan Anda menggabungkan data lintas situs.
Coba pengukuran frekuensi K+
Untuk bereksperimen dengan pengukuran frekuensi K+ dengan Penyimpanan Bersama dan Agregasi Pribadi, pastikan Anda menggunakan Chrome M107 atau yang lebih baru. Kemudian, aktifkan tanda Eksperimen Privacy Sandbox Ads API di chrome://flags/#privacy-sandbox-ads-apis
.
Anda juga dapat mengaktifkan Penyimpanan Bersama dengan tanda --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
di command line.
Bereksperimen dengan contoh kode
Anda mungkin ingin mengukur jumlah pengguna yang telah melihat konten Anda sebanyak K atau lebih kali oleh klien tertentu di berbagai situs. Dalam contoh ini, jumlah tayangan iklan ditambahkan ke penyimpanan bersama yang bertambah 1 setiap kali konten dimuat. Jika jumlah tayangan iklan telah mencapai 3, Private Aggregation API akan dipanggil. Dimensi ID konten dienkode sebagai kunci agregasi, dan jumlah digunakan sebagai nilai gabungan. Laporan ringkasan akan memberikan informasi seperti "Sekitar 391 pengguna telah melihat ID kampanye iklan 123 setidaknya 3 kali".
Dalam contoh ini:
k-frequency-measurement.js
dimuat melalui frame, dan bertanggung jawab untuk memuat worklet penyimpanan bersama.k-frequency-measurement-worklet.js
adalah worklet penyimpanan bersama yang membaca jumlah tayangan iklan di penyimpanan bersama dan mengirim laporan melalui Private Aggregation API.
k-frequency-measurement.js
async function injectContent() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule('k-freq-measurement-worklet.js');
// Run the K-frequency measurement operation
await window.sharedStorage.run('k-freq-measurement', { data: { kFreq: 3, contentId: 123 });
}
injectContent();
k-frequency-measurement-worklet.js
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;
/**
* The bucket key must be a number, and in this case, it is simply the content
* ID itself. For more complex bucket key construction, see other use cases in
* this demo.
*/
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class KFreqMeasurementOperation {
async run(data) {
const { kFreq, contentId } = data;
// Read from Shared Storage
const hasReportedContentKey = 'has-reported-content';
const impressionCountKey = 'impression-count';
const hasReportedContent = (await this.sharedStorage.get(hasReportedContentKey)) === 'true';
const impressionCount = parseInt((await this.sharedStorage.get(impressionCountKey)) || 0);
// Do not report if a report has been sent already
if (hasReportedContent) {
return;
}
// Check impression count against frequency limit
if (impressionCount < kFreq) {
await this.sharedStorage.set(impressionCountKey, impressionCount + 1);
return;
}
// Generate the aggregation key and the aggregatable value
const bucket = convertContentIdToBucket(contentId);
const value = 1 * SCALE_FACTOR;
// Send an aggregatable report via the Private Aggregation API
privateAggregation.sendHistogramReport({ bucket, value });
// Set the report submission status flag
await this.sharedStorage.set(hasReportedContentKey, 'true');
}
}
// Register the operation
register('k-freq-measurement', KFreqMeasurementOperation); \
Berinteraksi dan berbagi masukan
Proposal Penyimpanan Bersama sedang dalam diskusi aktif dan dapat berubah pada masa mendatang. Jika Anda mencoba API ini dan memiliki masukan, sampaikanlah kepada kami.
- GitHub: Baca proposal, ajukan pertanyaan, dan berpartisipasilah dalam diskusi.
- Pengumuman Shared Storage API: Bergabunglah atau lihat pengumuman sebelumnya di milis kami
- Dukungan developer: Ajukan pertanyaan dan ikuti diskusi di repo Dukungan Developer Privacy Sandbox.