Autenticação e autorização

Como outras APIs do Google, a API Google Ads usa o protocolo OAuth 2.0 para autenticação e autorização. O OAuth 2.0 permite que o app cliente da API Google Ads acesse a conta do Google Ads de um usuário sem precisar processar ou armazenar as informações de login dele.

Neste guia, mostramos como configurar a biblioteca de cliente Java para autenticação da API Google Ads usando os três fluxos mais comuns do OAuth 2.0, além de explicar as credenciais necessárias.

Para uma investigação mais aprofundada sobre o modelo de acesso da API Google Ads, leia o guia do modelo de acesso do Google Ads.

Credenciais

Para acessar a API Google Ads, é necessário ter credenciais do OAuth 2.0 e, em alguns casos, um ID de cliente de login.

Credenciais do OAuth 2.0

Para autorizar como usuários da Conta do Google com acesso às contas do Google Ads, é necessário fornecer um conjunto de credenciais do OAuth 2.0. O tipo de credenciais necessárias varia de acordo com o fluxo do OAuth 2.0 usado.

A biblioteca é compatível com três fluxos:

  • Fluxo da conta de serviço
  • Fluxo de autenticação de usuário único
  • Fluxo de autenticação multiusuário

Consulte a visão geral do OAuth para saber mais sobre os fluxos do OAuth da API Google Ads e siga as instruções do fluxo que melhor atende às suas necessidades para receber as credenciais necessárias.

ID de cliente de login

Se quiser, especifique o ID de cliente de uma conta de administrador que fornece acesso à conta de veiculação. Isso precisa ser especificado se o acesso à conta de cliente for feito por uma conta de administrador. Não é necessário especificar todas as contas de administrador no caminho para o ID de cliente, apenas o ID de administrador de nível mais alto que você está usando para permissões de acesso. Para mais detalhes, consulte a documentação relacionada.

Na biblioteca de cliente, o ID de cliente de login é especificado pela chave api.googleads.loginCustomerId no arquivo ads.properties.

Configuração

É possível configurar a biblioteca de cliente com um arquivo ads.properties, variáveis de ambiente ou de maneira programática. Este guia se concentra no uso de um arquivo ads.properties. Consulte o guia de configuração para mais detalhes sobre todas as opções.

Se você estiver usando um arquivo ads.properties, coloque-o no diretório principal: ~/ads.properties.

Fluxos de trabalho do OAuth

Há três fluxos de trabalho comuns usados ao trabalhar com a API Google Ads.

Fluxo da conta de serviço

Esse é o fluxo de trabalho recomendado se o seu fluxo de trabalho não exigir nenhuma interação humana. Esse fluxo de trabalho requer uma etapa de configuração, em que o usuário adiciona uma conta de serviço à conta do Google Ads. O app pode usar as credenciais da conta de serviço para gerenciar a conta do Google Ads do usuário.

Depois de ter o arquivo JSON da chave privada, adicione o seguinte ao seu arquivo ads.properties:

api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE
# Only add this key if you are using Google Workspace domain-wide delegation
# to impersonate a user who has access to the Google Ads account.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE

Consulte o guia de fluxo de trabalho da conta de serviço para saber mais.

Fluxo de autenticação de usuário único

Esse fluxo de trabalho pode ser usado se você não puder usar contas de serviço. Esse fluxo de trabalho requer duas etapas de configuração:

  1. Dê a um único usuário acesso a todas as contas que serão gerenciadas usando a API Google Ads. Uma abordagem comum é conceder ao usuário acesso a uma conta de administrador da API Google Ads e vincular todas as contas do Google Ads de destino a essa conta de administrador.
  2. O usuário executa uma ferramenta de linha de comando, como a CLI gcloud ou o exemplo de código GenerateUserCredentials, para autorizar o app a gerenciar todas as contas do Google Ads em nome dele.

Depois de ter essas credenciais, adicione o seguinte ao arquivo ads.properties:

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE

Consulte o guia do fluxo de trabalho de autenticação de usuário único para saber mais.

Fluxo de autenticação multiusuário

Esse é o fluxo de trabalho recomendado se o app permitir que os usuários façam login e autorizem o app a gerenciar as contas do Google Ads em nome deles. O exemplo de código GenerateUserCredentials é uma ferramenta de linha de comando que mostra como obter a autenticação do usuário no momento da execução para gerenciar as contas do Google Ads em nome dele. Use este exemplo de código como referência para criar apps para computador ou apps da web que exigem autenticação do usuário.

Para aplicativos multiusuário, armazene o ID do cliente OAuth 2.0 e a chave secreta do cliente do aplicativo em ads.properties (ou em outro armazenamento de configuração), enquanto armazena o token de atualização de cada usuário final de forma segura no banco de dados do aplicativo e o transmite de forma programática no ambiente de execução ao criar UserCredentials e GoogleAdsClient:

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE

Consulte o guia do fluxo de trabalho de autenticação multiusuário para saber mais.

Gerenciar várias contas

É comum que um usuário gerencie mais de uma conta do Google Ads, seja por acesso direto às contas ou por uma conta de administrador do Google Ads. A biblioteca de cliente Java fornece os seguintes exemplos de código que ilustram como lidar com esses casos:

  1. O exemplo de código GetAccountHierarchy mostra como recuperar a lista de todas as contas em uma conta de administrador do Google Ads.
  2. O exemplo de código ListAccessibleCustomers mostra como recuperar a lista de todas as contas a que um usuário tem acesso direto. Essas contas podem ser usadas como valores válidos para a configuração loginCustomerId.

Application Default Credentials

A biblioteca de cliente Java também é compatível com a autenticação com o Application Default Credentials.

Isso é útil principalmente para o desenvolvimento local ou para o desenvolvimento em diferentes APIs do Google, já que é possível reutilizar as mesmas credenciais, desde que elas possam acessar os escopos necessários do OAuth 2.0.

Para a API Google Ads, verifique se o Application Default Credentials pode acessar o escopo do OAuth 2.0 https://www.googleapis.com/auth/adwords.

Para usar o Application Default Credentials, defina a opção api.googleads.useApplicationDefaultCredentials como true no arquivo ads.properties (ou chame .enableApplicationDefaultCredentials() em GoogleAdsClient.newBuilder()). Ao usar o Application Default Credentials, o ID do cliente, a chave secreta do cliente e o token de atualização não devem ser definidos.