Dépannage

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

Les erreurs peuvent être dues à une configuration incorrecte de l'environnement, à un bug dans votre logiciel ou à une entrée incorrecte d'un utilisateur. Quelle que soit la source, vous devrez résoudre le problème et corriger votre code ou ajouter 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.

Assurer la connectivité

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

  2. Vos identifiants sont intégrés à votre requête afin 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 allez gérer les appels sans utiliser les bibliothèques clientes. Chaque bibliothèque cliente est fournie avec des instructions spécifiques sur l'inclusion de 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 dont vous avez besoin. Par exemple, l'échec de la réponse suivante 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 le problème persiste, il est temps de résoudre les erreurs de l'API Google Ads.

Déterminer 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 il s'est produit. Ce sont vos premiers signaux sur l'origine du 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. La capture de ces exceptions et l'impression des messages dans un journal ou un écran de dépannage est un excellent point de départ. L'intégration de ces informations aux autres événements consignés dans votre application offre un bon aperçu de ce qui pourrait déclencher le problème. Une fois que vous avez identifié l'erreur dans les journaux, vous devez déterminer sa signification.

Rechercher l'erreur

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

  2. Si notre 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. Parcourez 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é le problème que vous rencontrez et qu'elle l'ait résolu.

  4. Si vous rencontrez des erreurs non documentées, veuillez nous en informer sur le forum.

  5. Consultez le Centre d'aide Google Ads pour obtenir de l'aide pour résoudre les problèmes de validation ou de limite de compte. L'API Google Ads hérite des règles et des limites du produit Google Ads de base.

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

Après avoir étudié l'erreur, il est temps de déterminer la cause du problème.

Identifier la cause

Vérifiez 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 éventuelle cause. Certains messages d'erreur de l'API Google Ads incluent un fieldPathElements dans le champ location de GoogleAdsError, ce qui indique l'emplacement de l'erreur 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 dépannez un problème, il se peut que votre application fournisse les mauvaises informations à l'API. Nous vous recommandons vivement d'utiliser un environnement de développement intégré (IDE, Integrated Development Environment) tel que Eclipse (un IDE Open Source et sans frais principalement utilisé pour le développement 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 d'exécuter votre code ligne par ligne.

Vérifiez que la requête correspond aux entrées de votre application (par exemple, le nom de la campagne ne parvient peut-être pas à la requête). Assurez-vous d'envoyer un masque de champ correspondant aux mises à jour que vous souhaitez effectuer. L'API Google Ads accepte les mises à jour sporadiques. Omettre un champ du masque de champ dans une requête de modification indique que l'API ne doit pas le modifier. Si votre application récupère un objet, apporte une modification et l'envoie, vous écrivez peut-être dans un champ qui n'est pas compatible avec la mise à jour. Consultez la description du champ dans la documentation de référence pour savoir s'il existe des restrictions concernant le moment où vous pouvez mettre à jour le champ, ou si vous pouvez le faire.

Obtenir de l'aide

Il n'est pas toujours possible d'identifier et de résoudre le problème par vous-même. En posant votre question sur le forum, vous la partagez avec des milliers de développeurs qui ont peut-être déjà rencontré le même problème.

Essayez d'inclure autant d'informations que possible dans vos requêtes. Nous vous conseillons, entre autres, de fournir les informations suivantes :

  • Requête et réponse JSON nettoyées. Veillez à supprimer les informations sensibles telles que votre jeton de développeur ou votre AuthToken.
  • 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 requête 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 de l'environnement d'exécution/de l'interprète et la plate-forme, peuvent également être utiles pour le dépannage.

Corriger le problème

Maintenant que vous avez identifié le problème et trouvé une solution, il est temps d'apporter la modification et de tester le correctif sur un compte de test (recommandé) ou de production (si le bug ne s'applique qu'aux données d'un compte de production spécifique).

Envisager le partage

Si vous avez publié une question sur le forum concernant une erreur qui n'y avait jamais été signalée et que vous avez trouvé la solution, envisagez de l'ajouter au fil de discussion. La prochaine fois qu'un développeur rencontrera le même problème, il pourra le résoudre immédiatement.

Étapes suivantes

Maintenant que vous avez résolu ce problème, avez-vous remarqué des moyens d'améliorer votre code pour éviter cela dès le départ ?

La création d'un bon ensemble de tests unitaires permet d'améliorer considérablement 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 endommagé les fonctionnalités précédentes. Une bonne stratégie de gestion des erreurs est également essentielle pour mettre en évidence toutes les données nécessaires au dépannage.