В этом руководстве объясняется, как использовать новую функцию отладки бюджета конфиденциальности для ошибок PRIVACY_BUDGET_EXHAUSTED
, которая теперь доступна в Aggregation Service, начиная с v2.12.0
. Как указано в документации, в то время как агрегируемые отчеты отправляются в развертывание Aggregation Service через задания, инфраструктура полагается на Aggregatable Reporting Account Service, расположенную в координаторах TEE (Trusted Execution Environment), для ограничения использования бюджета конфиденциальности. Напоминаем, что бюджет конфиденциальности определяет максимальное количество раз, когда эти агрегируемые отчеты могут использоваться для создания сводных отчетов, чтобы ограничить получение информации. Любое агрегирование отчета за пределами выделенного ему бюджета конфиденциальности завершится ошибкой PRIVACY_BUDGET_EXHAUSTED
.
В этом руководстве описывается функция отладки, которая, начиная с v2.12.0
, генерирует и сохраняет вспомогательный JSON-файл соответствующих отчетов, которые способствовали возникновению любых последующих ошибок PRIVACY_BUDGET_EXHAUSTED
, возникших в ходе выполнения ваших заданий.
Если вас интересует восстановление бюджета , продолжайте читать наше публичное руководство на GitHub
Предварительное условие
При дальнейшем прочтении руководства предполагается, что у вас есть следующее:
- Aggregation Service
v2.12.0
(или более поздняя версия), развернутая в выбранном вами публичном облаке ( Google Cloud Platform или Amazon Web Services ).
Отладка задания, завершившегося ошибкой PRIVACY_BUDGET_EXHAUSTED
На этом этапе мы ожидаем, что вы выполнили конечную точку getJob
с вашим последним идентификатором запроса на работу и получили ошибку PRIVACY_BUDGET_EXHAUSTED
, похожую на следующую. Из Aggregation Service v2.12.0
у вас должен быть недавно сгенерированный файл JSON
для отладки с исчерпанным бюджетом конфиденциальности, расположенный в вашем контейнере публичного облачного хранилища.
Пути указываются в 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": ""
}
}
}
Действия по устранению ошибок
Найдите и откройте вывод privacy_budget_exhausted_debugging_information_<utc timestamp>.json
предоставленный вам в вашем контейнере публичного облачного хранилища. Его можно найти по пути <output_data_bucket_name>/<output_data_blob_prefix>
указанном в return_message
. В этом файле JSON сравните свойства filtering_id
(по умолчанию 0) и relevant_shared_info
с входными агрегируемыми отчетами shared_info
. Нахождение соответствия означает, что эти отчеты превышают выделенный бюджет и приводят к сбою задания, и их необходимо отфильтровать в будущих заданиях. Обратите внимание, что соответствующие отчеты по-прежнему можно использовать повторно с другим идентификатором фильтрации. После того как вы определили и удалили соответствующие отчеты из файла 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"
}
}
} ]
}
}
Следующие шаги
Проверьте, не сталкивался ли кто-нибудь еще с такой же проблемой на панели мониторинга состояния Privacy Sandbox или в публичном репозитории GitHub . Если вы не видите решения вашей проблемы с Aggregation Service, отправьте запрос на GitHub или форму технической поддержки .