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 seu software ou uma entrada inválida de um usuário. Independentemente da origem, você vai 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.

Como garantir a conectividade

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

  2. Suas credenciais são incorporadas na solicitação para que os serviços autentiquem você. Conheça a estrutura das solicitações e respostas da Google Ads API, 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 de que você precisa. Por exemplo, a seguinte falha de resposta 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 as etapas e ainda está com problemas, é hora de solucionar os erros da Google Ads API.

Determinar o problema

A API Google Ads geralmente informa erros como um objeto de falha JSON, contendo uma lista de erros na resposta. Esses objetos fornecem um código de erro, bem como uma mensagem esclarecendo o motivo. Eles são seus 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 lançam 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 desencadeando o problema. Depois de identificar o erro nos registros, você precisará descobrir o que ele significa.

Como pesquisar o erro

  1. Consulte a documentação Erros comuns, que aborda os erros mais encontrados. Ela descreve a mensagem de erro, as referências de API relevantes e como evitar ou lidar com o erro.

  2. Se nossa documentação de erros comuns não mencionar especificamente o erro, consulte a 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. Alguém pode ter se deparado e resolvido – o problema que você está tendo.

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

  5. Acesse a Central de Ajuda do Google Ads para resolver problemas de validação ou limites de conta. A Google Ads API herda as regras e as 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 se o pedido tem uma possível causa. Algumas mensagens de erro da API Google Ads incluem um fieldPathElements no campo location do GoogleAdsError, indicando onde o erro ocorreu na solicitação. 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 informações erradas à 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 que é usado principalmente para desenvolver Java, mas tem plug-ins para outras linguagens, para ajudar na depuração. Com ele, é possível 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, se o nome da campanha não chegar à solicitação). Envie uma máscara de campo que corresponda às atualizações que você quer fazer. A API Google Ads é compatível com atualizações avulsas. A omissão de um campo da máscara de campo em uma solicitação de mutação indica que a API não o modificará. Se o aplicativo recuperou um objeto, fez uma alteração e o retornou, talvez você esteja gravando em um campo que não oferece suporte a atualizações. Verifique a descrição do campo na documentação de referência para ver se há restrições quanto a quando ou se você pode atualizar o campo.

Como conseguir ajuda

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

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

  • Solicitação e resposta JSON corrigidas. Remova informações confidenciais, como seu token de desenvolvedor ou AuthToken.
  • Snippets de código. Se você estiver enfrentando um problema específico da linguagem ou solicitando ajuda para trabalhar com a API, inclua um snippet de código para ajudar a explicar o que está fazendo.
  • ID da solicitação. Isso permite que os membros da equipe de relações com desenvolvedores do Google localizem sua solicitação se ela tiver sido feita no ambiente de produção. Recomendamos que você registre nos registros o requestId incluído como uma propriedade nas exceções que encapsulam erros de resposta, além de oferecer mais contexto do que o requestId sozinho.
  • Informações adicionais, como versão de ambiente de execução/intérprete e 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).

Considere compartilhar

Se você postou uma pergunta no fórum sobre um erro que não havia aparecido antes e encontrou a solução, adicione-a à conversa. Da 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?

A criação de 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 elas não corrompam a funcionalidade anterior. Uma boa estratégia de tratamento de erros também é fundamental para mostrar todos os dados necessários para a solução de problemas.