Solução de problemas

Vídeo: confira a palestra sobre tratamento de erros do workshop de 2019

Os erros podem ser causados por uma configuração inadequada do ambiente, um bug no software ou uma entrada inválida de um usuário. Não importa a origem, você precisa resolver o problema e corrigir o código ou adicionar uma lógica para processar o erro do usuário. Este guia aborda algumas das práticas recomendadas para solucionar erros da Google Ads API.

Como garantir a conectividade

  1. Verifique se você tem acesso à API Google Ads e uma configuração correta. Se a resposta retornar erros HTTP, resolva-os com cuidado e verifique se você está acessando os serviços que pretende usar no código.

  2. Suas credenciais são incorporadas à solicitação para que os serviços autentiquem você. Familiarize-se com a estrutura das solicitações e respostas da API Google Ads, principalmente se você for processar chamadas sem usar as bibliotecas de cliente. Cada biblioteca de cliente é enviada com instruções específicas sobre como incluir suas credenciais no arquivo de configuração. Consulte o README da biblioteca de cliente.

  3. Verifique se você está usando as credenciais corretas. Nosso Guia de início rápido orienta você no processo de aquisição do conjunto correto. Por exemplo, a falha de resposta a seguir mostra que o usuário enviou credenciais de autenticação invá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"
          }
        ]
      }
    }
    

Se você seguiu essas etapas e ainda está com problemas, é hora de resolver os erros da API Google Ads.

Como determinar o problema

A Google Ads API geralmente informa erros como um objeto de falha JSON, que contém uma lista de erros na resposta. Esses objetos fornecem um código de erro, bem como uma mensagem detalhando o motivo de isso ter acontecido. Eles são os primeiros sinais do que pode ser o problema.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

Todas as nossas bibliotecas de cliente geram exceções que encapsulam erros na resposta. Capturar essas exceções e imprimir as mensagens em um registro ou em uma tela de solução de problemas é uma ótima maneira de começar. A integração dessas informações com os outros eventos registrados no app oferece uma boa visão geral do que pode estar causando o problema. Depois de identificar o erro nos registros, você precisa descobrir o que ele significa.

Pesquisar o erro

  1. Consulte a documentação de erros comuns, que aborda os erros mais frequentes. Ele descreve a mensagem de erro, as referências de API relevantes e como evitar ou processar o erro.

  2. Se nossa documentação de erros comuns não mencionar especificamente o erro, consulte nossa documentação de referência e procure a string do erro.

  3. Pesquise nossos canais de suporte para ter acesso a outros desenvolvedores que compartilham experiências com a API. Talvez outra pessoa tenha encontrado e resolvido o problema que você está enfrentando.

  4. Se você encontrar erros que não estão documentados, informe-nos no fórum.

  5. Acesse a Central de Ajuda do Google Ads para resolver problemas de validação ou limite de conta. A API Google Ads herda as regras e limitações do produto principal do Google Ads.

  6. Postagens de blogs às vezes são boas referências ao solucionar problemas do seu aplicativo.

Depois de pesquisar o erro, é hora de determinar a causa raiz.

Localização da causa

Verifique a mensagem de exceção para determinar a causa do erro. Depois de analisar a resposta, verifique a solicitação para encontrar uma possível causa. Algumas mensagens de erro da API Google Ads incluem um fieldPathElements no campo location do GoogleAdsError, indicando onde na solicitação o erro ocorreu. Exemplo:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

Ao resolver um problema, pode ser que seu aplicativo esteja fornecendo as informações erradas para a API. Recomendamos o uso de um ambiente de desenvolvimento interativo (IDE), como o Eclipse, um IDE sem custo financeiro e de código aberto usado principalmente para desenvolver Java, mas que tem plug-ins para outras linguagens, para ajudar na depuração. Ele permite definir pontos de interrupção e percorrer o código linha por linha.

Verifique se a solicitação corresponde às entradas do aplicativo. Por exemplo, o nome da campanha pode não estar sendo enviado à solicitação. Envie uma máscara de campo que corresponda às atualizações que você gostaria de fazer. A API Google Ads oferece suporte a atualizações esparsas. Omitir um campo da máscara de campo em uma solicitação de mutação indica que a API não deve modificá-lo. Se o aplicativo recuperar um objeto, fizer uma mudança e o enviar de volta, talvez você esteja gravando em um campo que não aceita atualizações. Verifique a descrição do campo na documentação de referência para saber se há restrições sobre quando ou se é possível atualizar o campo.

Como conseguir ajuda

Nem sempre é possível identificar e resolver o problema por conta própria. Fazer perguntas no fórum expõe sua pergunta a milhares de desenvolvedores que podem ter lidado com o mesmo problema.

Tente incluir o máximo de informações possível nas consultas. Os itens recomendados incluem:

  • Solicitação e resposta JSON limpas. Remova informações sensíveis, como o token de desenvolvedor ou AuthToken.
  • Snippets de código. Se você tiver um problema específico do idioma ou pedir ajuda para trabalhar com a API, inclua um snippet de código para ajudar a explicar o que você está fazendo.
  • ID da solicitação. Isso permite que os membros da equipe de relações com o desenvolvedor do Google localizem sua solicitação, se ela for feita no ambiente de produção. Recomendamos registrar nos seus registros o requestId incluído como uma propriedade nas exceções que encapsulam erros de resposta, além de mais contexto do que o requestId sozinho.
  • Outras informações, como a versão do ambiente de execução/intérprete e a plataforma, também podem ser úteis na solução de problemas.

Correção do problema

Agora que você já descobriu qual é o problema e chegou a uma solução, é hora de fazer alterações e testar a correção em uma conta de teste (de preferência) ou de produção (se o bug só se aplicar aos dados de uma conta de produção específica).

Considerar o compartilhamento

Se você tiver postado uma pergunta no fórum sobre um erro que não foi encontrado antes e encontrou a solução, considere adicioná-la à discussão. Na próxima vez que um desenvolvedor tiver o mesmo problema, ele poderá resolvê-lo imediatamente.

Próximas etapas

Agora que esse problema já está resolvido, você descobriu formas de melhorar seu código para evitar que ele ocorra?

Criar um bom conjunto de testes de unidade ajuda a melhorar a qualidade e a confiabilidade do código consideravelmente. Ele também acelera o processo de teste de novas mudanças para garantir que elas não quebrem a funcionalidade anterior. Uma boa estratégia de tratamento de erros também é importante para mostrar todos os dados necessários para a solução de problemas.