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
- Résoudre les problèmes de configuration de votre origine de reporting
- Résoudre les problèmes liés à vos rapports agrégables
- Inspecter la version de votre déploiement
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 :
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, vérifiez que vous avez bien enregistré la source (Événement et Récapitulatif). Pour effectuer l'enregistrement du déclencheur (Event et Summary), vérifiez que le fichier JSON transmis à
Attribution-Reporting-Register-Triggerest 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, vérifiez que vous avez bien enregistré la source (Événement et Récapitulatif). Pour effectuer l'enregistrement du déclencheur (Event et Summary), vérifiez que le fichier JSON transmis à
- API Private Aggregation
- Vous pouvez générer des rapports dans l'API Private Aggregation à l'aide de la fonction
contributeToHistogram. Vérifiez que vous transmettez 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 générer des rapports dans l'API Private Aggregation à l'aide de la fonction
- API Attribution Reporting
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 :
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 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 AggregationPour 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 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 :
Vous pouvez utiliser l'outil
aggregatable_report_converterpour 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.)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 :
Vérifiez le rapport agrégé :
- Générez des rapports agrégés et utilisez l'outil
aggregatable_report_converterpour convertir le domaine de sortie au formatAVRO. - Exécutez une requête
createJobavec 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.
- 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_converterpour créer le rapport agrégable. - Exécutez une requête
createJobavec 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.
- Générez le fichier de domaine de sortie et utilisez l'outil
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_payloadcomme charge utile. - Exécutez l'outil de test local avec votre fichier de domaine. Si le message
SUCCESSs'affiche, cela signifie que votre fichiershared_infoa été falsifié.
- Vérifiez que vous avez activé les rapports de débogage. Les rapports pour lesquels le débogage est activé comportent un champ
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
- Accédez à Compute Engine > Instances de VM.
- Cliquez sur l'instance de machine virtuelle dont le nom comporte
-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-referencedans 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-referencecontiendra 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 : 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)
- 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 :
Procédure pour Amazon Web Services
- Accédez à Instances EC2 dans votre console Amazon Web Services.
- Cliquez sur l'instance portant le nom
aggregation-service-operator-dev-env. - Sur la page de l'instance, recherchez Détails > AMI (Amazon Machine Image).
- 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)
- 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 :
É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.