Error Anggaran Privasi Habis untuk Men-debug

Panduan ini menjelaskan cara menggunakan fitur baru untuk men-debug anggaran privasi untuk error PRIVACY_BUDGET_EXHAUSTED yang kini tersedia di Layanan Agregasi, mulai v2.12.0. Seperti yang didokumentasikan, meskipun laporan yang dapat diagregasi dikirimkan ke deployment Aggregation Service melalui tugas, infrastruktur mengandalkan Aggregatable Reporting Account Service yang berada di koordinator TEE (Trusted Execution Environment) untuk membatasi penggunaan anggaran privasi. Sebagai pengingat, anggaran privasi menentukan jumlah maksimum penggunaan laporan yang dapat digabungkan ini untuk membuat laporan ringkasan guna membatasi perolehan informasi. Agregasi laporan di luar anggaran privasi yang dialokasikan akan gagal dengan error PRIVACY_BUDGET_EXHAUSTED.

Panduan ini memandu Anda menggunakan fitur proses debug yang, mulai v2.12.0, membuat dan menyimpan file JSON pembantu 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 v2.12.0 Aggregation Service, Anda akan memiliki file JSON penelusuran bug yang baru dibuat dan persediaan privasinya habis yang terletak di bucket penyimpanan cloud 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

Cari dan buka output privacy_budget_exhausted_debugging_information_<utc timestamp>.json yang diberikan kepada Anda di bucket penyimpanan cloud publik Anda. Hal ini dapat ditemukan di jalur <output_data_bucket_name>/<output_data_blob_prefix>yang diberikan di return_message. Dalam file JSON tersebut, bandingkan properti filtering_id (defaultnya 0) dan relevant_shared_info dengan shared_info laporan yang dapat diagregasi input. Jika kecocokan ditemukan, berarti laporan tersebut melebihi anggaran yang dialokasikan dan menyebabkan kegagalan tugas, sehingga perlu difilter dalam tugas mendatang. Perhatikan bahwa laporan yang cocok masih dapat digunakan kembali dengan ID pemfilteran yang berbeda. Setelah mengidentifikasi dan menghapus laporan kecocokan dari file laporan batch AVRO, Anda siap menjalankan kembali 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 masalah Layanan Agregasi, ajukan masalah GitHub atau kirimkan formulir dukungan teknis.