Gỡ lỗi lỗi Hạn mức quyền riêng tư đã dùng hết

Hướng dẫn này giải thích cách sử dụng tính năng gỡ lỗi ngân sách quyền riêng tư mới cho lỗi PRIVACY_BUDGET_EXHAUSTED hiện có trong Dịch vụ tổng hợp kể từ v2.12.0. Như đã ghi nhận, mặc dù các báo cáo tổng hợp được gửi vào một quá trình triển khai Dịch vụ tổng hợp thông qua các công việc, nhưng cơ sở hạ tầng này lại dựa vào Dịch vụ tài khoản báo cáo tổng hợp nằm trong các điều phối viên TEE (Môi trường thực thi đáng tin cậy) để giới hạn mức sử dụng ngân sách quyền riêng tư. Xin lưu ý rằng, ngân sách quyền riêng tư xác định số lần tối đa có thể sử dụng các báo cáo tổng hợp này để tạo báo cáo tóm tắt nhằm giới hạn việc thu thập thông tin. Mọi hoạt động tổng hợp báo cáo vượt quá ngân sách quyền riêng tư được phân bổ sẽ không thành công và báo lỗi PRIVACY_BUDGET_EXHAUSTED.

Hướng dẫn này sẽ hướng dẫn bạn về một tính năng gỡ lỗi, kể từ v2.12.0, tạo và lưu trữ một tệp JSON trợ giúp gồm các báo cáo có liên quan đã góp phần gây ra mọi lỗi PRIVACY_BUDGET_EXHAUSTED tiếp theo mà công việc của bạn gặp phải.

Nếu bạn quan tâm đến việc khôi phục ngân sách, hãy tiếp tục xem hướng dẫn công khai của chúng tôi trên GitHub

Điều kiện tiên quyết

Bằng việc tiếp tục, hướng dẫn này giả định rằng bạn có:

Gỡ lỗi một công việc không thành công do lỗi PRIVACY_BUDGET_EXHAUSTED

Tại thời điểm này, chúng tôi dự kiến rằng bạn đã thực thi điểm cuối getJob bằng mã yêu cầu công việc mới nhất và nhận lại lỗi PRIVACY_BUDGET_EXHAUSTED tương tự như phản hồi sau. Từ v2.12.0 Dịch vụ tổng hợp, bạn sẽ có một tệp JSON gỡ lỗi đã sử dụng hết ngân sách quyền riêng tư mới tạo nằm trong bộ chứa bộ nhớ trên đám mây công khai.

Các đường dẫn được nêu trong return_message và tuân theo các định dạng sau:

  • Đường dẫn tệp: <output_data_bucket_name>/<output_data_blob_prefix>/
  • Tên tệp: 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": ""
    }
  }
}

Các bước khắc phục lỗi

Tìm và mở đầu ra privacy_budget_exhausted_debugging_information_<utc timestamp>.json được cung cấp cho bạn trong bộ nhớ trên đám mây công khai. Bạn có thể tìm thấy tệp này tại đường dẫn <output_data_bucket_name>/<output_data_blob_prefix> được cung cấp trong return_message. Trong tệp JSON đó, hãy so sánh thuộc tính filtering_id (mặc định là 0) và relevant_shared_info với báo cáo tổng hợp đầu vào shared_info. Việc tìm thấy kết quả trùng khớp có nghĩa là các báo cáo đó vượt quá ngân sách được phân bổ và dẫn đến lỗi công việc, đồng thời cần được lọc ra trong các công việc trong tương lai. Xin lưu ý rằng bạn vẫn có thể sử dụng lại các báo cáo khớp bằng một mã lọc khác. Sau khi xác định và xoá các báo cáo trùng khớp khỏi tệp AVRO báo cáo hàng loạt, bạn có thể chạy lại công việc của mình.

Sau đây là ví dụ về kết quả của 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"
       }
     }
   } ]
 }
}

Các bước tiếp theo

Kiểm tra xem có ai khác gặp phải vấn đề tương tự trên Trang tổng quan về trạng thái của Hộp cát quyền riêng tư hay trên kho lưu trữ GitHub công khai hay không. Nếu bạn không thấy giải pháp cho vấn đề về Dịch vụ tổng hợp, hãy gửi vấn đề trên GitHub hoặc gửi biểu mẫu hỗ trợ kỹ thuật.