Buat laporan data gabungan menggunakan data dari Protected Audience dan data lintas situs dari Penyimpanan Bersama.
Untuk menyediakan fitur penting yang diandalkan web, Private Aggregation API telah dibangun untuk menggabungkan dan melaporkan data lintas situs dengan cara yang menjaga privasi.
Status penerapan
Proposal | Status |
---|---|
Mencegah laporan Private Aggregation API yang tidak valid dengan verifikasi laporan untuk Shared Storage Explainer |
Tersedia di Chrome |
Ketersediaan mode debug Agregasi Pribadi bergantung pada kelayakan 3PC Masalah GitHub |
Tersedia di Chrome M119 |
Mengurangi penundaan laporan Penjelasan |
Tersedia di Chrome M119 |
Dukungan untuk Private Aggregation API dan Layanan Agregasi untuk Google Cloud Penjelasan |
Tersedia di Chrome M121 |
Padding untuk payload laporan agregat Penjelasan |
Tersedia di Chrome M119 |
Mode debug Agregasi Pribadi tersedia untuk pelaporan AuctionReportBuyers Explainer |
Akan tersedia di Chrome M123 |
Dukungan ID pemfilteran Penjelasan |
Peluncuran awal diperkirakan di Chrome pada Q2 2024. |
Apa itu Private Aggregation API
Private Aggregation API memungkinkan developer membuat laporan data gabungan dengan data dari Protected Audience API dan data lintas situs dari Penyimpanan Bersama.
API ini saat ini menyediakan satu operasi, sendHistogramReport()
, tetapi lebih banyak operasi yang dapat
didukung di masa mendatang. Operasi histogram memungkinkan Anda menggabungkan data pada seluruh pengguna di setiap bucket (dikenal di API sebagai kunci agregasi) yang Anda tentukan.
Panggilan histogram Anda mengumpulkan nilai dan menampilkan hasil gabungan dengan derau dalam bentuk laporan ringkasan. Misalnya, laporan mungkin menampilkan jumlah
situs di mana setiap pengguna telah melihat konten Anda, atau menemukan bug di skrip pihak ketiga. Operasi ini dijalankan dalam worklet API lain.
Misalnya, jika Anda sebelumnya telah mencatat data demografis dan geografis di Shared Storage, Anda dapat menggunakan Private Aggregation API untuk membuat histogram yang memberi tahu Anda perkiraan jumlah pengguna di New York City yang telah melihat konten Anda lintas situs. Untuk menggabungkan pengukuran ini, Anda dapat mengenkode dimensi geografi ke dalam kunci agregasi dan menghitung pengguna dalam nilai agregat.
Konsep utama
Saat Anda memanggil Private Aggregation API dengan kunci agregasi dan nilai gabungan, browser akan membuat laporan gabungan.
Laporan agregat dikirim ke server Anda untuk pengumpulan dan pengelompokan. Laporan batch akan diproses nanti oleh Layanan Agregasi, dan laporan ringkasan akan dibuat.
Lihat dokumen dasar-dasar Private Aggregation API untuk mempelajari konsep utama yang digunakan dengan Private Aggregation API lebih lanjut.
Perbedaan dengan Pelaporan Atribusi
Private Aggregation API memiliki banyak kesamaan dengan Attribution Reporting API. Attribution Reporting adalah API mandiri yang dirancang untuk mengukur konversi, sedangkan Private Aggregation dibuat untuk pengukuran lintas situs bersama dengan API seperti Protected Audience API dan Shared Storage. Kedua API menghasilkan laporan agregat yang digunakan oleh back-end Layanan Agregasi untuk membuat laporan ringkasan.
Attribution Reporting mengaitkan data yang dikumpulkan dari peristiwa tayangan dan peristiwa konversi, yang terjadi pada waktu yang berbeda. Agregasi Pribadi mengukur peristiwa tunggal lintas situs.
Uji API ini
Private Aggregation API dapat diuji secara lokal dengan mengaktifkan
tanda eksperimen Privacy Sandbox Ads API di
chrome://flags/#privacy-sandbox-ads-apis
.
Baca selengkapnya tentang pengujian dalam eksperimen dan partisipasi.
Menggunakan demo
Demo Private Aggregation API untuk Shared Storage dapat diakses di goo.gle/shared-storage-demo, dan kodenya tersedia di GitHub. Demo menerapkan operasi sisi klien dan menghasilkan laporan gabungan yang dikirim ke server Anda.
Demo Private Aggregation API untuk Protected Audience API akan dipublikasikan.
Kasus penggunaan
Private Aggregation adalah API serbaguna untuk pengukuran lintas situs, dan tersedia untuk digunakan di worklet Penyimpanan Bersama dan Protected Audience API. Langkah pertama adalah memutuskan secara spesifik informasi apa yang ingin Anda kumpulkan. Titik data tersebut adalah dasar dari kunci agregasi Anda.
Dengan Penyimpanan bersama
Shared Storage memungkinkan Anda membaca dan menulis data lintas situs di lingkungan yang aman untuk mencegah kebocoran, dan Private Aggregation API memungkinkan Anda mengukur data lintas situs yang disimpan di Shared Storage.
Pengukuran jangkauan unik
Anda mungkin ingin mengukur jumlah pengguna unik yang telah melihat konten mereka. Private Aggregation API dapat memberikan jawaban seperti "Sekitar 317 pengguna unik telah melihat Content ID 861".
Anda dapat menyetel flag di Penyimpanan Bersama untuk menandakan apakah pengguna sudah melihat konten tersebut atau belum. Pada kunjungan pertama tempat tanda tidak ada, panggilan ke Agregasi Pribadi dibuat, lalu tanda tersebut disetel. Pada kunjungan berikutnya oleh pengguna, termasuk kunjungan lintas situs, Anda dapat memeriksa Penyimpanan Bersama dan melewati pengiriman laporan ke Agregasi Pribadi jika tanda ditetapkan.
Pengukuran demografi
Sebaiknya ukur demografi pengguna yang telah melihat konten Anda di berbagai situs.
Kumpulan Pribadi dapat memberikan jawaban, seperti "Sekitar 317 pengguna unik berasal dari usia 18-45 tahun dan berasal dari Jerman." Menggunakan Penyimpanan Bersama untuk mengakses data demografi dari konteks pihak ketiga. Di lain waktu, Anda dapat membuat laporan menggunakan Agregasi Pribadi dengan mengenkode dimensi kelompok usia dan negara dalam kunci agregasi.
Pengukuran frekuensi K+
Anda mungkin ingin mengukur jumlah pengguna yang telah melihat konten atau iklan minimal K kali pada browser tertentu, untuk nilai K yang telah dipilih sebelumnya.
Agregasi Pribadi dapat memberikan jawaban seperti "Sekitar 89 pengguna telah melihat Content ID 581 setidaknya 3 kali". Penghitung dapat bertambah dalam Penyimpanan Bersama dari situs yang berbeda dan dapat dibaca dalam worklet. Setelah jumlahnya mencapai K, laporan dapat dikirim melalui Agregasi Pribadi.
Dengan Protected Audience API
Protected Audience API memungkinkan penargetan ulang dan kasus penggunaan audiens kustom, sedangkan Private Aggregation memungkinkan Anda melaporkan peristiwa dari worklet pembeli dan penjual. API dapat digunakan untuk tugas-tugas seperti mengukur distribusi bid lelang.
Dari worklet Protected Audience API, Anda dapat menggabungkan data secara langsung menggunakan sendHistogramReport()
dan melaporkan data berdasarkan pemicu menggunakan reportContributionForEvent()
, yang merupakan ekstensi khusus untuk Protected Audience API.
Fungsi yang tersedia
Fungsi berikut tersedia di objek privateAggregation
yang tersedia di worklet Penyimpanan Bersama dan Protected Audience API.
contributeToHistogram()
Anda dapat memanggil privateAggregation.contributeToHistogram({ bucket: <bucket>, value: <value> })
, dengan kunci agregasinya adalah bucket
dan nilai gabungan sebagai value
. Untuk parameter bucket
, BigInt
diperlukan. Untuk parameter value
, diperlukan Bilangan bulat.
Berikut adalah contoh cara memanggilnya di Penyimpanan Bersama untuk pengukuran jangkauan:
iframe.js
// Cross-site iframe code
async function measureReach() {
// Register worklet
await window.sharedStorage.worklet.addModule('worklet.js');
// Run reach measurement operation
await window.sharedStorage.run('reach-measurement', {
data: { contentId: '1234' }
});
}
measureReach();
worklet.js
// Shared storage worklet code
function convertContentIdToBucket(campaignId){
// Generate aggregation key
}
// The scale factor is multiplied by the aggregatable value to
// maximize the signal-to-noise ratio. See "Noise and scaling"
// section in the Aggregation Fundamentals document to learn more.
const SCALE_FACTOR = 65536;
class ReachMeasurementOperation {
async run(data) {
const key = 'has-reported-content';
// Read the flag from Shared Storage
const hasReportedContent = await this.sharedStorage.get(key) === 'true';
// Do not send report if the flag is set
if (hasReportedContent) {
return;
}
// Send histogram report
// Set the aggregation key in `bucket`
// Bucket examples: 54153254n or BigInt(54153254)
// Set the scaled aggregatable value in `value`
privateAggregation.contributeToHistogram({
bucket: convertContentIdToBucket(data.contentId),
value: 1 * SCALE_FACTOR
});
// Set the flag in Shared Storage
await this.sharedStorage.set(key, true);
}
}
register('reach-measurement', ReachMeasurementOperation);
Contoh kode di atas akan memanggil Agregasi Pribadi setiap kali konten iframe lintas situs dimuat. Kode iframe memuat worklet, dan worklet memanggil Private Aggregation API dengan ID konten yang dikonversi menjadi kunci agregasi (bucket).
contributeToHistogramOnEvent()
Hanya dalam worklet Protected Audience API, kami menyediakan mekanisme berbasis pemicu untuk mengirim laporan hanya jika terjadi peristiwa tertentu. Fungsi ini juga memungkinkan bucket dan nilai bergantung pada sinyal yang belum tersedia pada titik tersebut di lelang.
Metode privateAggregation.reportContributionForEvent(eventType, contribution)
menggunakan eventType
yang menentukan peristiwa pemicu, dan contribution
yang akan dikirim saat peristiwa dipicu. Peristiwa pemicu dapat berasal dari lelang itu sendiri setelah lelang berakhir, seperti peristiwa menang atau kalah lelang, atau dapat berasal dari frame dengan fence yang merender iklan.
Untuk mengirim laporan peristiwa lelang, Anda dapat menggunakan dua kata kunci yang dicadangkan, reserved.win
, reserved.loss
, dan reserved.always
. Untuk mengirimkan laporan yang dipicu oleh peristiwa dari frame dengan fence, tentukan jenis peristiwa kustom. Untuk memicu peristiwa dari frame dengan fence, gunakan metode fence.reportEvent()
yang tersedia dari Fenced Frames Ads Reporting API.
Contoh berikut mengirim laporan tayangan saat peristiwa kemenangan lelang dipicu, dan mengirimkan laporan klik jika peristiwa click
dipicu dari frame dengan fence yang merender iklan. Kedua nilai tersebut dapat digunakan untuk menghitung rasio klik-tayang (CTR).
function generateBid(interestGroup, auctionSignals, perBuyerSignals, trustedBiddingSignals, browserSignals) {
// …
privateAggregation.contributeToHistogramOnEvent("reserved.win", {
bucket: getImpressionReportBucket(),
value: 1
});
privateAggregation.contributeToHistogramOnEvent("click", {
bucket: getClickReportBuckets(), // 128-bit integer as BigInt
value: 1
});
Lihat penjelasan Pelaporan Agregasi Pribadi yang Diperluas untuk mempelajari lebih lanjut.
enableDebugMode()
Meskipun cookie pihak ketiga masih tersedia, kami akan menyediakan mekanisme sementara yang memungkinkan proses debug dan pengujian yang lebih mudah dengan mengaktifkan mode debug. Laporan debug berguna untuk membandingkan pengukuran berbasis cookie dengan pengukuran Agregasi Pribadi, dan juga memungkinkan Anda memvalidasi integrasi API dengan cepat.
Memanggil privateAggregation.enableDebugMode()
di worklet akan mengaktifkan mode debug yang menyebabkan laporan gabungan menyertakan payload yang tidak dienkripsi (cleartext). Kemudian, Anda dapat memproses payload ini dengan alat pengujian lokal Layanan Agregasi.
Mode debug hanya tersedia untuk pemanggil yang diizinkan untuk mengakses
cookie pihak ketiga. Jika pemanggil tidak memiliki akses ke cookie pihak ketiga,
enableDebugMode()
` akan gagal di latar belakang. Artinya, saat cookie pihak ketiga tidak digunakan lagi, mode debug tidak akan tersedia lagi.
Anda juga dapat menetapkan kunci debug dengan memanggil privateAggregation.enableDebugMode({ <debugKey: debugKey> })
, dan BigInt
dapat digunakan sebagai kunci debug. Kunci debug dapat digunakan untuk mengaitkan data dari pengukuran berbasis cookie dan data dari pengukuran Agregasi Pribadi. Ini hanya dapat dipanggil sekali per konteks. Panggilan berikutnya akan diabaikan.
// Enables debug mode
privateAggregation.enableDebugMode();
// Enables debug mode and sets a debug key
privateAggregation.enableDebugMode({ debugKey: BigInt(1234) });
Verifikasi laporan
Untuk Penyimpanan Bersama, Anda dapat memverifikasi bahwa laporan gabungan yang Anda terima adalah sah dengan menambahkan ID konteks ke panggilan operasi penyimpanan bersama. ID akan dilampirkan pada laporan yang dikirim, dan di lain waktu, Anda dapat menggunakan ID tersebut untuk memverifikasi bahwa laporan dikirim dari operasi penyimpanan bersama.
Fitur ini tersedia untuk diuji di Chrome M114 dan yang lebih baru. Verifikasi laporan untuk Protected Audience API belum tersedia untuk diuji.
Untuk mempelajari lebih lanjut, lihat penjelasan verifikasi laporan.
Berinteraksi dan memberikan masukan
Private Aggregation API sedang dalam diskusi aktif dan dapat berubah pada masa mendatang. Jika Anda mencoba API ini dan memiliki masukan, kami akan dengan senang hati mendengarnya.
- GitHub: Baca penjelasan, ajukan pertanyaan, dan berpartisipasi dalam diskusi.
- Dukungan developer: Ajukan pertanyaan dan ikuti diskusi di repositori Dukungan Developer Privacy Sandbox.
- Bergabunglah dengan grup Shared Storage API dan grup Protected Audience API untuk mendapatkan pengumuman terbaru terkait Private Aggregation.