Umgebung (neu oder aktualisiert) diagnostizieren

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

Nachdem Sie überprüft haben, ob Ihr Ursprungsserver ordnungsgemäß registriert wurde, führen Sie die folgenden Schritte aus:

  1. Prüfen Sie, wie Sie Berichte auslösen. Prüfen Sie, ob Sie das richtige Berichtsformat für die verwendete API erhalten:

  2. 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:

  1. Prüfen Sie, wie Sie Berichte auslösen. Prüfen Sie, ob Sie das richtige Berichtsformat für die verwendete API erhalten:

  2. 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 API

Fü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 aggregationCoordinatorOrigin an.

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:

  1. 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.

  2. 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:

  1. Zusammengefassten Bericht prüfen:

    • Generieren Sie aggregierte Berichte und verwenden Sie das aggregatable_report_converter-Tool, um die Ausgabedomäne in das AVRO-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.
  2. 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.
  3. 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 Datei shared_info manipuliert.

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

  1. Rufen Sie Compute Engine > VM-Instanzen auf.
  2. Klicken Sie auf die VM-Instanz mit -worker- im Namen.
  3. Suchen Sie den Abschnitt Custom Metadata und dann den Schlüssel tee-image-reference.
  4. Der Wert von tee-image-reference enthält die Versionsnummer. Die Versionsnummer des folgenden Pfads ist beispielsweise v2.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

Schritte für Amazon Web Services

  1. Rufen Sie in der Amazon Web Services-Konsole EC2-Instanzen auf.
  2. Klicken Sie auf die Instanz mit dem Namen aggregation-service-operator-dev-env.
  3. Suchen Sie auf der Instanzseite nach „Details“ > AMI (Amazon Machine Image).
  4. 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

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.