Panduan ini menjelaskan cara menggunakan fitur proses debug anggaran privasi baru untuk
error PRIVACY_BUDGET_EXHAUSTED
yang kini tersedia di Layanan Agregasi,
mulai v2.12.0
. Seperti yang didokumentasikan, saat laporan agregat dikirim ke deployment Layanan Agregasi melalui tugas, infrastruktur mengandalkan Layanan Akun Pelaporan Agregat yang terletak di koordinator TEE (Trusted Execution Environment), untuk membatasi penggunaan anggaran privasi. Sebagai pengingat,
anggaran privasi menentukan jumlah maksimum penggunaan laporan gabungan ini
untuk membuat laporan ringkasan guna membatasi perolehan informasi. Agregasi
laporan apa pun di luar anggaran privasi yang dialokasikan akan gagal dengan
error PRIVACY_BUDGET_EXHAUSTED
.
Panduan ini memandu Anda melalui fitur proses debug yang, mulai v2.12.0
,
membuat dan menyimpan file JSON helper dari laporan relevan yang berkontribusi pada
error PRIVACY_BUDGET_EXHAUSTED
berikutnya yang dialami oleh tugas Anda.
Jika Anda tertarik dengan pemulihan anggaran, lanjutkan ke panduan publik kami di GitHub
Prasyarat
Dengan melanjutkan, panduan ini mengasumsikan bahwa Anda memiliki hal berikut:
- Layanan Agregasi
v2.12.0
(atau yang lebih baru) yang di-deploy di cloud publik yang Anda pilih (Google Cloud Platform atau Amazon Web Services).
Men-debug tugas yang gagal dengan error PRIVACY_BUDGET_EXHAUSTED
Pada tahap ini, kami berharap Anda telah menjalankan endpoint getJob
dengan ID permintaan tugas terbaru, dan mendapatkan error PRIVACY_BUDGET_EXHAUSTED
yang mirip dengan respons berikut. Dari Aggregation Service v2.12.0
, Anda akan memiliki file JSON
proses debug persediaan privasi yang baru dibuat dan habis di bucket cloud storage publik Anda.
Jalur dinyatakan oleh return_message dan mengikuti format berikut:
- Jalur file:
<output_data_bucket_name>/<output_data_blob_prefix>/
- Nama file:
privacy_budget_exhausted_<request_received_at_timestamp>.json
{
"job_status": "FINISHED",
"request_received_at": <utc timestamp>,
"request_updated_at": <utc timestamp>,
"job_request_id": <customer assigned job id>,
…
"request_processing_started_at": <utc timestamp>,
"result_info": {
"return_code": "PRIVACY_BUDGET_EXHAUSTED",
"return_message": "com.google.aggregate.adtech.worker.exceptions.AggregationJobProcessException: Insufficient privacy budget for one or more aggregatable reports. No aggregatable report can appear in more than one aggregation job. Information related to reports that do not have budget can be found in the following file:
File path: ags-privacy-budget-codelab/output-bucket/output-domain Filename: privacy budget exhausted debugging information <utc timestamp> \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.consumePrivacyBudgetUnits(ConcurrentAggregationProcessor.java:525) \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.process(ConcurrentAggregationProcessor.java:319) \n com.google.aggregate.adtech.worker.WorkerPullWorkService.run(WorkerPullWorkService.java:157)",
"error_summary": {
"error_counts": "",
"error_messages": ""
}
}
}
Langkah-Langkah Penyelesaian Error
Temukan dan buka output privacy_budget_exhausted_debugging_information_<utc timestamp>.json
yang diberikan kepada Anda di bucket cloud storage publik. Ini dapat ditemukan di
jalur <output_data_bucket_name>/<output_data_blob_prefix>
yang disediakan
di return_message
.
Dalam file JSON tersebut, bandingkan properti filtering_id
(defaultnya 0) dan relevant_shared_info
dengan laporan agregat input shared_info
.
Menemukan kecocokan berarti laporan tersebut melebihi anggaran yang dialokasikan dan menyebabkan
kegagalan tugas, dan perlu difilter di tugas mendatang. Perhatikan bahwa laporan yang cocok
masih dapat digunakan kembali dengan ID pemfilteran yang berbeda. Setelah
mengidentifikasi dan menghapus laporan yang cocok dari file AVRO
laporan batch,
Anda siap untuk menjalankan ulang tugas.
Berikut adalah contoh
output privacy_budget_exhausted_debugging_information_<utc timestamp>.json
.
{
"privacy_budget_exhausted_info" : {
"aggregatable_input_budget_consumption_info" : [ {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738814400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
}, {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738796400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
} ]
}
}
Langkah Berikutnya
Periksa apakah ada orang lain yang mengalami masalah yang sama di Dasbor Status Privacy Sandbox atau di repositori GitHub publik. Jika Anda tidak melihat penyelesaian untuk masalah Layanan Agregasi, laporkan masalah GitHub atau kirimkan formulir dukungan teknis.