Z tego przewodnika dowiesz się, jak używać nowej funkcji debugowania budżetu prywatności w przypadku błędów PRIVACY_BUDGET_EXHAUSTED
, która jest teraz dostępna w usłudze agregacji (od v2.12.0
). Jak opisano w dokumentacji, chociaż raporty podlegające agregacji są przesyłane do wdrożenia usługi do agregacji za pomocą zadań, infrastruktura korzysta z usługi konta raportowania podlegającego agregacji znajdującej się w koordynatorze TEE (Trusted Execution Environment), aby ograniczyć wykorzystanie budżetu na prywatność. Przypominamy, że budżet prywatności określa maksymalną liczbę razy, jak często można użyć tych raportów do generowania raportów podsumowujących, aby ograniczyć uzyskiwanie informacji. Każda agregacja raportu wykraczająca poza przypisany budżet na potrzeby prywatności zakończy się niepowodzeniem z błędem PRIVACY_BUDGET_EXHAUSTED
.
Ten przewodnik zawiera informacje o funkcji debugowania, która od wersji v2.12.0
generuje i przechowuje pomocniczy plik JSON z odpowiednimi raportami, które przyczyniły się do wystąpienia kolejnych błędów PRIVACY_BUDGET_EXHAUSTED
w zadaniach.
Jeśli chcesz odzyskać budżet, zapoznaj się z publiczną instrukcją na GitHubie.
Wymagania wstępne
W tym przewodniku przyjęto założenie, że masz:
- Usługa agregacji
v2.12.0
(lub nowsza) wdrożona w wybranej chmurze publicznej (Google Cloud Platform lub Amazon Web Services).
Debugowanie zadania, które zakończyło się niepowodzeniem z błędem PRIVACY_BUDGET_EXHAUSTED
Zakładamy, że wykonałeś/wykonałaś wywołanie punktu końcowego getJob
z Twoim najnowszym identyfikatorem zadania i otrzymałeś/otrzymałaś błąd PRIVACY_BUDGET_EXHAUSTED
podobny do tego: Usługa agregacji v2.12.0
powinna wygenerować nowy plik JSON
do debugowania, który wyczerpuje budżet prywatności. Plik ten powinien znajdować się w publicznym zasobniku Cloud Storage.
Ścieżki są podawane przez return_message i mają następujący format:
- Ścieżka do pliku:
<output_data_bucket_name>/<output_data_blob_prefix>/
- Nazwa pliku:
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": ""
}
}
}
Kroki rozwiązywania problemów
Znajdź i otwórz dane wyjściowe privacy_budget_exhausted_debugging_information_<utc timestamp>.json
, które zostały Ci przekazane w publicznym zasobie Cloud Storage. Znajdziesz go na ścieżce <output_data_bucket_name>/<output_data_blob_prefix>
w koncie return_message
.
W tym pliku JSON porównaj właściwości filtering_id
(domyślnie 0) i relevant_shared_info
z wejściowymi raportami podlegającymi agregacji shared_info
.
Jeśli znajdziesz dopasowanie, oznacza to, że te raporty przekraczają przydzielony budżet i prowadzą do niepowodzenia zadania. Należy je odfiltrować w przyszłych zadaniach. Pamiętaj, że raporty z pasującymi danymi można nadal używać z innym identyfikatorem filtrowania. Po zidentyfikowaniu i usunięciu pasujących raportów z pliku raportów zbiorczych AVRO
możesz ponownie uruchomić zadanie.
Poniżej znajdziesz przykład danych wyjściowych funkcji 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"
}
}
} ]
}
}
Następne kroki
Sprawdź, czy ktoś inny nie napotkał tego samego problemu w panelu stanu Privacy Sandbox lub w publicznym repozytorium GitHub. Jeśli nie widzisz rozwiązania problemu z usługą agregacji, prześlij zgłoszenie na GitHubie lub wypełnij formularz pomocy technicznej.