Dépannage

Les erreurs peuvent être dues à une configuration incorrecte de l'environnement, à un bug dans votre logiciel ou à une saisie non valide de la part 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 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 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 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 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 pencher sur le dépannage des 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 l'erreur s'est produite. Ils constituent les premiers indices de la nature du problème.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 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 afficher les messages dans un journal ou un écran de dépannage. 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, la documentation de référence de l'API pertinente et la manière d'éviter ou de 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. Consultez nos canaux d'assistance pour accéder aux expériences d'autres développeurs avec l'API. Quelqu'un d'autre a peut-être rencontré le problème que vous rencontrez et l'a résolu.

  4. Consultez le Centre d'aide Google Ads pour obtenir de l'aide sur 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 de base.

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

  6. Si vous rencontrez des erreurs non documentées, contactez l'assistance.

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

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 cause possible. Certains messages d'erreur de l'API Google Ads incluent fieldPathElements dans le champ location de GoogleAdsError, indiquant 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": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

Lorsque vous résolvez des problèmes, vous pouvez constater que votre application fournit des informations incorrectes à l'API. Nous vous encourageons vivement à utiliser un débogueur d'environnement de développement intégré (IDE) pour définir des points d'arrêt, parcourir votre code ligne par ligne et inspecter les charges utiles de requête construites avant leur envoi.

Vérifiez que la requête correspond aux entrées de votre application (par exemple, le nom de la campagne peut ne pas être inclus dans la requête). Veillez à envoyer un masque de champ correspondant aux modifications que vous souhaitez apporter. L'API Google Ads accepte les mises à jour partielles. Si vous omettez un champ du masque de champ dans une requête de modification, l'API ne le modifiera pas. Si votre application récupère un objet, le modifie et le renvoie, vous écrivez peut-être dans un champ qui n'accepte pas les mises à 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. Vous pouvez contacter l'assistance pour obtenir de l'aide.

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

  • Requête et réponse JSON nettoyées. Veillez à supprimer les informations sensibles telles que votre jeton d'accès OAuth, votre jeton d'actualisation et vos numéros client.
  • Extraits de code : Si vous rencontrez un problème spécifique à un langage ou si vous avez besoin d'aide pour utiliser l'API, incluez un extrait de code pour expliquer ce que vous faites.
  • request-id. Cela permet aux membres de l'équipe Google Developer Relations de localiser votre requête si elle est effectuée dans l'environnement de production. Nous vous recommandons de consigner le request-id inclus dans les en-têtes de réponse ou les exceptions qui encapsulent les erreurs de réponse, ainsi que plus de contexte que le request-id seul.
  • Des informations supplémentaires, telles que la version de l'environnement d'exécution ou de l'interpréteur et la plate-forme, peuvent également être utiles lors du dépannage.

Résoudre le problème

Maintenant que vous avez identifié le problème et trouvé une solution, il est temps d'apporter votre 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).

É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. Il accélère également le processus de test des nouvelles modifications pour s'assurer qu'elles n'ont pas altéré les fonctionnalités précédentes. Une bonne stratégie de gestion des exceptions est également essentielle pour afficher toutes les données nécessaires au dépannage.