Assim 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 de um usuário sem precisar processar ou armazenar as informações de login dele.
Entender o modelo de acesso do Google Ads
Para trabalhar de maneira eficaz com a API Google Ads, é necessário entender como o modelo de acesso do Google Ads funciona. Recomendamos que você leia o guia do modelo de acesso do Google Ads.
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 ele não exigir interação humana. Esse fluxo de trabalho exige uma etapa de configuração em que o usuário adiciona uma conta de serviço à conta do Google Ads. Em seguida, o app pode usar as credenciais da conta de serviço para gerenciar a conta do Google Ads do usuário.
Confira como configurar o OAuth2 para acesso à API usando suas próprias credenciais com uma conta de serviço na biblioteca de cliente do Perl:
Criar credenciais do OAuth2 :
Siga as instruções para gerar uma conta de serviço e um
*.JSONarquivo.Configurar a biblioteca de cliente :
Defina o caminho JSON da chave privada na configuração. Se você estiver usando um arquivo
googleads.properties, adicione o seguinte:jsonKeyFilePath=PRIVATE_KEY_FILE_PATHSe você estiver usando variáveis de ambiente, adicione o seguinte à configuração ou ambiente do Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=PRIVATE_KEY_FILE_PATHConsulte o guia do 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 exige duas etapas de configuração:
- Conceda a um único usuário acesso a todas as contas a serem 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 a essa conta de administrador.
- O usuário executa o
generate_user_credentials.plexemplo de código para autorizar seu app a gerenciar todas as contas do Google Ads em nome dele.
As etapas a seguir executam um exemplo de código interativo, que exige que você forneça informações.
Em um terminal, execute o
generate_user_credentials.plexemplo noexamplesdiretório. Você pode modificar os valoresINSERT_XXX_HEREno exemplo antes da execução ou usar os argumentos de linha de comando-client_idpara o ID do cliente e-client_secretpara a chave secreta do cliente.perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}Esse exemplo de código pede que você acesse um URL em que é necessário autorizar o app a acessar sua conta do Google Ads em seu nome.
Paste this url in your browser: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...Acesse o URL em uma sessão de navegador particular ou em uma janela anônima. Faça login com a Conta do Google que você usa para acessar o Google Ads. Normalmente, essa é uma conta de e-mail que tem acesso a uma conta de administrador do Google Ads que contém todas as contas que você precisa gerenciar na hierarquia de contas. Clique em Continuar na tela de permissão do OAuth 2.0.

Você será redirecionado para uma página com uma mensagem indicando que a autorização foi bem-sucedida.
Authorization code was successfully retrieved.Volte ao console em que você está executando o exemplo de código. Você verá que o exemplo de código foi concluído e está mostrando seu token de atualização e algumas instruções, seguidas das instruções que você precisará seguir para configurar a biblioteca de cliente:
Replace the following keys and values in your googleads.properties configuration file: clientId==***********************apps.googleusercontent.com clientSecret=**** refreshToken=****Pressione
Ctrl + Cpara encerrar o processo. Em seguida, copie o token de atualização gerado com o ID do cliente e a chave secreta do cliente para o arquivogoogleads.propertiesou salve-o em outro lugar para usar ao instanciar a biblioteca no momento da execução.
A biblioteca pode ser inicializada usando as credenciais do OAuth 2.0 do usuário definindo o seguinte em googleads.properties:
clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID
Como alternativa, use variáveis de ambiente:
export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
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 app cria e gerencia as credenciais de usuário do OAuth 2.0.
Para o Perl, você normalmente implementaria um fluxo de aplicativo da Web em que o aplicativo processa o redirecionamento do OAuth 2.0 e o gerenciamento de tokens. O usuário se autentica pelo aplicativo, e o aplicativo armazena e usa o token de atualização do usuário para fazer chamadas de API em nome dele.
A configuração para usar as credenciais recebidas é a mesma do fluxo de autenticação de usuário único:
clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID
Como alternativa, use variáveis de ambiente:
export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
Consulte o guia do fluxo de trabalho de autenticação multiusuário para saber mais.
E se o usuário 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 do Perl fornece exemplos que ilustram como lidar com esses casos.
- O
get_account_hierarchy.plexemplo mostra como recuperar a lista de todas as contas em uma conta de administrador do Google Ads. - O
list_accessible_customers.plexemplo mostra como recuperar a lista de todas as contas a que um usuário tem acesso direto a. Essas contas podem ser usadas como valores válidos para a configuraçãoLoginCustomerIdno arquivogoogleads.propertiesou na variável de ambienteGOOGLE_ADS_LOGIN_CUSTOMER_ID.