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 tu 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 prácticas recomendadas para solucionar errores de la API de Google Ads.

Garantizar la conectividad

  1. Asegúrate de tener acceso a la API de Google Ads y de tener una configuración correcta. Si tu respuesta muestra algún error HTTP, asegúrate de abordarlos con cuidado y de llegar a los servicios que deseas 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 administrar llamadas sin usar las bibliotecas cliente. Cada biblioteca cliente se envía con instrucciones específicas sobre cómo 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, el siguiente error 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 sigues teniendo problemas, 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 con fallas JSON, que contiene una lista de errores en la respuesta. Estos objetos proporcionan un código de error y un mensaje que explica el motivo. Son las primeras señales 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. 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, deberás averiguar qué significa.

Investiga el error

  1. Consulta nuestra documentación Errores comunes, que abarca los errores encontrados con más frecuencia. Se describe el mensaje de error, las referencias relevantes de la API y cómo evitar o manejar el error.

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

  3. Busca en nuestros canales de asistencia para obtener acceso a otros desarrolladores que comparten sus experiencias con la API. Es posible que otra persona se haya topado y haya resuelto el problema que tienes.

  4. Si encuentras errores no documentados, preséntalo en el foro.

  5. Dirígete al Centro de ayuda de Google Ads para obtener ayuda con la solución de 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. Las entradas de blog, a veces, serán una buena referencia para solucionar problemas de tu aplicación.

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

Ubicar la causa

Revisa el mensaje de excepción para determinar la causa del error. Después de analizar la respuesta, revisa la solicitud para encontrar una causa posible. Algunos mensajes de error de la API de Google Ads incluyen una fieldPathElements en el campo location de GoogleAdsError, que indica en qué parte de la solicitud ocurrió 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 se soluciona 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 Java, pero que tiene complementos para otros lenguajes) para ayudarte en 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 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. Omitir un campo de la máscara de campo en una solicitud de mutación indica que la API debería dejarlo solo. 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 la actualización. Revisa la descripción del campo en la documentación de referencia para ver si hay restricciones respecto de cuándo puedes actualizar el campo o si lo puedes hacer.

Cómo obtener ayuda

No siempre es posible identificar y resolver el problema por tu cuenta. Hacer preguntas en el foro expone tu pregunta a miles de desarrolladores que pueden haber tenido que lidiar con el mismo problema.

Intenta incluir la mayor cantidad de información posible en tus consultas. Entre los elementos recomendados, se incluyen los siguientes:

  • Solicitud y respuesta JSON limpias. 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 lenguaje o solicitas ayuda para trabajar con la API, incluye un fragmento de código para poder explicar lo que estás haciendo.
  • ID de solicitud Esto permite que los miembros del equipo de Relaciones con desarrolladores de Google ubiquen tu solicitud si se realizó 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 intérprete o del entorno de ejecución y la plataforma, también puede ser útil cuando se solucionan 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 solución en una cuenta de prueba (opción preferida) o en producción (si el error solo se aplica a los datos de una cuenta de producción específica).

Considera la posibilidad de compartir

Si publicaste una pregunta en el foro sobre un error que no se había presentado 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 evitarlo en primer lugar?

La creación de un buen conjunto de pruebas de unidades ayuda a mejorar de forma considerable la calidad y confiabilidad del código. También acelera el proceso de prueba de cambios nuevos para garantizar que no dañen la funcionalidad anterior. Una buena estrategia de manejo de errores también es clave para obtener todos los datos necesarios para la solución de problemas.