Solución de problemas

Video: Mira la charla sobre manejo de errores del taller de 2019

Los errores pueden deberse a una configuración incorrecta del entorno, un error en el software o una entrada no válida de un usuario. Sin importar la fuente, deberás solucionar el problema y corregir el código o agregar lógica para manejar el error del usuario. En esta guía, se analizan algunas recomendaciones para solucionar errores de la API de Google Ads.

Garantiza la conectividad

  1. Asegúrate de tener acceso a la API de Google Ads y tener una configuración correcta. Si tu respuesta muestra algún error de HTTP, asegúrate de abordarlos con cuidado y de llegar a los servicios que pretendes usar desde tu código.

  2. 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 manejar 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 archivo README de la biblioteca cliente).

  3. Verifica que estés usando las credenciales correctas. Nuestra guía de inicio rápido te guiará a través del proceso de adquisición del 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 siguió estos pasos y los problemas persisten, es momento de profundizar en la solución de los errores de la API de Google Ads.

Determinación del problema

Por lo general, la API de Google Ads informa los errores como un objeto de error de JSON que contiene una lista de los errores en la respuesta. Estos objetos proporcionan un código de error, así como un mensaje que explica por qué ocurrió. Son tus 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. Una buena manera de comenzar es capturar estas excepciones e imprimir los mensajes en un registro o en una pantalla de solución de problemas. La integración de esta información con los otros eventos registrados en tu aplicación ofrece una buena descripción general de lo que podría estar activando el problema. Una vez que hayas identificado el error en los registros, tendrás que averiguar qué significa.

Investiga el error

  1. Consulta nuestra documentación sobre errores comunes, en la que se describen los errores más frecuentes. Describe el mensaje de error, las referencias de la API relevantes y cómo evitar o manejar el error.

  2. Si la documentación sobre errores comunes no menciona específicamente el error, consulta la documentación de referencia y busca la cadena del error.

  3. Busca en nuestros canales de asistencia para obtener acceso a otros desarrolladores que comparten sus experiencias con la API. Otra persona podría haber encontrado, y resuelto, el problema que tienes.

  4. Si encuentras algún error que no esté documentado, comunícanoslo en el foro.

  5. Visita el Centro de ayuda de Google Ads si necesitas ayuda para solucionar problemas de validación o límite de cuentas (la API de Google Ads hereda las reglas y limitaciones del producto principal de Google Ads).

  6. En ocasiones, las entradas de blog serán una buena referencia para solucionar los problemas de tu solicitud.

Después de investigar el error, es hora de determinar la causa raíz.

Localiza la causa

Revisa el mensaje de excepción para determinar la causa del error. Después de ver la respuesta, revisa la solicitud para conocer 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, puede ser que tu aplicación esté proporcionando información incorrecta a la API. Te recomendamos que uses un entorno de desarrollo interactivo (IDE), como Eclipse (un IDE de código abierto y gratuito que se usa principalmente para desarrollar Java, pero que tiene complementos para otros lenguajes), a fin de facilitar la depuración. Te permite establecer puntos de interrupción y recorrer el código línea por línea.

Vuelve a verificar para asegurarte de que la solicitud coincida con las entradas de tu aplicación (por ejemplo, es posible que el nombre de la campaña no se incluya en 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. Omitir un campo de la máscara de campo en una solicitud de mutación indica que la API debería dejarlo así. Si tu aplicación recupera un objeto, realiza un cambio y lo devuelve, es posible que escribas 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 una pregunta en el foro, se expone tu pregunta a miles de desarrolladores que quizás tuvieron que lidiar con el mismo problema.

Trata de incluir la mayor cantidad de información posible en tus consultas. Entre los artículos recomendados, se incluyen los siguientes:

  • Solicitud y respuesta JSON desinfectadas. Asegúrate de quitar la información sensible, como tu token de desarrollador o AuthToken.
  • Fragmentos de código Si tienes un problema en un lenguaje específico o solicitas ayuda para trabajar con la API, incluye un fragmento de código que te ayude a explicar lo que estás haciendo.
  • ID de la solicitud. Esto permite que los miembros del equipo de Relaciones con Desarrolladores de Google localicen 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 requestId solo.
  • La información adicional, como la versión del entorno 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 resolviste el problema y encontraste una solución, es momento de realizar el cambio y probar la corrección en una cuenta de prueba (preferido) 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 mostró antes y encontraste la solución, considera agregarla al subproceso. 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 evitar esto?

La creación de un buen conjunto de pruebas de unidades ayuda a mejorar de manera considerable la calidad y la confiabilidad del código. También acelera el proceso de probar cambios nuevos para garantizar que no interrumpan la funcionalidad anterior. Una buena estrategia de manejo de errores también es clave para mostrar todos los datos necesarios a fin de solucionar problemas.