Solución de problemas

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

Los errores pueden deberse a una configuración de entorno incorrecta, un error en el 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 de la API de Google Ads.

Cómo garantizar la conectividad

  1. Asegúrate de tener acceso a la API de Google Ads y de que la configuración sea correcta. Si tu respuesta muestra algún error HTTP, asegúrate de abordarlos con cuidado y de que te estés comunicando con los servicios que deseas usar desde tu código.

  2. Tus credenciales se incorporan 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 deseas 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 archivo README de la biblioteca cliente).

  3. Verifica que estés usando las credenciales correctas. En nuestra guía de inicio rápido, se explica 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 sigues teniendo problemas, es hora de que profundices en la solución de problemas de la API de Google Ads.

Determina el problema

Por lo general, la API de Google Ads informa los errores como un objeto de error 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 el motivo. 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 y imprimir los mensajes en un registro o 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 sobre errores comunes, que abarca los errores más frecuentes. En él, se describe el mensaje de error, las referencias de API relevantes y cómo evitar o controlar 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 cadena 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 haya encontrado y resuelto el problema que tienes.

  4. Si encuentras algún error que no esté documentado, infórmanos al respecto en el foro.

  5. Visita el Centro de ayuda de Google Ads para obtener 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 pueden ser una buena referencia para solucionar problemas de tu aplicación.

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

Cómo ubicar la causa

Revisa el mensaje de excepción para determinar la causa del error. Después de revisar 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, lo que indica dónde se produjo el error en la solicitud. 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 soluciones un problema, es posible que tu aplicación le 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 con la depuración. Te permite establecer puntos de interrupción y revisar el código línea por línea.

Vuelve a verificar 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 campos en una solicitud de mutación indica que la API debe dejarlo en paz. 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. Revisa 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 la pregunta en el foro, esta se mostrará a miles de desarrolladores que podrían 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 de idioma o solicitas ayuda para trabajar con la API, incluye un fragmento de código para explicar lo que estás haciendo.
  • RequestId. Esto permite que los miembros del equipo de Relaciones con Desarrolladores de Google encuentren 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 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 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 de 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 revelado antes y encontraste la solución, considera agregarla a la conversación. 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 cambios nuevos para garantizar que no hayan afectado la funcionalidad anterior. Una buena estrategia de control de errores también es clave para mostrar todos los datos necesarios para solucionar problemas.