Nous avons classé les erreurs dans les grandes catégories suivantes:
- Authentification
- Réessayer
- Validation
- Problèmes liés à la 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. Pour en savoir plus sur des erreurs spécifiques, consultez les ressources suivantes:
- Erreurs courantes fournit plus d'informations sur une erreur spécifique.
- google.rpc.Status pour en savoir plus sur le modèle d'erreur logique utilisé par l'API.
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 d'une erreur d'authentification due à des facteurs hors de votre contrôle est que l'utilisateur authentifié a révoqué l'autorisation qu'il a accordée à votre application pour 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 chaque client lors de la gestion du compte de ce client, un client peut révoquer l'accès de votre application à tout moment. En fonction de 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'identifiants intégrés des bibliothèques clientes peuvent générer une exception de révocation de jeton. 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 de votre application à 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 réessayant 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 UI et à donner à l'utilisateur la possibilité de déclencher une nouvelle tentative. Votre application peut également relancer automatiquement la requête, et n'afficher l'erreur dans l'UI qu'après avoir atteint un nombre maximal de tentatives ou un temps d'attente total de l'utilisateur.
Pour les requêtes lancées côté backend, votre application doit automatiquement relancer la requête jusqu'à un nombre maximal de tentatives.
Lorsque vous relancez des requêtes, utilisez une stratégie d'intervalle exponentiel entre les tentatives. Par exemple, si vous mettez en pause cinq secondes avant la première nouvelle tentative, vous pouvez mettre en pause 10 secondes après la deuxième et 20 secondes après la troisième. L'intervalle exponentiel entre les tentatives permet de vous assurer que vous n'appelez pas l'API trop agressivement.
Erreurs de validation
Les erreurs de validation indiquent qu'une entrée d'une opération n'était pas acceptable.
Par exemple, PolicyViolationError
, DateError
, DateRangeError
, StringLengthError
et UrlFieldError
.
Les erreurs de validation se produisent le plus souvent dans les requêtes lancées par l'utilisateur, lorsque celui-ci a saisi une entrée incorrecte. Dans ce cas, vous devez fournir un message d'erreur approprié à l'utilisateur en fonction de l'erreur 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 pour qu'un opérateur humain l'examine.
Erreurs liées à la synchronisation
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 se désynchroniser avec les objets réels de 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 n'en sont pas informées et continuent d'émettre des appels d'API comme si le groupe d'annonces existait. Ces problèmes de synchronisation peuvent se manifester sous la forme de diverses erreurs, telles que DUPLICATE_CAMPAIGN_NAME
, DUPLICATE_ADGROUP_NAME
, AD_NOT_UNDER_ADGROUP
, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
, etc.
Pour les requêtes lancé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 concernée 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 indiquer à votre application de marquer cette annonce comme supprimée dans 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 être ajoutées à une file d'attente pour être examinées par un opérateur humain.