Dépannage

Vidéo : consultez la présentation sur la gestion des erreurs de l'atelier 2019

Les erreurs peuvent être dues à une configuration incorrecte de l'environnement, à un bug dans votre logiciel ou à une saisie incorrecte de la part d'un utilisateur. Quelle que soit la source, vous devrez résoudre le problème en corrigeant votre code ou en ajoutant une logique pour gérer l'erreur de l'utilisateur. Ce guide présente quelques bonnes pratiques pour résoudre les erreurs de l'API Google Ads.

Vérifier la connectivité

  1. Assurez-vous d'avoir accès à l'API Google Ads et de l'avoir configurée correctement. Si votre réponse renvoie des erreurs HTTP, assurez-vous de les traiter avec soin et de contacter les services que vous souhaitez utiliser à partir de votre code.

  2. Vos identifiants sont intégrés à votre requête pour que les services puissent vous authentifier. Familiarisez-vous avec la structure des requêtes et des réponses de l'API Google Ads, en particulier si vous prévoyez de gérer les appels sans utiliser les bibliothèques clientes. Chaque bibliothèque cliente est fournie avec des instructions spécifiques sur la façon d'inclure vos identifiants dans le fichier de configuration (consultez le fichier README de la bibliothèque cliente).

  3. Vérifiez que vous utilisez les bons identifiants. Notre guide de démarrage rapide vous explique comment obtenir l'ensemble de données dont vous avez besoin. Par exemple, l'échec de réponse suivant indique que l'utilisateur a envoyé des identifiants d'authentification non valides :

    {
      "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "detail": "Authentication error: 2"
          }
        ]
      }
    }
    

Si vous avez suivi ces étapes et que vous rencontrez toujours des problèmes, il est temps de résoudre les erreurs de l'API Google Ads.

Identifier le problème

L'API Google Ads signale généralement les erreurs sous la forme d'un objet d'échec JSON, contenant une liste d'erreurs dans la réponse. Ces objets fournissent un code d'erreur ainsi qu'un message expliquant pourquoi elle s'est produite. Ils constituent vos premiers signaux pour identifier le problème.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

Toutes nos bibliothèques clientes génèrent des exceptions qui encapsulent les erreurs dans la réponse. Pour commencer, vous pouvez capturer ces exceptions et imprimer les messages dans un journal ou sur un écran de dépannage. L'intégration de ces informations aux autres événements enregistrés dans votre application offre une bonne vue d'ensemble de ce qui peut déclencher le problème. Une fois l'erreur identifiée dans les journaux, vous devrez en déterminer la signification.

Faites des recherches sur l'erreur.

  1. Consultez notre documentation sur les erreurs courantes, qui couvre les erreurs les plus fréquentes. Il décrit le message d'erreur, les références d'API pertinentes et comment éviter ou gérer l'erreur.

  2. Si la documentation sur les erreurs courantes ne mentionne pas spécifiquement l'erreur, consultez notre documentation de référence et recherchez la chaîne d'erreur.

  3. Consultez nos canaux d'assistance pour accéder à d'autres développeurs qui partagent leurs expériences avec l'API. Il est possible qu'une autre personne ait rencontré et résolu le problème que vous rencontrez.

  4. Consultez le Centre d'aide Google Ads pour obtenir de l'aide concernant la résolution des problèmes de validation ou de limites de compte. L'API Google Ads hérite des règles et des limites du produit Google Ads principal.

  5. Les articles de blog peuvent parfois être une bonne référence pour résoudre les problèmes liés à votre application.

  6. Si vous rencontrez des erreurs qui ne sont pas documentées, contactez l'assistance.

Après avoir étudié l'erreur, il est temps d'en déterminer la cause racine.

Identifier la cause

Consultez le message d'exception pour déterminer la cause de l'erreur. Après avoir examiné la réponse, vérifiez la requête pour identifier une cause possible. Certains messages d'erreur de l'API Google Ads incluent un fieldPathElements dans le champ location de GoogleAdsError, indiquant où l'erreur s'est produite dans la requête. Exemple :

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

Lorsque vous résolvez un problème, vous pouvez constater que votre application fournit des informations incorrectes à l'API. Nous vous encourageons vivement à utiliser un environnement de développement interactif (IDE, Interactive Development Environment) tel qu'Eclipse (un IDE Open Source sans frais principalement utilisé pour développer en Java, mais qui dispose de plug-ins pour d'autres langages) pour vous aider à déboguer. Il vous permet de définir des points d'arrêt et de parcourir votre code ligne par ligne.

Vérifiez que la demande correspond aux entrées de votre application (par exemple, il est possible que le nom de la campagne ne soit pas inclus dans la demande). Assurez-vous d'envoyer un masque de champ correspondant aux modifications que vous souhaitez apporter. L'API Google Ads est compatible avec les mises à jour éparses. Si vous omettez un champ du masque de champ dans une requête de mutation, cela indique à l'API qu'elle ne doit pas le modifier. Si votre application récupère un objet, le modifie et le renvoie, il est possible que vous écriviez dans un champ qui ne permet pas les mises à jour. Consultez la description du champ dans la documentation de référence pour savoir si vous pouvez le modifier et, le cas échéant, à quel moment.

Obtenir de l'aide

Il n'est pas toujours possible d'identifier et de résoudre le problème vous-même. Vous pouvez contacter l'assistance pour obtenir de l'aide.

Essayez d'inclure autant d'informations que possible dans vos requêtes. Voici quelques exemples d'éléments recommandés :

  • Requête et réponse JSON nettoyées. Veillez à supprimer les informations sensibles, comme votre jeton de développeur ou votre jeton d'authentification.
  • Extraits de code : Si vous rencontrez un problème spécifique à une langue ou si vous demandez de l'aide pour utiliser l'API, incluez un extrait de code pour expliquer ce que vous faites.
  • RequestId. Cela permet aux membres de l'équipe Google chargée des relations avec les développeurs de localiser votre demande si elle est effectuée dans l'environnement de production. Nous vous recommandons d'enregistrer dans vos journaux le requestId inclus en tant que propriété dans les exceptions qui encapsulent les erreurs de réponse, ainsi que plus de contexte que le requestId seul.
  • Des informations supplémentaires, telles que la version du runtime ou de l'interpréteur, ainsi que la plate-forme, peuvent également être utiles pour le dépannage.

Résoudre le problème

Maintenant que vous avez identifié le problème et trouvé une solution, il est temps de modifier le code et de tester la correction sur un compte de test (de préférence) ou en production (si le bug ne s'applique qu'aux données d'un compte de production spécifique).

Étapes suivantes

Maintenant que vous avez résolu ce problème, avez-vous trouvé des moyens d'améliorer votre code pour l'éviter à l'avenir ?

La création d'un bon ensemble de tests unitaires contribue considérablement à améliorer la qualité et la fiabilité du code. Il accélère également le processus de test des nouvelles modifications pour s'assurer qu'elles n'ont pas affecté les fonctionnalités précédentes. Une bonne stratégie de gestion des erreurs est également essentielle pour faire apparaître toutes les données nécessaires à la résolution des problèmes.