Diagnostiquer votre environnement (nouveau ou mis à niveau)

Plusieurs facteurs peuvent entraîner des problèmes lorsque vous utilisez le service d'agrégation, y compris des problèmes de mise en forme des rapports, de domaine de sortie et de coordinateur. Il est important de comprendre la source de l'erreur et les métadonnées qu'elle contient pour diagnostiquer précisément le problème.

Thèmes du guide :

Vérifier la configuration de l'API de mesure côté client

Une fois que vous avez vérifié que votre serveur d'origine a bien été enregistré, procédez comme suit :

  1. Vérifiez comment vous déclenchez les rapports. Vérifiez que vous recevez le bon format de rapport en fonction de l'API utilisée :

  2. Si vous déclenchez les rapports comme recommandé, mais que le problème persiste, vérifiez si des erreurs sont observées dans la console pour les développeurs Chrome, dans les onglets "Console" et "Réseau".

Si vous avez besoin d'une aide supplémentaire pour résoudre les problèmes liés à ces API clientes, consultez nos conseils de débogage pour l'API Attribution Reporting et l'API Private Aggregation et Shared Storage.

Résoudre les problèmes de configuration de votre origine de reporting

Le serveur d'origine des rapports est celui où vous avez déclaré les points de terminaison .well-known correspondants corrects auxquels les rapports cumulables seront envoyés. Vérifiez que votre serveur d'origine de création de rapports déployé a été correctement enregistré.

Votre origine de signalement reçoit-elle des rapports ?

Vérifiez que votre serveur d'origine de création de rapports déployé a bien été enregistré. Ce serveur est celui où vous avez déclaré les points de terminaison .well-known correspondants corrects auxquels les rapports agrégables seront envoyés.

API de mesure côté client Point de terminaison agrégable correspondant
Attribution Reporting POST /.well-known/attribution-reporting/report-aggregate-attribution
Private Aggregation + Shared Storage (Combo) POST /.well-known/private-aggregation/report-shared-storage
Private Aggregation + Protected Audience (Combo) POST /.well-known/private-aggregation/report-protected-audience

Une fois que vous avez vérifié que votre serveur d'origine a été correctement enregistré, procédez comme suit :

  1. Vérifiez comment vous déclenchez les rapports. Vérifiez que vous recevez le bon format de rapport en fonction de l'API utilisée :

  2. Si vous déclenchez des rapports comme recommandé, mais que le problème persiste, vérifiez si des erreurs sont observées dans la console pour les développeurs Chrome, dans les onglets "Console" et "Réseau".

Si vous avez besoin d'aide supplémentaire pour résoudre les problèmes liés à ces API clientes , consultez les conseils de débogage pour l'API Attribution Reporting et l'API Private Aggregation et Shared Storage.

Résoudre les problèmes liés à vos rapports agrégables

Les rapports agrégés sont générés par les API de mesure côté client et envoyés à votre origine de rapport. Votre point de terminaison de reporting doit convertir ces rapports au format AVRO. Si cette conversion pose problème ou si les rapports eux-mêmes ne sont pas intacts, des erreurs peuvent s'afficher dans le service d'agrégation.

Vos rapports agrégables génèrent-ils correctement des conversions ?

Vérifiez que votre point de terminaison de création de rapports (.well-known/…) convertit correctement le rapport JSON agrégable donné en AVRO.

Voici les erreurs d'API qui peuvent survenir en raison de ce problème :

Erreur DECRYPTION_ERROR
Exemple
                "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": []
                    }
                }
            
Vérifier Cela peut se produire en raison d'erreurs de déchiffrement, qui peuvent être causées par des rapports AVRO mal générés, qu'il s'agisse de rapports AVRO agrégables ou d'AVRO de domaine de sortie. Les rapports AVRO agrégables sont-ils générés correctement ? La charge utile devra être décodée en base64 et convertie en tableau d'octets. Vérifiez que le rapport est au format Avro. Vérifiez également si le domaine de sortie AVRO est correct. Les buckets sont convertis au format hexadécimal Unicode échappé, puis en tableau d'octets. Si vous voyez plusieurs nombres d'erreurs, vous pouvez en savoir plus sur les erreurs sur la page GitHub du service d'agrégation.
Erreur DECRYPTION_KEY_NOT_FOUND
Exemple
                "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": []
                    }
                }
            
Vérifier API Attribution Reporting

Pour l'API Attribution Reporting, cette erreur peut être due à un problème d'enregistrement du déclencheur. Vérifiez qu'ils ont enregistré leur déclencheur auprès du bon cloud à l'aide du champ "aggregation_coordinator_origin" (instructions ici). Vous pouvez également fournir des rapports chiffrés avec AWS à leur déploiement Google Cloud du service d'agrégation, ou des rapports chiffrés avec Google Cloud à leur déploiement AWS. Demandez-lui de valider le point de terminaison de clé publique utilisé pour chiffrer les rapports agrégables. Pour Google Cloud, le champ "aggregation_coordinator_origin" du rapport agrégable doit être https://publickeyservice.msmt.gcp.privacysandboxservices.com. Pour AWS, il doit être https://publickeyservice.msmt.aws.privacysandboxservices.com.

API Private Aggregation

Pour l'API Private Aggregation, vous devrez définir `aggregationCoordinatorOrigin` en utilisant l'exemple de la section "Choix du coordinateur d'agrégation" de l'explication de l'API Private Aggregation. Veuillez spécifier https://publickeyservice.msmt.gcp.privacysandboxservices.com comme aggregationCoordinatorOrigin.

Exemple :

                sharedStorage.run('someOperation', {'privateAggregationConfig':
                {'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});

            
Erreur DECRYPTION_KEY_FETCH_ERROR
Exemple
                "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."
                                }
                            ]
                        }
                }
            
Vérifier En cas de problèmes liés au mode débogage ou aux fichiers binaires non approuvés, l'utilisation du bon fichier binaire résoudra le problème. Suivez les instructions pour utiliser une AMI prédéfinie ou créer votre propre AMI.

Pour effectuer la validation, procédez comme suit :

  1. Vous pouvez utiliser l'outil aggregatable_report_converter pour convertir les rapports agrégables que vous avez collectés à partir du point de terminaison .well-known au format AVRO et créer les clés de domaine de sortie. (Remarque : Les fichiers de domaine de sortie doivent être une chaîne d'octets big-endian de 16 octets.)

  2. Suivez les étapes de l'atelier de programmation pour votre fournisseur de cloud public afin de collecter vos rapports de débogage et d'exécuter un job Aggregation Service à l'aide de vos clés de domaine de sortie : a. Google Cloud : suivez les étapes 3.1.2 à 3.2.3 du atelier de programmation Google Cloud sur le service d'agrégation. b. Amazon Web Services : suivez les étapes 4.2 à 5.3 du codelab AWS sur le service d'agrégation.

Si la réponse est SUCCESS, cela signifie que votre conversion fonctionne.

Vos rapports agrégables sont-ils intacts ?

Vérifiez que votre rapport agrégé, vos clés de domaine de sortie et vos informations partagées sont intacts. Consultez les exemples de code pour convertir les rapports agrégables et créer des fichiers de domaine si vous souhaitez obtenir plus d'informations.

Voici les erreurs d'API que vous pouvez rencontrer et qui correspondent à ce problème :

Erreur INPUT_DATA_READ_FAILED
Point de terminaison createJob
Vérifier Les champs input_data_bucket_name, input_data_blob_prefix, output_data_bucket_name et output_data_blob_prefix de la requête createJob sont-ils corrects ? L'emplacement des données du rapport d'entrée contient-il les rapports à traiter ? Avez-vous l'autorisation de lire l'emplacement de stockage des rapports et du domaine de sortie ?

Pour effectuer la validation, procédez comme suit :

  1. Vérifiez le rapport agrégé :

    • Générez des rapports agrégés et utilisez l'outil aggregatable_report_converter pour convertir le domaine de sortie au format AVRO.
    • Exécutez une requête createJob avec ce rapport agrégable et ce fichier de domaine de sortie.
    • Si la valeur renvoyée est SUCCESS, cela signifie que le rapport agrégable est intact. Si une erreur s'affiche, cela signifie que vous avez un problème avec votre rapport agrégable, ou avec le rapport et le domaine.
    • Passez à l'étape suivante pour vérifier le fichier de domaine.
  2. Vérifiez le fichier de domaine de sortie :

    • Générez le fichier de domaine de sortie et utilisez l'outil aggregatable_report_converter pour créer le rapport agrégable.
    • Exécutez une requête createJob avec ce rapport agrégable et ce fichier de domaine de sortie.
    • Si la valeur renvoyée est SUCCESS, cela signifie que le domaine de sortie est intact et qu'il y a un problème avec votre code pour créer le rapport agrégable.
    • Passez à l'étape suivante pour vérifier le shared_info.
  3. Vérifiez les informations partagées :

    • Vérifiez que vous avez activé les rapports de débogage. Les rapports pour lesquels le débogage est activé comportent un champ debug_cleartext_payload.
    • Créez un rapport de débogage à utiliser avec l'outil de test local et utilisez debug_cleartext_payload comme charge utile.
    • Exécutez l'outil de test local avec votre fichier de domaine. Si le message SUCCESS s'affiche, cela signifie que votre fichier shared_info a été falsifié.

Si vous suspectez d'autres erreurs ou falsifications, collectez le rapport agrégé JSON, la clé de domaine, le rapport agrégé AVRO généré et le domaine de sortie, puis passez à la section Étapes suivantes.

Inspecter la nouvelle version de votre déploiement

Vérifiez que votre version du service d'agrégation est toujours compatible. Une fois que vous avez déterminé la version que vous utilisez, consultez la liste des versions du service d'agrégation et vérifiez que votre version ne comporte pas l'avertissement de fin de compatibilité : This release has reached its end of support on { date }. Les instructions suivantes pour déterminer la version que vous avez déployée concernent les clouds publics compatibles.

Procédure pour Google Cloud

  1. Accédez à Compute Engine > Instances de VM.
  2. Cliquez sur l'instance de machine virtuelle dont le nom comporte -worker-.
  3. Accédez à la section Custom Metadata, puis recherchez la clé tee-image-reference.
  4. La valeur de tee-image-reference contiendra le numéro de version. Par exemple, le numéro de version du chemin d'accès suivant est v2.9.1. Il s'agit d'images prédéfinies qui se trouvent dans le registre Artifact Registry d'un projet Google Cloud.
    • Remarque : Cela est pertinent si vous utilisez les éléments prédéfinis. Si ce n'est pas le cas, cela doit correspondre à ce que vous avez personnellement nommé et tagué votre image. (exemple : us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)

Procédure pour Amazon Web Services

  1. Accédez à Instances EC2 dans votre console Amazon Web Services.
  2. Cliquez sur l'instance portant le nom aggregation-service-operator-dev-env.
  3. Sur la page de l'instance, recherchez Détails > AMI (Amazon Machine Image).
  4. Le nom de votre version doit être inclus dans le chemin d'accès à l'image. Par exemple, le numéro de version du chemin suivant est v2.9.1.
    • Remarque : Cela est pertinent si vous utilisez les éléments prédéfinis. Si ce n'est pas le cas, cela doit correspondre à ce que vous avez personnellement nommé et tagué votre image. (exemple : aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)

Étapes suivantes

Si vous ne trouvez pas de solution à votre problème lié au service d'agrégation, informez-nous en créant un problème GitHub ou en remplissant le formulaire d'assistance technique.