Vídeo: assista à palestra sobre tratamento de erros do workshop de 2019
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. Não importa a origem, você precisará resolver o problema e corrigir o código ou adicionar lógica para lidar com o erro do usuário. Este guia discute algumas práticas recomendadas para resolver erros da API Google Ads.
Garantir a conectividade
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 seu código.
Suas credenciais são incorporadas à sua 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.
Verifique se você está usando as credenciais corretas. Nosso guia de início rápido mostra como adquirir 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á com problemas, é hora de solucionar os erros da API Google Ads.
Como determinar o problema
Em geral, a API Google Ads 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 e uma mensagem explicando por que ele ocorreu. Eles são os primeiros indicadores 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 uma tela de solução de problemas é uma ótima maneira de começar. Integrar essas informações aos outros eventos registrados no seu 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
Consulte nossa documentação de erros comuns, que aborda os erros mais frequentes. Ela descreve a mensagem de erro, as referências de API relevantes e como evitar ou processar o erro.
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.
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á enfrentando.
Se você encontrar erros que não estão documentados, informe isso no fórum.
Acesse a Central de Ajuda do Google Ads para resolver problemas de validação ou limites da conta. A API Google Ads herda as regras e limitações do produto principal do Google Ads.
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.
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 um fieldPathElements
no campo location
do GoogleAdsError
, indicando onde ocorreu o erro 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 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, na sigla em inglês), como o Eclipse (um IDE sem custo financeiro e de código aberto usado principalmente para desenvolver em Java, mas que tem plug-ins para outras linguagens) para ajudar na depuração. Ele permite definir pontos de interrupção e avançar pelo 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 API Google Ads aceita 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 seu 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. Confira a descrição do campo na documentação de referência para saber 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. Ao fazer uma pergunta no fórum, ela fica disponível para milhares de desenvolvedores que podem ter enfrentado o mesmo problema.
Tente incluir o máximo de informações possível nas consultas. Os itens recomendados incluem:
- Solicitação e resposta JSON higienizadas. Remova informações sensíveis, como seu token de desenvolvedor ou AuthToken.
- Snippets de código. Se você estiver com um problema específico de idioma ou precisar de ajuda para trabalhar com a API, inclua um snippet de código para explicar o que você está fazendo.
- RequestId. Isso permite que os membros da equipe de relações com desenvolvedores 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, bem como mais contexto do que apenas requestId.
- Outras informações, como versão do tempo de execução/interpretador 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).
Considerar o compartilhamento
Se você postou uma pergunta no fórum sobre um erro que não havia sido abordado 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 consideravelmente a qualidade e a confiabilidade do código. Ele também acelera o processo de teste de novas mudanças para garantir que não prejudicaram 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.