이 가이드에서는 v2.12.0
부터 집계 서비스에서 사용할 수 있는 PRIVACY_BUDGET_EXHAUSTED
오류에 관한 새로운 개인 정보 보호 예산 디버깅 기능을 사용하는 방법을 설명합니다. 문서에 설명된 대로 집계 가능한 보고서는 작업을 통해 집계 서비스의 배포에 제출되지만, 인프라는 개인 정보 보호 예산 사용량을 제한하기 위해 TEE (신뢰할 수 있는 실행 환경) 코디네이터에 있는 집계 가능한 보고 계정 서비스를 사용합니다. 참고로 개인 정보 보호 예산은 요약 보고서를 생성하는 데 이러한 집계 가능한 보고서를 사용할 수 있는 최대 횟수를 결정하여 정보 획득을 제한합니다. 할당된 개인 정보 보호 예산을 초과하는 보고서를 집계하면 PRIVACY_BUDGET_EXHAUSTED
오류가 발생하여 실패합니다.
이 가이드에서는 v2.12.0
부터 작업에서 발생한 후속 PRIVACY_BUDGET_EXHAUSTED
오류의 원인이 된 관련 보고서의 도우미 JSON 파일을 생성하고 저장하는 디버깅 기능을 설명합니다.
예산 복구에 관심이 있는 경우 GitHub의 공개 안내를 참고하세요.
기본 요건
이 가이드를 계속 진행하면 다음을 갖추었다고 가정합니다.
- 선택한 퍼블릭 클라우드(Google Cloud Platform 또는 Amazon Web Services)에 배포된 집계 서비스
v2.12.0
이상
PRIVACY_BUDGET_EXHAUSTED 오류로 실패한 작업 디버그
이 시점에서 최신 작업 요청 ID로 getJob
엔드포인트를 실행하고 다음 응답과 유사한 PRIVACY_BUDGET_EXHAUSTED
오류가 반환되었을 것으로 예상됩니다. 집계 서비스 v2.12.0
에서 새로 생성된 개인 정보 보호 예산 소진 디버깅 JSON
파일이 공개 Cloud Storage 버킷에 있어야 합니다.
경로는 return_message에 의해 지정되며 다음 형식을 따릅니다.
- 파일 경로:
<output_data_bucket_name>/<output_data_blob_prefix>/
- 파일 이름:
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": ""
}
}
}
오류 해결 단계
공개 Cloud Storage 버킷에서 제공된 privacy_budget_exhausted_debugging_information_<utc timestamp>.json
출력을 찾아 엽니다. 이는 return_message
에 제공된 경로 <output_data_bucket_name>/<output_data_blob_prefix>
에서 확인할 수 있습니다.
이 JSON 파일 내에서 filtering_id
(기본값: 0) 및 relevant_shared_info
속성을 집계 가능한 입력 보고서 shared_info
와 비교합니다.
일치 항목을 찾으면 이러한 보고서가 할당된 예산을 초과하여 작업 실패를 야기하며 향후 작업에서 필터링되어야 함을 의미합니다. 일치하는 보고서는 다른 필터링 ID로 계속 재사용할 수 있습니다. 일괄 보고서 AVRO
파일에서 일치하는 보고서를 식별하고 삭제한 후 작업을 다시 실행할 수 있습니다.
다음은 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"
}
}
} ]
}
}
다음 단계
개인 정보 보호 샌드박스 상태 대시보드 또는 공개 GitHub 저장소에서 다른 사용자에게도 동일한 문제가 발생했는지 확인합니다. 집계 서비스 문제의 해결 방법을 찾을 수 없는 경우 GitHub 문제를 신고하거나 기술 지원 양식을 제출하세요.