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 de ambiente incorreta, um bug no software ou uma entrada inválida de um usuário. Seja qual for a origem, você precisará solucionar o problema e corrigir seu código ou adicionar lógica para lidar com o erro do usuário. Este guia aborda algumas das práticas recomendadas para solucionar erros da Google Ads API.

Garantir a conectividade

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

  2. Suas credenciais são incorporadas à solicitação para que os serviços autentiquem você. Conheça a estrutura das solicitações e respostas da Google Ads API, especialmente se você pretende processar chamadas sem usar as bibliotecas de cliente. Cada biblioteca cliente é fornecida 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 para conseguir o conjunto correto de que precisa. 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 estas etapas e ainda está tendo problemas, é hora de começar a solucionar os erros da API Google Ads.

Como determinar o problema

A API Google Ads 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 de qual 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 seu aplicativo oferece uma boa visão geral do que pode estar acionando o problema. Depois de identificar o erro nos registros, você precisa descobrir o que ele significa.

Como pesquisar o erro

  1. Consulte nossa documentação Erros comuns, que abrange os erros encontrados com mais frequência. Ele descreve a mensagem de erro, as referências relevantes da API e como evitar ou lidar com 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. Outra pessoa pode ter encontrado e resolvido o problema que você está tendo.

  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 limites de conta. A API Google Ads herda as regras e limitações do produto Google Ads principal.

  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 se a solicitação tem uma possível causa. Algumas mensagens de erro da API Google Ads incluem um fieldPathElements no campo location do GoogleAdsError, indicando em que parte da 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 solucionar 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, na sigla em inglês), como o Eclipse (um ambiente de desenvolvimento integrado 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 chegando à solicitação. Envie uma máscara de campo que corresponda às atualizações que você quer fazer. A Google Ads API oferece suporte a atualizações esparsas. A omissão de um campo da máscara de campo em uma solicitação de mutação indica que a API não deve alterá-lo. Se o aplicativo recupera um objeto, faz uma alteração e o envia de volta, talvez você esteja gravando em um campo que não aceita atualização. Verifique a descrição do campo na documentação de referência para ver se há restrições sobre quando ou se é possível atualizá-lo.

Como conseguir ajuda

Nem sempre é possível identificar e resolver o problema por conta própria. Se você fizer perguntas no fórum, ela será exposta a milhares de desenvolvedores que talvez tenham que lidar 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 confidenciais, como seu token de desenvolvedor ou AuthToken.
  • Snippets de código. Se você tiver um problema específico da linguagem ou solicitar ajuda para trabalhar com a API, inclua um snippet de código para explicar o que 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 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".
  • Informações adicionais, como versão do ambiente de execução/intérprete e plataforma também podem ser úteis para a 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).

Compartilhar

Se você postou uma pergunta no fórum sobre um erro que não tinha aparecido antes e encontrou a solução, adicione-a à conversa. Da próxima vez que um desenvolvedor tiver o mesmo problema, conseguirá 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 consideravelmente a qualidade e a confiabilidade do código. Isso também acelera o processo de teste de novas mudanças para garantir que a funcionalidade anterior não seja corrompida. Uma boa estratégia de tratamento de erros também é essencial para reunir todos os dados necessários para a solução de problemas.