Solução de problemas

Vídeo: confira a palestra sobre tratamento de erros do workshop de 2019 (em inglês)

Os erros podem ser causados por uma configuração de ambiente incorreta, um bug no seu software ou entradas inválidas de um usuário. Não importa a fonte, você vai resolver o problema e corrigir o código ou adicionar lógica para o erro do usuário. Este guia discute algumas práticas recomendadas para solucionar 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 as resposta retorne erros HTTP, resolva-os com atenção e se você está acessando os serviços que pretende usar no seu código.

  2. Suas credenciais são incorporadas request para que para autenticar você. Conheça a estrutura da API Google Ads. e respostas, especialmente se você pretende processar chamadas sem usando bibliotecas de cliente. Cada biblioteca cliente é fornecida com instruções sobre como incluir suas credenciais no arquivo de configuração (consulte a README da biblioteca cliente).

  3. Verifique se você está usando as credenciais corretas. Nossos Guia de início rápido orienta você no processo de aquisição do o 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á tendo problemas, é hora de começar para 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 explicando por que isso aconteceu. Eles são seus primeiros sinais do que 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 encapsular 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 para começar. A integração dessas informações aos outros eventos registrados na sua aplicativo oferece uma boa visão geral do que pode estar acionando o problema. Depois de identificar o erro nos registros, é preciso descobrir o que significa.

Como pesquisar o erro

  1. Consulte nossos erros comuns , que abrange os erros encontrados com mais frequência. Ela descreve a mensagem de erro, referências relevantes da API e como evitar ou para resolver 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 de erro.

  3. Pesquise nossos canais de suporte para ter acesso a outros desenvolvedores a compartilhar suas experiências com a API. Outra pessoa pode ter encontrar e resolver o problema que está enfrentando.

  4. Se você encontrar erros que não estão documentados, leve isso para nossa atenção 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 as 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 na resposta, procure uma possível causa na solicitação. Algum erro na API Google Ads as mensagens incluem um fieldPathElements; no campo location da GoogleAdsError, indicando onde na solicitação em que 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 o informações incorretas para a API. Recomendamos o uso de um de desenvolvimento integrado (IDE), como o Eclipse (um ambiente e um IDE de código aberto que é usado principalmente para desenvolver Java, mas 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 seu aplicativo (por exemplo o nome da campanha pode não estar chegando à solicitação). Confirme se você envia uma máscara de campo que corresponda às atualizações que você quer fazer, a API Google Ads 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 precisa fazer nada. Se o aplicativo recuperar um objeto, fizer uma alteração, e a enviar de volta, você pode estar escrevendo em um campo que não suporte à atualização. Verifique a descrição do campo na referência documentação para saber se há restrições sobre quando ou se você podem 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 para milhares de desenvolvedores que talvez tenham tido 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. Não se esqueça de remover os dados sensíveis informações como seu token de desenvolvedor ou AuthToken.
  • Snippets de código. Se você tiver um problema específico de linguagem ou solicitando ajuda para trabalhar com a API, inclua um snippet de código para ajudar explicar o que você está fazendo.
  • ID da solicitação. Isso permite que os membros da equipe de relações com desenvolvedores do Google localizem a solicitação, caso ela seja feita no ambiente de produção. Qa é recomendável registrar nos registros o requestId incluído como uma propriedade em as exceções que englobam os erros de resposta, além de mais contexto do que o requestId sozinho.
  • Informações adicionais, como versão de tempo de execução/intérprete e em nuvem também pode ser útil 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).

Compartilhar

Se você postou uma pergunta no fórum sobre um erro que não foi que surgiram antes e você encontrou a solução, considere adicioná-la ao fio Da próxima vez que um desenvolvedor tiver o mesmo problema, ele 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 a qualidade e a confiabilidade do código consideravelmente. Ela também acelera o processo de teste de novas mudanças para garantir não corrompem as funcionalidades anteriores. Uma boa estratégia de tratamento de erros é fundamental ter todos os dados necessários para a solução de problemas.