Bei der Arbeit mit dem Aggregation Service können Probleme auftreten, die auf verschiedene Faktoren zurückzuführen sind, z. B. auf die Formatierung von Berichten, Probleme mit der Ausgabedomain und Probleme mit dem Koordinator. Es ist wichtig, die Fehlerquelle und alle darin enthaltenen Metadaten zu kennen, um das Problem genau zu diagnostizieren.
Themen des Leitfadens:
- Einrichtung der Client Measurement API überprüfen
- Probleme bei der Einrichtung des Berichterstellungsursprungs beheben
- Probleme mit zusammengefassten Berichten beheben
- Bereitstellungsversion prüfen
Einrichtung der Client Measurement API überprüfen
Nachdem Sie überprüft haben, ob Ihr Ursprungsserver ordnungsgemäß registriert wurde, führen Sie die folgenden Schritte aus:
Prüfen Sie, wie Sie Berichte auslösen. Prüfen Sie, ob Sie das richtige Berichtsformat für die verwendete API erhalten:
- Attribution Reporting API
- Prüfen Sie, ob Sie die Quelle (Event und Summary) für die Attribution Reporting API erfolgreich registriert haben. Wenn Sie die Triggerregistrierung (Event und Summary) durchführen möchten, prüfen Sie mit dem Header-Validierungstool, ob das an
Attribution-Reporting-Register-Trigger
übergebene JSON korrekt ist. Weitere Informationen zu Zusammenfassungsberichten der Attribution Reporting API
- Prüfen Sie, ob Sie die Quelle (Event und Summary) für die Attribution Reporting API erfolgreich registriert haben. Wenn Sie die Triggerregistrierung (Event und Summary) durchführen möchten, prüfen Sie mit dem Header-Validierungstool, ob das an
- Private Aggregation API
- Berichte in der Private Aggregation API können mit der Funktion
contributeToHistogram
erstellt werden. Prüfen Sie, ob Sie den Bucket-Schlüssel und ‑Wert übergeben. Der Bucket-Schlüssel muss das FormatBigInt
haben. Weitere Informationen zur Private Aggregation API
- Berichte in der Private Aggregation API können mit der Funktion
- Attribution Reporting API
Wenn Sie Berichte wie empfohlen auslösen, das Problem aber weiterhin auftritt, prüfen Sie, ob in der Chrome-Entwicklerkonsole auf den Tabs „Konsole“ und „Netzwerk“ Fehler angezeigt werden.
Wenn Sie weitere Unterstützung bei der Fehlerbehebung für diese Client-APIs benötigen, lesen Sie die Anleitung zur Fehlerbehebung für die Attribution Reporting API und die Private Aggregation API + Shared Storage.
Fehlerbehebung bei der Einrichtung des Berichterstellungsursprungs
Der Ursprungsserver für Berichte ist der Ort, an dem Sie die entsprechenden .well-known
-Endpunkte deklariert haben, an die aggregierbare Berichte gesendet werden. Prüfen Sie, ob Ihr bereitgestellter Ursprungsserver für Berichte ordnungsgemäß registriert wurde.
Gehen bei Ihrer Berichterstellungsquelle Berichte ein?
Prüfen Sie, ob Ihr bereitgestellter Ursprungsserver für Berichte ordnungsgemäß registriert wurde. Auf diesem Server haben Sie die entsprechenden .well-known
-Endpunkte deklariert, an die aggregierbare Berichte gesendet werden.
Clientseitige Measurement API | Abstimmung des aggregierbaren Endpunkts |
---|---|
Attribution Reporting | POST /.well-known/attribution-reporting/report-aggregate-attribution |
Private Aggregation + Shared Storage (Kombination) | POST /.well-known/private-aggregation/report-shared-storage |
Private Aggregation + Protected Audience (Kombination) | POST /.well-known/private-aggregation/report-protected-audience |
Nachdem Sie überprüft haben, ob Ihr Ursprungsserver ordnungsgemäß registriert wurde, führen Sie die folgenden Schritte aus:
Prüfen Sie, wie Sie Berichte auslösen. Prüfen Sie, ob Sie das richtige Berichtsformat für die verwendete API erhalten:
Wenn Sie Berichte wie empfohlen auslösen, das Problem aber weiterhin auftritt, prüfen Sie, ob in der Chrome-Entwicklerkonsole auf den Tabs „Konsole“ und „Netzwerk“ Fehler angezeigt werden.
Wenn Sie weitere Unterstützung bei der Fehlerbehebung für diese Client-APIs benötigen , folgen Sie der Anleitung zur Fehlerbehebung für die Attribution Reporting API und der Private Aggregation API + Shared Storage.
Fehlerbehebung für zusammengefasste Berichte
Zusammengefasste Berichte werden von den clientseitigen Measurement APIs generiert und an Ihren Ursprungsserver für Berichte gesendet. Diese Berichte sollten von Ihrem Reporting-Endpunkt in das AVRO
-Format konvertiert werden. Wenn es Probleme mit dieser Conversion gibt oder die Berichte selbst nicht intakt sind, werden möglicherweise Fehler im Aggregation Service angezeigt.
Werden Ihre aggregierbaren Berichte richtig konvertiert?
Prüfen Sie, ob Ihr Berichtsendpunkt (.well-known/…
) den angegebenen aggregierbaren JSON-Bericht korrekt in AVRO
konvertiert.
Die folgenden API-Fehler können aufgrund dieses Problems auftreten:
Fehler | DECRYPTION_ERROR |
---|---|
Beispiel |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_ERROR",
"count": 1,
"description": "Unable to decrypt the report. This may be caused by: tampered aggregatable report shared info, corrupt encrypted report, or other such issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
],
"error_messages": []
}
}
|
Scheck |
Dies kann aufgrund von Entschlüsselungsfehlern auftreten, die dadurch verursacht werden können, dass AVRO-Berichte nicht korrekt generiert wurden. Das gilt sowohl für aggregierbare AVRO-Berichte als auch für AVRO-Berichte für Ausgabedomänen. Werden die aggregierbaren AVRO-Berichte richtig generiert? Die Nutzlast muss base64-decodiert und in ein Byte-Array konvertiert werden. Prüfen Sie, ob der Bericht im Avro-Format vorliegt. Prüfen Sie außerdem, ob die Ausgabedomain AVRO korrekt ist. Buckets werden in das Unicode-Hex-Format mit Escapezeichen und dann in ein Byte-Array konvertiert.
Wenn Sie mehr als eine Fehleranzahl sehen, können Sie auf der GitHub-Seite des Aggregationsdienstes weitere Informationen zu den Fehlern aufrufen.
|
Fehler | DECRYPTION_KEY_NOT_FOUND |
---|---|
Beispiel |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [{
"category": "DECRYPTION_KEY_NOT_FOUND",
"count": 1,
"description": "Could not find decryption key on private key endpoint."
}, {
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}],
"error_messages": []
}
}
|
Scheck |
Attribution Reporting API
Bei der Attribution Reporting API kann dieser Fehler durch ein Problem bei der Triggerregistrierung verursacht werden. Prüfen Sie, ob der Trigger mit dem richtigen Cloud-Anbieter registriert wurde. Verwenden Sie dazu das Feld „aggregation_coordinator_origin“ (Anleitung). Möglicherweise stellen Sie auch AWS-verschlüsselte Berichte für die Google Cloud-Bereitstellung des Aggregationsdienstes oder Google Cloud-verschlüsselte Berichte für die AWS-Bereitstellung bereit. Bitten Sie sie, zu prüfen, welcher öffentliche Schlüsselendpunkt zum Verschlüsseln der aggregierbaren Berichte verwendet wurde. In Google Cloud sollte das Feld „aggregation_coordinator_origin“ im aggregierbaren Bericht https://publickeyservice.msmt.gcp.privacysandboxservices.com lauten. In AWS sollte es https://publickeyservice.msmt.aws.privacysandboxservices.com lauten. Private Aggregation APIFür die Private Aggregation API müssen Sie `aggregationCoordinatorOrigin` anhand des Beispiels im Abschnitt „Aggregation coordinator choice“ (Auswahl des Aggregationskoordinators) im Explainer zur Private Aggregation API definieren. Geben Sie https://publickeyservice.msmt.gcp.privacysandboxservices.com als Beispiel:
sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
Fehler | DECRYPTION_KEY_FETCH_ERROR |
---|---|
Beispiel |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_KEY_FETCH_ERROR",
"count": 1,
"description": "Fetching the decryption key for report decryption failed. This can happen using an unapproved aggregation service binary, running the aggregation service binary in debug mode, key corruption or service availability issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
]
}
}
|
Scheck | Bei Problemen mit nicht genehmigten Binärdateien oder im Debug-Modus wird das Problem durch die Verwendung der richtigen Binärdatei behoben. Hier finden Sie eine Anleitung zur Verwendung eines vorgefertigten AMI oder zum Erstellen eines eigenen AMI. |
Gehen Sie so vor:
Mit dem Tool
aggregatable_report_converter
können Sie die aggregierbaren Berichte, die Sie vom .well-known-Endpunkt erfasst haben, in AVRO konvertieren und die Ausgabedomänenschlüssel erstellen. Hinweis: Ausgabedomänendateien sollten ein 16‑Byte-Bytestring im Big-Endian-Format sein.Folgen Sie der Anleitung im Codelab für Ihren Public-Cloud-Anbieter, um Ihre Debug-Berichte zu erfassen und einen Aggregation Service-Job mit Ihren Ausgabedomänenschlüsseln auszuführen: a. Google Cloud: Folgen Sie den Schritten 3.1.2 bis 3.2.3 des Google Cloud-Codelab für den Aggregationsdienst. b. Amazon Web Services: Folgen Sie den Schritten 4.2 bis 5.3 des AWS-Codelab für den Aggregationsdienst.
Wenn eine SUCCESS
-Antwort zurückgegeben wird, funktioniert die Conversion.
Sind Ihre aggregierbaren Berichte intakt?
Prüfen Sie, ob Ihr aggregierter Bericht, die Ausgabedomainschlüssel und die freigegebenen Informationen intakt sind. Beispielcode für die Umwandlung aggregierbarer Berichte und die Erstellung von Domänendateien
Die folgenden API-Fehler können bei diesem Problem auftreten:
Fehler | INPUT_DATA_READ_FAILED |
---|---|
Endpunkt | createJob |
Scheck |
Sind die Felder input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name und output_data_blob_prefix in der createJob -Anfrage korrekt? Sind die zu verarbeitenden Berichte am Standort der Eingabedaten für Berichte verfügbar? Haben Sie die Berechtigung, Daten vom Speicherort für die Berichte und die Ausgabedomain zu lesen?
|
Gehen Sie so vor:
Zusammengefassten Bericht prüfen:
- Generieren Sie aggregierte Berichte und verwenden Sie das
aggregatable_report_converter
-Tool, um die Ausgabedomäne in dasAVRO
-Format zu konvertieren. - Führen Sie eine
createJob
-Anfrage mit diesem aggregierbaren Bericht und der Ausgabedomaindatei aus. - Wenn
SUCCESS
zurückgegeben wird, ist der aggregierbare Bericht intakt. Wenn ein Fehler zurückgegeben wird, liegt entweder ein Problem mit Ihrem aggregierbaren Bericht oder mit dem Bericht und der Domain vor. - Fahren Sie mit dem nächsten Schritt fort, um die Domänendatei zu prüfen.
- Generieren Sie aggregierte Berichte und verwenden Sie das
Ausgabedatei für Domain prüfen:
- Generieren Sie eine Ausgabedomänendatei und verwenden Sie das Tool
aggregatable_report_converter
, um den aggregierbaren Bericht zu erstellen. - Führen Sie eine
createJob
-Anfrage mit diesem aggregierbaren Bericht und der Ausgabedomaindatei aus. - Wenn
SUCCESS
zurückgegeben wird, ist die Ausgabedomain intakt und es liegt ein Problem mit Ihrem Code zum Erstellen des aggregierbaren Berichts vor. - Fahre mit dem nächsten Schritt fort, um die
shared_info
zu prüfen.
- Generieren Sie eine Ausgabedomänendatei und verwenden Sie das Tool
Freigegebene Informationen überprüfen:
- Prüfen Sie, ob Sie Berichte mit aktivierter Fehlerbehebung haben. In Berichten, in denen das Debugging aktiviert ist, ist das Feld
debug_cleartext_payload
verfügbar. - Erstellen Sie einen Debugbericht für die Verwendung mit dem lokalen Testtool und verwenden Sie
debug_cleartext_payload
als Nutzlast. - Führen Sie das lokale Testtool mit Ihrer Domänendatei aus. Wenn es sich um eine
SUCCESS
handelt, wurde die Dateishared_info
manipuliert.
- Prüfen Sie, ob Sie Berichte mit aktivierter Fehlerbehebung haben. In Berichten, in denen das Debugging aktiviert ist, ist das Feld
Wenn Sie weitere Fehler oder Manipulationen vermuten, sammeln Sie den JSON-Zusammenfassungsbericht, den Domainschlüssel, den generierten zusammengefassten AVRO
-Bericht und die Ausgabedomäne und fahren Sie mit den nächsten Schritten fort.
Neue Bereitstellungsversion prüfen
Prüfen Sie, ob Ihre Version des Aggregationsdienstes noch unterstützt wird. Nachdem Sie die verwendete Version ermittelt haben, sehen Sie in der Liste der Aggregation Service-Releases nach, ob Ihre Version die Warnung zum Ende des Supports enthält: This release has reached its end of support on { date }
. Die folgenden Anleitungen zum Ermitteln der bereitgestellten Version gelten für die unterstützten öffentlichen Clouds.
Schritte für Google Cloud
- Rufen Sie Compute Engine > VM-Instanzen auf.
- Klicken Sie auf die VM-Instanz mit
-worker-
im Namen. - Suchen Sie den Abschnitt
Custom Metadata
und dann den Schlüsseltee-image-reference
.- Hinweis: Jede VM, die in Google Cloud von Terraform bereitgestellt wird, sollte diese Metadaten haben (
tee-image-reference
-Metadaten im Workermodul).
- Hinweis: Jede VM, die in Google Cloud von Terraform bereitgestellt wird, sollte diese Metadaten haben (
- Der Wert von
tee-image-reference
enthält die Versionsnummer. Die Versionsnummer des folgenden Pfads ist beispielsweisev2.9.1
. Dabei handelt es sich um vorgefertigte Images, die in der Artifact Registry eines Google Cloud-Projekts gespeichert sind.- Hinweis: Das ist relevant, wenn Sie die vorgefertigten Assets verwenden. Andernfalls sollte es mit dem übereinstimmen, was Sie Ihrem Bild selbst gegeben und zugewiesen haben.
Beispiel:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1
- Hinweis: Das ist relevant, wenn Sie die vorgefertigten Assets verwenden. Andernfalls sollte es mit dem übereinstimmen, was Sie Ihrem Bild selbst gegeben und zugewiesen haben.
Beispiel:
Schritte für Amazon Web Services
- Rufen Sie in der Amazon Web Services-Konsole EC2-Instanzen auf.
- Klicken Sie auf die Instanz mit dem Namen
aggregation-service-operator-dev-env
. - Suchen Sie auf der Instanzseite nach „Details“ > AMI (Amazon Machine Image).
- Der Versionsname sollte im Bildpfad enthalten sein. Die Versionsnummer des folgenden Pfads ist beispielsweise
v2.9.1
.- Hinweis: Das ist relevant, wenn Sie die vorgefertigten Assets verwenden. Andernfalls sollte es mit dem übereinstimmen, was Sie Ihrem Bild selbst gegeben und zugewiesen haben.
Beispiel:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
- Hinweis: Das ist relevant, wenn Sie die vorgefertigten Assets verwenden. Andernfalls sollte es mit dem übereinstimmen, was Sie Ihrem Bild selbst gegeben und zugewiesen haben.
Beispiel:
Nächste Schritte
Wenn Sie keine Lösung für Ihr Problem mit dem Aggregationsdienst finden, benachrichtigen Sie uns, indem Sie ein GitHub-Problem einreichen oder das Formular für den technischen Support ausfüllen.