Plusieurs facteurs peuvent créer des problèmes lors de l'utilisation du service d'agrégation, y compris la mise en forme des rapports, les problèmes de domaine de sortie et les problèmes 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 du client
- Résoudre les problèmes de configuration de l'origine des rapports
- Résoudre les problèmes liés à vos rapports agrégés
- Inspecter la version de votre déploiement
Vérifier la configuration de l'API de mesure du client
Une fois que vous avez vérifié que votre serveur d'origine a été correctement enregistré, procédez comme suit:
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:
- API Attribution Reporting
- Pour l'API Attribution Reporting, assurez-vous d'avoir correctement enregistré la source (Événement et Récapitulatif). Pour effectuer l'enregistrement du déclencheur (Événement et Récapitulatif), assurez-vous que le code JSON transmis à
Attribution-Reporting-Register-Trigger
est correct à l'aide de l'outil de validation des en-têtes. (En savoir plus sur les rapports récapitulatifs de l'API Attribution Reporting)
- Pour l'API Attribution Reporting, assurez-vous d'avoir correctement enregistré la source (Événement et Récapitulatif). Pour effectuer l'enregistrement du déclencheur (Événement et Récapitulatif), assurez-vous que le code JSON transmis à
- API Private Aggregation
- Vous pouvez créer des rapports dans l'API Private Aggregation à l'aide de la fonction
contributeToHistogram
. Assurez-vous de transmettre la clé et la valeur du bucket. La clé du bucket doit être au formatBigInt
. (En savoir plus sur l'API Private Aggregation)
- Vous pouvez créer des rapports dans l'API Private Aggregation à l'aide de la fonction
- API Attribution Reporting
Si vous déclenchez des rapports comme recommandé, mais que le problème persiste, vérifiez si des erreurs sont détectées dans la console de développement 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 nos conseils de débogage pour l'API Attribution Reporting et l'API Private Aggregation + Shared Storage.
Résoudre les problèmes de configuration de l'origine des rapports
Le serveur d'origine des rapports est l'endroit où vous avez déclaré les points de terminaison .well-known
correspondants appropriés auxquels les rapports cumulables seront envoyés. Vérifiez que votre serveur source de création de rapports déployé a été correctement enregistré et inscrit.
Votre origine de création de rapports reçoit-elle des rapports ?
Vérifiez que le serveur source de rapports déployé a été correctement inscrit et enregistré. C'est sur ce serveur que vous avez déclaré les points de terminaison .well-known
correspondants appropriés 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 (combinaison) | 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:
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:
Si vous déclenchez des rapports comme recommandé, mais que le problème persiste, vérifiez si des erreurs sont détectées dans la console de développement 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 + Shared Storage.
Résoudre les problèmes liés à vos rapports agrégables
Les rapports agrégables sont générés par les API de mesure côté client et envoyés à votre origine de création de rapports. Votre point de terminaison de création de rapports doit convertir ces rapports au format AVRO
. En cas de problème avec cette conversion 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 sont-ils correctement convertis ?
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 se produire 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 des rapports AVRO agrégables ou du domaine de sortie AVRO. Les rapports AVRO agrégables sont-ils générés correctement ? La charge utile doit être décodée en base64 et convertie en tableau d'octets. Assurez-vous 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 avec échappement, puis en tableau d'octets.
Si vous voyez plusieurs erreurs, vous pouvez en savoir plus 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'il a enregistré son déclencheur avec le bon cloud à l'aide du champ "aggregation_coordinator_origin" (instructions ici). Vous pouvez également fournir des rapports chiffrés AWS à leur déploiement Google Cloud du service d'agrégation ou des rapports chiffrés Google Cloud à leur déploiement AWS. Demandez-lui de vérifier quel point de terminaison de clé publique a été 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 s'agit de https://publickeyservice.msmt.aws.privacysandboxservices.com. API Private AggregationPour l'API Private Aggregation, vous devez définir "aggregationCoordinatorOrigin" à l'aide de l'exemple de la section "Choix du coordinateur d'agrégation" de la présentation de l'API Private Aggregation. Veuillez spécifier https://publickeyservice.msmt.gcp.privacysandboxservices.com comme 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ème lié à un binaire non approuvé ou au mode débogage, utilisez le bon binaire pour résoudre le problème. Suivez les instructions ci-dessous pour utiliser une AMI prédéfinie ou créer votre propre AMI. |
Pour vérifier les points suivants, procédez comme suit:
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 en 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.)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 une tâche de service d'agrégation à l'aide de vos clés de domaine de sortie : a. Google Cloud: suivez les étapes 3.1.2 à 3.2.3 du Google Cloud Codelab sur le service d'agrégation. Amazon Web Services: suivez les étapes 4.2 à 5.3 du atelier de programmation AWS sur le service d'agrégation.
Si une réponse SUCCESS
est renvoyée, cela signifie que votre conversion fonctionne.
Vos rapports agrégables sont-ils intacts ?
Vérifiez que votre rapport agrégé, les clés de domaine de sortie et les informations partagées sont intacts. Pour en savoir plus, consultez les exemples de code pour convertir des rapports agrégables et créer des fichiers de domaine.
Les erreurs d'API qui peuvent s'afficher et correspondre à ce problème sont les suivantes:
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 ? Disposez-vous d'une autorisation de lecture à partir de l'emplacement de stockage des rapports et du domaine de sortie ?
|
Pour vérifier les points suivants, procédez comme suit:
Vérifiez le rapport agrégable:
- Générez des rapports agrégés et utilisez l'outil
aggregatable_report_converter
pour convertir le domaine de sortie au formatAVRO
. - Exécutez une requête
createJob
avec ce rapport agrégable et le fichier de domaine de sortie. - Si cette valeur renvoie
SUCCESS
, cela signifie que le rapport agrégable est intact. Si une erreur s'affiche, cela signifie que vous rencontrez 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.
- Générez des rapports agrégés et utilisez l'outil
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 cumulable. - Exécutez une requête
createJob
avec ce rapport agrégable et le fichier de domaine de sortie. - Si
SUCCESS
est renvoyé, cela signifie que le domaine de sortie est intact et qu'il existe un problème avec votre code pour créer le rapport agrégable. - Passez à l'étape suivante pour vérifier le
shared_info
.
- Générez le fichier de domaine de sortie et utilisez l'outil
Vérifiez les informations partagées:
- Assurez-vous d'avoir activé les rapports de débogage. Les rapports avec débogage activé disposent d'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. S'il s'agit d'un
SUCCESS
, cela signifie que votre fichiershared_info
a été falsifié.
- Assurez-vous d'avoir activé les rapports de débogage. Les rapports avec débogage activé disposent d'un champ
Si vous soupçonnez d'autres erreurs ou falsifications, collectez le rapport agrégé JSON, la clé de domaine, le rapport AVRO
agrégé généré et le domaine de sortie, puis passez aux étapes suivantes.
Inspecter votre nouvelle version de déploiement
Vérifiez que votre version du service d'agrégation est toujours prise en charge. 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 prise en charge : This release has reached its end of support on { date }
. Les instructions suivantes pour déterminer la version que vous avez déployée s'appliquent aux clouds publics compatibles.
Procédure pour Google Cloud
- Accédez à Compute Engine > Instances de VM.
- Cliquez sur l'instance de machine virtuelle dont le nom contient
-worker-
. - Accédez à la section
Custom Metadata
, puis recherchez la clétee-image-reference
.- Remarque: Chaque VM provisionnée dans Google Cloud par Terraform doit disposer de ces métadonnées (métadonnées
tee-image-reference
dans le module de nœud de calcul).
- Remarque: Chaque VM provisionnée dans Google Cloud par Terraform doit disposer de ces métadonnées (métadonnées
- La valeur de
tee-image-reference
contient le numéro de version. Par exemple, le numéro de version du chemin d'accès suivant estv2.9.1
. Il s'agit d'images prédéfinies qui se trouvent dans le registre Artifact Registry d'un projet Google Cloud.- Remarque: Cette information est pertinente si vous utilisez les composants prédéfinis. Si ce n'est pas le cas, elle 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
)
- Remarque: Cette information est pertinente si vous utilisez les composants prédéfinis. Si ce n'est pas le cas, elle doit correspondre à ce que vous avez personnellement nommé et tagué votre image.
(exemple:
Étapes pour Amazon Web Services
- Accédez à Instances EC2 dans la console Amazon Web Services.
- Cliquez sur l'instance portant le nom
aggregation-service-operator-dev-env
. - Sur la page de l'instance, accédez à "Détails" > AMI (Amazon Machine Image).
- Le nom de la version doit être inclus dans le chemin d'accès à l'image. Par exemple, le numéro de version du chemin d'accès suivant est
v2.9.1
.- Remarque: Cette information est pertinente si vous utilisez les composants prédéfinis. Si ce n'est pas le cas, elle doit correspondre à ce que vous avez personnellement nommé et tagué votre image.
(exemple:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
)
- Remarque: Cette information est pertinente si vous utilisez les composants prédéfinis. Si ce n'est pas le cas, elle doit correspondre à ce que vous avez personnellement nommé et tagué votre image.
(exemple:
Étapes suivantes
Si vous ne parvenez pas à résoudre votre problème lié au service d'agrégation, veuillez nous en informer en signalant un problème sur GitHub ou en remplissant ce formulaire d'assistance technique.