Dépannage

Vidéo: Regardez la vidéo 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, puis corriger votre code ou ajouter une logique pour gérer l'erreur utilisateur. Ce guide présente quelques bonnes pratiques à suivre pour résoudre les erreurs liées à l'API Google Ads.

Assurer la connectivité

  1. Assurez-vous d'avoir accès à l'API Google Ads et d'avoir une configuration appropriée. Si votre réponse renvoie des erreurs HTTP, assurez-vous de les corriger avec soin et d'atteindre 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 comptez gérer les appels sans utiliser les bibliothèques clientes. Chaque bibliothèque cliente est fournie avec des instructions spécifiques sur la manière 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 accompagne tout au long du processus d'acquisition de l'ensemble approprié. Par exemple, l'échec de réponse suivant montre 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, mais que le problème persiste, il est temps de se pencher sur la résolution des erreurs de l'API Google Ads.

Déterminer le problème

L'API Google Ads signale généralement les erreurs dans un objet d'échec JSON, avec une liste d'erreurs dans la réponse. Ces objets fournissent un code d'erreur ainsi qu'un message expliquant pourquoi l'erreur s'est produite. Ce sont vos premiers signaux de la nature 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 constituent un excellent moyen de commencer. L'intégration de ces informations aux autres événements journalisés dans votre application offre un bon aperçu de ce qui peut être à l'origine du problème. Une fois que vous avez identifié l'erreur dans les journaux, vous devez comprendre sa signification.

Effectuer des recherches sur l'erreur

  1. Reportez-vous à 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 explique comment éviter ou gérer l'erreur.

  2. Si cette erreur n'est pas spécifiquement mentionnée dans notre documentation sur les erreurs courantes, consultez notre documentation de référence et recherchez la chaîne d'erreur.

  3. Parcourez nos canaux d'assistance pour contacter d'autres développeurs qui partagent leur expérience avec l'API. Quelqu’un d’autre a peut-être rencontré et résolu le problème que vous rencontrez.

  4. Si vous rencontrez des erreurs qui ne sont pas documentées, signalez-les sur le forum.

  5. Accédez au Centre d'aide Google Ads 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 principal.

  6. Les articles de blog constituent parfois une bonne référence pour le dépannage de votre application.

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

Trouver la cause

Consultez le message d'exception pour déterminer la cause de l'erreur. Après avoir examiné la réponse, recherchez la cause possible de la requête. Certains messages d'erreur de l'API Google Ads incluent fieldPathElements dans le champ location du 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" } ]
      }
    }
  ]
}

Lors de la résolution d'un problème, il est possible que votre application fournisse les informations erronées à l'API. Nous vous encourageons vivement à utiliser un environnement de développement interactif (IDE) tel qu'Eclipse (un IDE sans frais et Open Source qui est principalement utilisé pour développer Java, mais qui dispose de plug-ins pour d'autres langages) afin de faciliter le débogage. Il vous permet de définir des points d'arrêt et de parcourir votre code ligne par ligne.

Vérifiez que la requête correspond aux entrées de votre application (par exemple, il est possible que le nom de la campagne ne parvienne pas à la demande). Veillez à envoyer un masque de champ correspondant aux mises à jour que vous souhaitez effectuer. L'API Google Ads accepte les mises à jour creuses. Si un champ est omis dans le masque de champ dans une requête mutate, l'API doit le laisser tel quel. Si votre application récupère un objet, le modifie et le renvoie, il se peut que vous écrivez dans un champ non compatible avec la mise à jour. Consultez la description du champ dans la documentation de référence pour vérifier si des restrictions s'appliquent concernant le moment ou la possibilité de mettre à jour le champ.

Obtenir de l'aide

Il n'est pas toujours possible d'identifier et de résoudre le problème par vous-même. Poser votre question sur le forum expose votre question à des milliers de développeurs qui ont peut-être dû faire face au 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 à un langage ou si vous demandez de l'aide pour travailler avec 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 requestId seul.
  • Des informations supplémentaires, telles que la version et la plate-forme de l'environnement d'exécution/de l'interpréteur, peuvent également être utiles pour le dépannage.

Corriger le problème

Maintenant que vous avez identifié le problème et que vous avez trouvé une solution, il est temps d'apporter votre modification et de tester le correctif avec 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 de partager

Si vous avez publié une question sur le forum concernant une erreur qui n'avait pas été abordée auparavant et que vous avez trouvé la solution, envisagez de l'ajouter au fil de discussion. La prochaine fois qu'un développeur rencontre 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 en premier lieu ?

La création d'un ensemble adapté de tests unitaires contribue à améliorer considérablement la qualité et la fiabilité du code. Elle accélère également le processus de test des nouvelles modifications pour s'assurer qu'elles n'enfreignent pas les fonctionnalités précédentes. Une bonne stratégie de gestion des erreurs est également essentielle pour obtenir toutes les données nécessaires au dépannage.