Tipos de errores

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los errores se categorizaron en las siguientes categorías amplias:

  • Autenticación
  • Reintentar
  • Validación
  • Relacionado con la sincronización

Si bien estas categorías no abarcan todos los errores posibles y algunas pueden caber en más de una categoría, pueden servir como punto de partida para estructurar el manejo de errores de tu app. Consulta Errores comunes para obtener más detalles sobre un error específico.

Errores de autenticación

La autenticación se refiere a si la app le otorgó permiso a un usuario para que acceda a Google Ads en su nombre. La autenticación se administra mediante las credenciales que genera el flujo de OAuth2.

La razón más común por la que se produce un error de autenticación debido a factores ajenos a tu control es que el usuario autenticado revocó el permiso que le dio a tu app para actuar en su nombre. Por ejemplo, si tu app administra cuentas de Google Ads diferentes para clientes independientes y se autentica por separado como cada cliente cuando administra la cuenta de ese cliente, podría revocar el acceso a tu app en cualquier momento. Según cuándo se revocó tu acceso, la API puede mostrar directamente un error AuthenticationError.OAUTH_TOKEN_REVOKED, o los objetos de credenciales integrados en las bibliotecas cliente pueden generar una excepción de token revocado. En cualquier caso, si tu app tiene una IU para tus clientes, esta podría pedirles que reinicien el flujo de OAuth2 a fin de restablecer su permiso para actuar en su nombre.

Errores que se pueden volver a intentar

Algunos errores, como TRANSIENT_ERROR o INTERNAL_ERROR, pueden indicar un problema temporal que se puede resolver si reintentas la solicitud después de una breve pausa.

En el caso de las solicitudes que inició el usuario, una estrategia es indicar de inmediato un error en la IU y darle al usuario la opción de activar un reintento. Como alternativa, tu app podría reintentar la solicitud de forma automática primero y exponer el error en la IU después de alcanzar una cantidad máxima de reintentos o el tiempo de espera total del usuario.

En el caso de las solicitudes iniciadas en el backend, tu app debe reintentar de forma automática la cantidad máxima de reintentos.

Cuando reintentes las solicitudes, usa una política de retirada exponencial. Por ejemplo, si primero pausas 5 segundos antes del primer intento, puedes pausar 10 segundos después del segundo y 20 segundos después del tercer intento. La retirada exponencial ayuda a garantizar que la llamada a la API no sea demasiado agresiva.

Errores de validación

Los errores de validación indican que una entrada a una operación no fue aceptable. Por ejemplo, PolicyViolationError, DateError, DateRangeError, StringLengthError y UrlFieldError.

Los errores de validación suelen ocurrir en solicitudes iniciadas por el usuario, en las que un usuario ingresó entradas no válidas. En estos casos, debes proporcionar un mensaje de error apropiado al usuario en función del error específico de la API que recibiste. También puedes validar la entrada del usuario en busca de errores comunes antes de realizar una llamada a la API, lo que hace que tu app sea más responsiva y el uso de la API sea más eficiente. En el caso de las solicitudes del backend, tu app podría agregar la operación con errores a una cola para que la revise un operador humano.

Muchas aplicaciones de Google Ads mantienen una base de datos local para almacenar sus objetos de Google Ads. Un desafío de este enfoque es que la base de datos local puede no estar sincronizada con los objetos reales en Google Ads. Por ejemplo, un usuario podría borrar un grupo de anuncios directamente en Google Ads, pero la app y la base de datos local no están al tanto del cambio y siguen generando llamadas a la API como si el grupo de anuncios existiera. Estos problemas de sincronización pueden manifestarse como una variedad de errores, como DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD y muchos más.

Para las solicitudes iniciadas por el usuario, una estrategia es alertar al usuario sobre un posible problema de sincronización, iniciar de inmediato un trabajo que recupere la clase relevante de objetos de Google Ads y actualice la base de datos local. Luego, solicita al usuario que actualice la IU.

En el caso de las solicitudes de backend, algunos errores proporcionan suficiente información para que la app corrija automáticamente tu base de datos local de manera incremental. Por ejemplo, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD debería hacer que tu app marque ese anuncio como quitado en tu base de datos local. Los errores que no puedes manejar de esta manera pueden provocar que tu app inicie un trabajo de sincronización más completo o se agregue a una cola para que un operador humano lo revise.