Layanan Agregasi membuat laporan ringkasan data konversi mendetail dan pengukuran jangkauan dari laporan gabungan mentah. Untuk menjaga privasi dan keamanan data pengguna, Layanan Agregasi menggunakan framework yang mendukung privasi diferensial (DP) untuk mengukur dan membatasi jumlah informasi yang diungkapkan laporan ini tentang pengguna individu.
Panduan ini membahas alat dan strategi untuk membuat laporan yang dapat diagregasi yang membantu menjaga keamanan data tentang pengguna individu:
- Membuat laporan ringkasan dengan derau tambahan
- Tetapkan anggaran kontribusi
- Strategi untuk pengelompokan laporan
- Menangani laporan duplikat dalam batch
- Menangani laporan dengan ID bersama yang sama
- Menggunakan kunci agregasi yang dideklarasikan sebelumnya
Laporan ringkasan dengan derau tambahan
Saat Anda mengelompokkan laporan gabungan, Layanan Agregasi akan membuat laporan ringkasan. Laporan ringkasan ini adalah gabungan dari semua kontribusi semua kunci domain standar, dengan derau statistik tambahan.
Derau yang ditambahkan ke laporan tidak bergantung pada jumlah laporan yang digabungkan, nilai laporan individual, atau nilai laporan gabungan. Derau diambil dari versi diskrit distribusi Laplace, dan diskalakan ke anggaran kontribusi (sensitivitas L1) yang diterapkan oleh klien bergantung pada API pengukuran yang sesuai dan parameter privasi epsilon.
Untuk mempelajari lebih lanjut derau dan implikasinya terhadap data laporan, lihat Memahami derau dalam laporan ringkasan.
Anggaran kontribusi
Untuk mengontrol sensitivitas laporan ringkasan, jumlah kontribusi yang diteruskan dalam panggilan dikaitkan dengan batas kontribusi tertentu, yang juga dikenal sebagai anggaran kontribusi. Anggaran kontribusi bervariasi bergantung pada apakah Anda menggunakan Attribution Reporting API atau Private Aggregation API.
Untuk mempelajari lebih lanjut cara menetapkan anggaran kontribusi untuk setiap API, lihat bagian dokumentasi API berikut:
- Pembatasan dan penganggaran kontribusi Attribution Reporting API
- Batas kontribusi Private Aggregation API
- Pembatasan dan penganggaran kontribusi Private Aggregation API
Strategi untuk pengelompokan laporan
Saat Anda membuat laporan yang dapat diagregasi dalam batch, penting untuk mengoptimalkan strategi pembuatan batch agar batas privasi tidak terlampaui. Dua konsep penting untuk membuat laporan batch dengan benar adalah aturan"tanpa duplikat" dan ide batch terpisah.
Aturan "Tidak ada duplikat"
Layanan Agregasi menerapkan aturan "tanpa duplikat". Aturan ini menyatakan bahwa laporan yang dapat diagregasi, yang diidentifikasi secara unik oleh report_id, hanya dapat muncul satu kali dalam satu batch. Jika laporan yang dapat diagregasi muncul lebih dari sekali per batch, laporan pertama akan disertakan dalam agregasi, laporan berikutnya dengan report_id yang sama akan dihapus, dan batch akan berhasil diselesaikan.
Aturan ini juga menyatakan bahwa ID bersama yang sama tidak boleh muncul di lebih dari satu batch. Jika ID Bersama telah disertakan dalam batch sebelumnya yang berhasil, batch berikutnya yang juga menyertakan ID bersama yang sama akan gagal.
Tanpa aturan "tanpa duplikat", penyerang dapat memperoleh insight tentang isi batch tertentu dengan memanipulasi isi batch melalui penyertaan salinan laporan duplikat dalam satu batch atau beberapa batch.
Untuk mempelajari lebih lanjut cara menerapkan aturan "tanpa duplikat" dalam batch laporan atau di beberapa batch, lihat Laporan duplikat dalam batch.
Batch terpisah
Untuk menghindari situasi ketika ada tumpang-tindih antar-batch, Layanan Agregasi menerapkan batch yang tidak beririsan. Artinya, dua batch atau lebih tidak boleh berisi laporan yang memiliki ID bersama yang sama. ID bersama adalah kombinasi data yang dikumpulkan dari kolom shared_info laporan yang dapat digabungkan, beserta ID pemfilteran dari permintaan tugas. Jika tidak ada ID pemfilteran yang ditentukan, nilai default 0 akan digunakan.
Dalam contoh kolom shared_info berikut, Anda dapat melihat API, attribution_destination (untuk Attribution Reporting), reporting_origin, scheduled_report_time, source_registration_time (untuk Attribution Reporting), dan version. Kolom ini, kecuali report_id, bersama dengan ID pemfilteran dari permintaan tugas, berkontribusi pada ID bersama.
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://privacy-sandbox-demos-shop.dev",
"report_id": "5b052748-f5fb-4f14-b291-de03484ed59e",
"reporting_origin": "https://privacy-sandbox-demos-dsp.dev",
"scheduled_report_time": "1707786751",
"source_registration_time": "0",
"version": "0.1"
}
Karena source_registration_time dipangkas menurut hari dan scheduled_report_time dipangkas menurut jam, ada laporan yang memiliki ID bersama yang sama. Dalam contoh ini, Report1 dan Report2 memiliki kolom info bersama. Kedua laporan memiliki API, versi, attribution_destination, reporting_origin, dan source_registration_time yang sama. Karena report_id bukan bagian dari ID bersama, Anda dapat mengabaikan perbedaan ini.
Dalam contoh berikut untuk Report1 dan Report2, nilai scheduled_report_time sama.
Info yang dibagikan Report1:
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://shop.dev",
"report_id": "5b052748-...",
"reporting_origin": "https://dsp.dev",
"scheduled_report_time": "1708376890",
"source_registration_time": "0",
"version": "0.1"
}
Info yang dibagikan Report2:
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://shop.dev",
"report_id": "5b052748-...",
"reporting_origin": "https://dsp.dev",
"scheduled_report_time": "1708376890",
"source_registration_time": "0",
"version": "0.1"
}
Waktu laporan terjadwal adalah "19 Februari 2024 21.08.10" untuk Report1 dan "19 Februari 2024 21.55.10" untuk Report2. Karena nilai untuk kolom scheduled_report_time dipangkas hingga jam, kedua laporan memiliki 1708376890 (nilai yang dienkode untuk "19 Februari 2024 21.00") sebagai nilai untuk kolom scheduled_report_time.
Dengan semua kolom lain dan ID pemfilteran yang sama, kedua laporan memiliki ID bersama yang sama. Karena kedua laporan memiliki ID bersama yang sama, keduanya harus disertakan dalam batch yang sama.
Jika Report1 dikelompokkan dalam batch yang sebelumnya berhasil dan Report2 diproses dalam batch berikutnya, batch dengan Report2 akan gagal dengan error PRIVACY_BUDGET_EXHAUSTED. Jika hal ini terjadi, hapus laporan dengan ID bersama yang telah berhasil dikelompokkan dalam batch sebelumnya dan coba lagi. Untuk mengetahui informasi selengkapnya tentang error ini, lihat Kode error dan mitigasi untuk Layanan Agregasi.
Kunci agregasi yang dideklarasikan sebelumnya
Saat Anda mengirimkan batch ke Layanan Agregasi, batch tersebut harus menyertakan laporan gabungan yang diterima dari origin pelaporan dan file domain output. Domain output berisi kunci, atau bucket, yang diambil dari laporan yang dapat diagregasi.
Dari sudut pandang privasi, derau ditambahkan ke semua kunci yang telah dideklarasikan sebelumnya di domain output, meskipun tidak ada laporan sebenarnya yang cocok dengan kunci tertentu. Menentukan domain output melindungi dari serangan yang mana keberadaan kunci dalam output mengungkapkan sesuatu tentang satu pengguna atau peristiwa. Misalnya, jika Anda hanya menampilkan kampanye kepada satu pengguna, menerima kunci dalam output akan mengungkapkan bahwa pengguna tersebut kemudian melakukan konversi, meskipun dengan menambahkan derau. Dengan menentukan domain ini terlebih dahulu, Anda dapat memastikan bahwa domain tersebut tidak mengungkapkan apa pun tentang kontribusi pengguna.
Anda dapat mendeklarasikan kunci 128-bit ini di Attribution Reporting API atau Private Aggregation API dan menggunakannya untuk mengenkode dimensi yang ingin Anda lacak.
Hanya kunci yang dideklarasikan sebelumnya yang dipertimbangkan untuk penggabungan dan disertakan dalam laporan ringkasan. Nilai gabungan bucket dalam laporan ringkasan telah ditambahkan derau statistik, yang tercermin dalam laporan ringkasan yang dibuat.
Jika kunci agregasi disertakan dalam file domain output, tetapi tidak ada dalam laporan batch, meskipun nilai gabungannya nol, laporan ringkasan akhir kemungkinan akan bukan nol karena derau yang ditambahkan untuk menjaga privasi.