Dépannage

Vidéo: découvrez la présentation sur la gestion des exceptions de l'atelier 2019

Les erreurs peuvent être causées par une configuration incorrecte de l'environnement, un bug dans votre logiciel ou une entrée non valide de la part d'un utilisateur. Quelle que soit la source, vous devez résoudre le problème, puis corriger votre code ou ajouter une logique pour gérer l'erreur utilisateur. Ce guide décrit certaines des bonnes pratiques à suivre pour résoudre les erreurs de l'API Google Ads.

Assurer la connectivité

  1. Vérifiez que vous avez accès à l'API Google Ads et que vous disposez d'une configuration correcte. Si votre réponse renvoie des erreurs HTTP, assurez-vous de les corriger attentivement et d'accéder aux services que vous avez l'intention 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 comptez gérer les appels sans utiliser les bibliothèques clientes. Chaque bibliothèque cliente est fournie avec des instructions spécifiques pour 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é 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 vous lancer dans la résolution des erreurs liées à l'API Google Ads.

Identification du problème

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

Rechercher l'erreur

  1. Consultez notre documentation sur les erreurs courantes, qui décrit 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 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 entrer en contact avec 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, veuillez nous les signaler 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 résoudre les problèmes liés à votre application.

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

Localiser la cause

Consultez le message d'exception pour déterminer la cause de l'erreur. Après avoir examiné la réponse, recherchez une cause possible dans la requête. Certains messages d'erreur de l'API Google Ads incluent un fieldPathElements dans le champ location de GoogleAdsError, qui indique 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 se peut que votre application fournisse des informations erronées à l'API. Nous vous encourageons vivement à utiliser un environnement de développement interactif (IDE) comme Eclipse (un IDE sans frais et Open Source qui est principalement utilisé pour développer Java, mais qui comporte des 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.

Assurez-vous que la requête correspond aux informations saisies dans votre application (par exemple, il est possible que le nom de la campagne ne réponde pas à la demande). Assurez-vous d'envoyer un masque de champ correspondant aux mises à jour souhaitées. L'API Google Ads accepte les mises à jour fragmentées. Si vous omettez un champ du masque de champ dans une requête de mutation, 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 écriviez dans un champ non 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 le mettre à jour et si vous pouvez le mettre à jour.

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 été confrontés 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 au langage ou si vous demandez de l'aide concernant l'utilisation de l'API, incluez un extrait de code pour expliquer ce que vous faites.
  • RequestId. Cela permet aux membres de l'équipe Google Developers Relations de localiser votre requête si elle est envoyé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 du contexte supplémentaire.
  • Des informations supplémentaires, telles que la version de l'environnement d'exécution/de l'interpréteur et la plate-forme, peuvent également être utiles lors du dépannage.

Corriger le problème

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

Envisagez de partager

Si vous avez publié une question sur le forum concernant une erreur qui n'avait pas été détecté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 sera en mesure de 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 l'éviter ?

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