Error Anggaran Privasi Habis untuk Men-debug

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:

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.