В этом руководстве объясняется, как использовать новую функцию отладки бюджета конфиденциальности для ошибок PRIVACY_BUDGET_EXHAUSTED
, которая теперь доступна в Службе агрегирования, начиная с v2.12.0
. Как указано в документах, хотя агрегированные отчеты передаются в службу агрегации посредством заданий, инфраструктура полагается на службу учетных записей агрегированной отчетности, расположенную в координаторах TEE (Trusted Execution Environment), чтобы ограничить использование бюджета конфиденциальности. Напоминаем, что бюджет конфиденциальности определяет максимальное количество раз, когда эти агрегированные отчеты могут использоваться для создания сводных отчетов с целью ограничения получения информации. Любое агрегирование отчета за пределами выделенного бюджета конфиденциальности завершится ошибкой PRIVACY_BUDGET_EXHAUSTED
.
В этом руководстве рассказывается о функции отладки, которая, начиная с v2.12.0
, генерирует и сохраняет вспомогательный файл JSON с соответствующими отчетами, которые способствовали любым последующим ошибкам PRIVACY_BUDGET_EXHAUSTED
с которыми столкнулись ваши задания.
Если вы заинтересованы в возмещении бюджета , ознакомьтесь с нашим общедоступным руководством на GitHub.
Предварительное условие
Продолжая, руководство предполагает, что у вас есть следующее:
- Служба агрегации
v2.12.0
(или более поздней версии), развернутая в выбранном вами публичном облаке ( Google Cloud Platform или Amazon Web Services ).
Отладка задания, которое завершилось с ошибкой PRIVACY_BUDGET_EXHAUSTED.
На этом этапе мы ожидаем, что вы выполнили конечную точку getJob
с идентификатором последнего запроса задания и получили ошибку PRIVACY_BUDGET_EXHAUSTED
аналогичную следующему ответу. Начиная с Службы агрегирования 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 . Если вы не видите решения проблемы со службой агрегации, сообщите о проблеме на GitHub или отправьте форму технической поддержки .