Questa guida spiega come utilizzare la nuova funzionalità di debug del budget per la privacy per gli errori PRIVACY_BUDGET_EXHAUSTED ora disponibile nel servizio di aggregazione a partire dal giorno v2.12.0. Come documentato, mentre i report aggregabili vengono inviati a un deployment del servizio di aggregazione tramite job, l'infrastruttura si basa sul servizio di account di reporting aggregabile che si trova nei coordinatori TEE (Trusted Execution Environment) per limitare l'utilizzo del budget per la privacy. Ti ricordiamo che
il budget per la privacy determina il numero massimo di volte in cui questi report aggregabili
possono essere utilizzati per generare report di riepilogo al fine di limitare l'acquisizione di informazioni. Qualsiasi
aggregazione di un report che superi il budget di privacy allocato non andrà a buon fine e verrà visualizzato l'errore
PRIVACY_BUDGET_EXHAUSTED.
Questa guida illustra una funzionalità di debug che, a partire dal giorno v2.12.0,
genera e archivia un file JSON di assistenza dei report pertinenti che hanno contribuito a
eventuali errori PRIVACY_BUDGET_EXHAUSTED successivi riscontrati dai tuoi job.
Se ti interessa il recupero del budget, continua a leggere le nostre indicazioni pubbliche su GitHub.
Prerequisito
Se continui, la guida presuppone che tu disponga di quanto segue:
- Servizio di aggregazione
v2.12.0(o versioni successive) di cui è stato eseguito il deployment sul cloud pubblico scelto (Google Cloud Platform o Amazon Web Services).
Eseguire il debug di un job non riuscito con l'errore PRIVACY_BUDGET_EXHAUSTED
A questo punto, prevediamo che tu abbia eseguito l'endpoint getJob con l'ID
richiesta di lavoro più recente e che tu abbia ricevuto un errore PRIVACY_BUDGET_EXHAUSTED simile
alla seguente risposta. Dal servizio di aggregazione v2.12.0, dovresti avere un file di debug JSON appena generato per l'esaurimento del budget per la privacy nel tuo bucket di archiviazione cloud pubblico.
I percorsi sono indicati da return_message e seguono i seguenti formati:
- Percorso del file:
<output_data_bucket_name>/<output_data_blob_prefix>/ - Nome file:
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": ""
}
}
}
Passaggi per la risoluzione dell'errore
Individua e apri l'output
privacy_budget_exhausted_debugging_information_<utc timestamp>.json
fornito nel bucket di archiviazione cloud pubblico. Puoi trovarlo nel
percorso <output_data_bucket_name>/<output_data_blob_prefix> fornito
in return_message.
All'interno di questo file JSON, confronta le proprietà filtering_id (il valore predefinito è 0)
e relevant_shared_info con i report aggregabili di input shared_info.
Trovare una corrispondenza significa che questi report superano il budget allocato e comportano
un errore del job, pertanto devono essere filtrati nei job futuri. Tieni presente che i report
sulla corrispondenza possono comunque essere riutilizzati con un ID filtro diverso. Dopo aver
identificato e rimosso i report corrispondenti dal file AVRO dei report batch,
puoi eseguire di nuovo il job.
Di seguito è riportato un esempio di output di
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"
}
}
} ]
}
}
Passaggi successivi
Controlla se qualcun altro ha riscontrato lo stesso problema nella dashboard dello stato di Privacy Sandbox o nel repository GitHub pubblico. Se non vedi una soluzione al tuo problema con il servizio di aggregazione, segnala un problema su GitHub o invia il modulo di assistenza tecnica.