Types d'erreurs

Nous avons classé les erreurs dans les grandes catégories suivantes:

  • Authentification
  • Récupérable
  • Données
  • Synchronisation

Bien que ces catégories n'englobent pas toutes les erreurs possibles et que certaines puissent appartenir à plusieurs catégories, elles peuvent néanmoins servir de point de départ pour structurer la gestion des erreurs de votre application. Reportez-vous à la section Erreurs courantes pour en savoir plus sur une erreur particulière.

Erreurs d'authentification

L'authentification indique si un utilisateur a autorisé votre application à accéder à Google Ads en son nom. L'authentification est gérée via des identifiants générés par le flux OAuth2.

La raison la plus courante pour laquelle une erreur d'authentification est due à des facteurs que vous ne contrôlez pas est que l'utilisateur authentifié a révoqué l'autorisation qu'il a donnée à votre application d'agir en son nom. Par exemple, si votre application gère des comptes Google Ads distincts pour des clients indépendants et s'authentifie séparément en tant que client lors de la gestion du compte de ce client, un client peut révoquer l'accès de votre application à tout moment. Selon la date à laquelle votre accès a été révoqué, l'API peut renvoyer directement une erreur AuthenticationError.OAUTH_TOKEN_REVOKED, ou les objets d'identification intégrés dans les bibliothèques clientes peuvent générer une exception de jeton révoqué. Dans les deux cas, si votre application dispose d'une UI pour vos clients, elle peut leur demander de relancer le flux OAuth2 pour rétablir l'autorisation d'agir en leur nom.

Erreurs récupérables

Certaines erreurs, telles que TRANSIENT_ERROR ou INTERNAL_ERROR, peuvent indiquer un problème temporaire qui peut être résolu en renouvelant la requête après une courte pause.

Pour les requêtes déclenchées par l'utilisateur, une stratégie consiste à indiquer immédiatement une erreur dans votre interface utilisateur et à donner à l'utilisateur la possibilité de déclencher une nouvelle tentative. Votre application peut également relancer automatiquement la requête, n'exposant l'erreur dans l'interface utilisateur qu'une fois le nombre maximal de tentatives atteint ou le temps d'attente total de l'utilisateur atteint.

Pour les requêtes lancées en backend, votre application doit retenter automatiquement la requête dans la limite du nombre maximal de tentatives.

Lorsque vous relancez des requêtes, utilisez une stratégie d'intervalle exponentiel entre les tentatives. Par exemple, si vous faites une pause de cinq secondes avant la première tentative, vous pouvez le faire 10 secondes après la deuxième et 20 secondes après la troisième. L'intervalle exponentiel entre les tentatives vous permet de ne pas appeler l'API de manière trop agressive.

Erreurs de validation

Les erreurs de validation indiquent qu'une entrée dans une opération n'est pas acceptable. Par exemple, PolicyViolationError, DateError, DateRangeError, StringLengthError et UrlFieldError.

Les erreurs de validation se produisent le plus souvent dans les requêtes déclenchées par l'utilisateur, lorsqu'il a saisi une entrée non valide. Dans ce cas, vous devez fournir un message d'erreur approprié à l'utilisateur en fonction de l'erreur d'API spécifique que vous avez reçue. Vous pouvez également valider les entrées utilisateur pour détecter les erreurs courantes avant d'effectuer un appel d'API, ce qui rend votre application plus réactive et votre utilisation de l'API plus efficace. Pour les requêtes provenant du backend, votre application peut ajouter l'opération ayant échoué à une file d'attente afin qu'un opérateur humain l'examine.

De nombreuses applications Google Ads gèrent une base de données locale pour stocker leurs objets Google Ads. L'un des défis de cette approche est que la base de données locale peut ne pas être synchronisée avec les objets réels dans Google Ads. Par exemple, un utilisateur peut supprimer un groupe d'annonces directement dans Google Ads, mais l'application et la base de données locale ne sont pas au courant de la modification et continuent à émettre des appels d'API comme si le groupe d'annonces existait. Ces problèmes de synchronisation peuvent se manifester par différentes erreurs, telles que DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD, etc.

Pour les requêtes déclenchées par l'utilisateur, une stratégie consiste à alerter l'utilisateur d'un éventuel problème de synchronisation, à lancer immédiatement une tâche qui récupère la classe d'objets Google Ads pertinente et met à jour la base de données locale, puis à inviter l'utilisateur à actualiser l'interface utilisateur.

Pour les requêtes backend, certaines erreurs fournissent suffisamment d'informations pour que votre application corrige automatiquement et de manière incrémentielle votre base de données locale. Par exemple, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD doit amener votre application à marquer cette annonce comme supprimée de votre base de données locale. Les erreurs que vous ne pouvez pas gérer de cette manière peuvent entraîner le lancement d'une tâche de synchronisation plus complète par votre application ou l'ajout d'une file d'attente pour examen par un opérateur humain.