Solução de problemas

Os erros podem ser causados por uma configuração incorreta do ambiente, um bug no software ou uma entrada inválida de um usuário. Seja qual for a origem, você precisará resolver problemas e corrigir o código ou adicionar uma lógica para lidar com o erro do usuário. Neste guia, discutimos algumas práticas recomendadas para a solução de problemas da API Google Ads.

Garantir a conectividade

  1. Verifique se você tem acesso à API Google Ads e se a configuração está correta. Se a resposta retornar erros de 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 possam autenticar 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 mostra o processo de aquisição do conjunto correto de que você 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 essas etapas e ainda está com problemas, é hora de resolver problemas com os erros da API Google Ads.

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 do erro e uma mensagem que explica por que ele ocorreu. 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.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 1 }
        ]
      }
    }
  ]
}

Todas as nossas bibliotecas de cliente geram exceções que encapsulam erros na resposta. Capturar essas exceções e mostrar as mensagens em um registro ou em uma tela de solução de problemas é um ótimo começo. A integração dessas informações com os outros eventos registrados no aplicativo 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 nossa documentação sobre erros comuns, que aborda os erros mais frequentes. Ele descreve a mensagem de erro, as Referências da API relevantes e como evitar ou lidar com o erro.

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

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

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

  5. As postagens do blog às vezes são uma boa referência para resolver problemas no aplicativo.

  6. Se você encontrar erros não documentados, entre em contato com o suporte.

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

Localizar a 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 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": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

Ao resolver problemas, talvez você descubra que o aplicativo está fornecendo as informações erradas para a API. Recomendamos o uso de um depurador de ambiente de desenvolvimento integrado (IDE) para definir pontos de interrupção, percorrer o código linha por linha e inspecionar os payloads de solicitação criados antes de serem enviados.

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 API Google Ads é compatível com atualizações esparsas. Omitir um campo da máscara em uma solicitação de mutação indica que a API não deve alterá-lo. Se o aplicativo recuperou um objeto, fez uma mudança e o retornou, talvez você esteja inserindo valores em um campo que não aceita atualizações. Verifique a descrição do campo na documentação de referência para ver 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. Entre em contato com o suporte para receber ajuda.

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

  • Solicitação e resposta JSON limpas. Remova informações sensíveis, como o token de acesso OAuth, o token de atualização e os IDs de cliente.
  • Snippets de código. Se você estiver com um problema específico de idioma ou solicitando ajuda para trabalhar com a API, inclua um snippet de código para ajudar a explicar o que está fazendo.
  • request-id. Isso permite que os membros da equipe de relações com o Google Developers localizem sua solicitação se ela for feita no ambiente de produção. Recomendamos registrar o request-id incluído nos cabeçalhos de resposta ou nas exceções que encapsulam erros de resposta, além de mais contexto do que apenas o request-id.
  • Informações adicionais, como o ambiente de execução ou a versão do interpretador e a plataforma, também podem ser úteis na solução de problemas.

Corrigir o 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).

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. Ele também acelera o processo de teste de novas mudanças para garantir que elas não tenham prejudicado 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.