Fehler „Datenschutzbudget aufgebraucht“ beheben

In diesem Leitfaden wird beschrieben, wie Sie die neue Funktion zum Debuggen des Datenschutzbudgets für PRIVACY_BUDGET_EXHAUSTED-Fehler verwenden, die ab v2.12.0 im Aggregationsdienst verfügbar ist. Wie dokumentiert, werden aggregierbare Berichte zwar über Jobs an eine Bereitstellung des Aggregationsdienstes gesendet, die Infrastruktur stützt sich jedoch auf den Aggregatable Reporting Account Service, der sich in den TEE-Koordinatoren (Trusted Execution Environment) befindet, um die Nutzung des Datenschutzbudgets zu begrenzen. Zur Erinnerung: Das Datenschutzbudget bestimmt, wie oft diese aggregierbaren Berichte verwendet werden können, um Zusammenfassungsberichte zu generieren und so den Informationsgewinn zu begrenzen. Jede Aggregation eines Berichts, die über das zugewiesene Privacy-Budget hinausgeht, schlägt mit dem Fehler PRIVACY_BUDGET_EXHAUSTED fehl.

In dieser Anleitung wird eine Debugging-Funktion beschrieben, mit der ab dem v2.12.0 eine JSON-Hilfsdatei mit relevanten Berichten generiert und gespeichert wird, die zu nachfolgenden PRIVACY_BUDGET_EXHAUSTED-Fehlern in Ihren Jobs beigetragen haben.

Wenn Sie sich für die Budgetwiederherstellung interessieren, lesen Sie unsere öffentliche Anleitung auf GitHub.

Voraussetzung

Im weiteren Verlauf des Leitfadens wird davon ausgegangen, dass Sie Folgendes haben:

Fehlerbehebung bei einem Job, der mit dem Fehler „PRIVACY_BUDGET_EXHAUSTED“ fehlgeschlagen ist

An diesem Punkt gehen wir davon aus, dass Sie den getJob-Endpunkt mit Ihrer aktuellen Jobanfrage-ID ausgeführt haben und einen PRIVACY_BUDGET_EXHAUSTED-Fehler ähnlich der folgenden Antwort erhalten haben. Im Aggregationsdienst v2.12.0 sollte sich in Ihrem öffentlichen Cloud Storage-Bucket eine neu generierte Datei JSON befinden, in der das ausgeschöpfte Datenschutzbudget debuggt wird.

Die Pfade werden von „return_message“ angegeben und haben die folgenden Formate:

  • Dateipfad: <output_data_bucket_name>/<output_data_blob_prefix>/
  • Dateiname: 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": ""
    }
  }
}

Schritte zur Fehlerbehebung

Suchen Sie die privacy_budget_exhausted_debugging_information_<utc timestamp>.json-Ausgabe, die Ihnen in Ihrem öffentlichen Cloud Storage-Bucket zur Verfügung gestellt wurde, und öffnen Sie sie. Sie finden sie unter dem Pfad <output_data_bucket_name>/<output_data_blob_prefix>, der in return_message angegeben ist. Vergleichen Sie in dieser JSON-Datei die Attribute filtering_id (Standardwert: 0) und relevant_shared_info mit den aggregierbaren Eingabeberichten shared_info. Wenn eine Übereinstimmung gefunden wird, bedeutet das, dass diese Berichte das zugewiesene Budget überschreiten und zu einem Jobfehler führen. Sie müssen in zukünftigen Jobs herausgefiltert werden. Die entsprechenden Berichte können weiterhin mit einer anderen Filter-ID wiederverwendet werden. Nachdem Sie die übereinstimmenden Berichte in Ihrer AVRO-Datei für Batchberichte identifiziert und entfernt haben, können Sie den Job noch einmal ausführen.

Im Folgenden finden Sie ein Beispiel für die Ausgabe von 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"
       }
     }
   } ]
 }
}

Nächste Schritte

Sehen Sie im Status-Dashboard für die Privacy Sandbox oder im öffentlichen GitHub-Repository nach, ob das Problem bereits bei anderen aufgetreten ist. Wenn Sie keine Lösung für Ihr Problem mit dem Aggregationsdienst finden, erstellen Sie ein GitHub-Problem oder senden Sie das Formular für den technischen Support.