Video: Mira la charla sobre el manejo de errores del taller de 2019
Los errores pueden deberse a una configuración incorrecta del entorno, un error en tu software o una entrada no válida de un usuario. Independientemente de la fuente, deberás solucionar el problema y corregir el código o agregar lógica para controlar el error del usuario. En esta guía, se analizan algunas prácticas recomendadas para solucionar problemas relacionados con errores de la API de Google Ads.
Cómo garantizar la conectividad
Asegúrate de tener acceso a la API de Google Ads y de que la configuración sea correcta. Si tu respuesta muestra errores HTTP, asegúrate de abordarlos con cuidado y de que tu código llegue a los servicios que deseas usar.
Tus credenciales están incorporadas en tu solicitud para que los servicios te autentiquen. Familiarízate con la estructura de las solicitudes y respuestas de la API de Google Ads, en especial si vas a controlar las llamadas sin usar las bibliotecas cliente. Cada biblioteca cliente se envía con instrucciones específicas para incluir tus credenciales en el archivo de configuración (consulta el README de la biblioteca cliente).
Verifica que estés usando las credenciales correctas. Nuestra guía de inicio rápido te guía por el proceso para adquirir el conjunto correcto que necesitas. Por ejemplo, la siguiente falla de respuesta muestra que el usuario envió credenciales de autenticación no válidas:
{ "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 seguiste estos pasos y los problemas persisten, es hora de solucionar los errores de la API de Google Ads.
Cómo determinar el problema
En general, la API de Google Ads informa los errores como un objeto de falla JSON que contiene una lista de errores en la respuesta. Estos objetos proporcionan un código de error y un mensaje en el que se explica por qué ocurrió. Son los primeros indicadores de cuál podría ser el problema.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
Todas nuestras bibliotecas cliente arrojan excepciones que encapsulan errores en la respuesta. Capturar estas excepciones e imprimir los mensajes en un registro o en una pantalla de solución de problemas es una excelente manera de comenzar. Integrar esta información con los demás eventos registrados en tu aplicación ofrece una buena descripción general de lo que podría estar provocando el problema. Una vez que identifiques el error en los registros, deberás averiguar qué significa.
Investiga el error
Consulta nuestra documentación sobre errores comunes, que abarca los errores que se producen con mayor frecuencia. Describe el mensaje de error, las referencias de API pertinentes y cómo evitar o controlar el error.
Si nuestra documentación sobre errores comunes no menciona específicamente el error, consulta nuestra documentación de referencia y busca la cadena de error.
Busca en nuestros canales de asistencia para acceder a otros desarrolladores que comparten sus experiencias con la API. Es posible que otra persona haya tenido el mismo problema que tú y lo haya resuelto.
Si encuentras errores que no están documentados, infórmanos sobre ellos en el foro.
Visita el Centro de ayuda de Google Ads para obtener ayuda con la solución de problemas relacionados con la validación o los límites de la cuenta. La API de Google Ads hereda las reglas y limitaciones del producto principal de Google Ads.
En ocasiones, las publicaciones de blog serán una buena referencia para solucionar problemas relacionados con tu aplicación.
Después de investigar el error, es hora de determinar la causa raíz.
Cómo localizar la causa
Revisa el mensaje de excepción para determinar la causa del error. Después de analizar la respuesta, verifica la solicitud para encontrar una posible causa. Algunos mensajes de error de la API de Google Ads incluyen un fieldPathElements
en el campo location
de GoogleAdsError
, que indica en qué parte de la solicitud se produjo el error. Por ejemplo:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
Cuando solucionas un problema, es posible que tu aplicación proporcione información incorrecta a la API. Te recomendamos que uses un entorno de desarrollo interactivo (IDE) como Eclipse (un IDE gratuito y de código abierto que se usa principalmente para desarrollar en Java, pero que tiene complementos para otros lenguajes) para ayudarte con la depuración. Te permite establecer puntos de interrupción y revisar tu código línea por línea.
Verifica que la solicitud coincida con las entradas de tu aplicación (por ejemplo, es posible que el nombre de la campaña no llegue a la solicitud). Asegúrate de enviar una máscara de campo que coincida con las actualizaciones que deseas realizar. La API de Google Ads admite actualizaciones dispersas. Si se omite un campo de la máscara de campo en una solicitud de modificación, se indica que la API no debe modificarlo. Si tu aplicación recupera un objeto, realiza un cambio y lo envía de vuelta, es posible que estés escribiendo en un campo que no admite actualizaciones. Consulta la descripción del campo en la documentación de referencia para ver si hay restricciones sobre cuándo o si puedes actualizar el campo.
Cómo obtener ayuda
No siempre es posible identificar y resolver el problema por tu cuenta. Si haces preguntas en el foro, miles de desarrolladores que tal vez hayan tenido que lidiar con el mismo problema podrán verlas.
Intenta incluir la mayor cantidad de información posible en tus búsquedas. Entre los elementos recomendados, se incluyen los siguientes:
- Solicitud y respuesta JSON saneadas. Asegúrate de quitar la información sensible, como tu token de desarrollador o AuthToken.
- Fragmentos de código Si tienes un problema específico del idioma o necesitas ayuda para trabajar con la API, incluye un fragmento de código para explicar lo que estás haciendo.
- Es el ID de la solicitud. Esto permite que los miembros del equipo de Relaciones con desarrolladores de Google ubiquen tu solicitud si se realiza en el entorno de producción. Te recomendamos que registres en tus registros el requestId incluido como una propiedad en las excepciones que encapsulan los errores de respuesta, así como más contexto que solo el requestId.
- La información adicional, como la versión del tiempo de ejecución o del intérprete y la plataforma, también puede ser útil para solucionar problemas.
Cómo solucionar el problema
Ahora que descubriste el problema y encontraste una solución, es hora de realizar el cambio y probar la corrección en una cuenta de prueba (preferida) o en producción (si el error solo se aplica a los datos de una cuenta de producción específica).
Considera compartir
Si publicaste una pregunta en el foro sobre un error que no se había mencionado allí antes y encontraste la solución, considera agregarla al hilo. La próxima vez que un desarrollador tenga el mismo problema, podrá resolverlo de inmediato.
Próximos pasos
Ahora que resolviste este problema, ¿notaste alguna forma de mejorar tu código para evitarlo en primer lugar?
Crear un buen conjunto de pruebas de unidades ayuda a mejorar la calidad y la confiabilidad del código de manera considerable. También acelera el proceso de prueba de los cambios nuevos para garantizar que no se haya interrumpido la funcionalidad anterior. Una buena estrategia de control de errores también es clave para mostrar todos los datos necesarios para solucionar problemas.