Fluxo de trabalho da conta de serviço

Este guia explica como acessar a API Google Ads com contas de serviço.

Uma conta de serviço é uma conta que pertence ao seu app, não a um usuário final individual. As contas de serviço empregam um fluxo do OAuth 2.0 que não requer autorização humana, usando em vez disso um arquivo de chave que só o app pode acessar.

O uso de contas de serviço oferece duas grandes vantagens:

  • A autorização para o acesso da API Google Ads às contas do Google Ads é feita como uma etapa de configuração, aproveitando os recursos de autorização e gerenciamento de contas oferecidos pela interface do Google Ads. Isso economiza o trabalho do desenvolvedor, já que não é necessário criar fluxos do OAuth 2.0 e lidar com complicações que envolvem a interação do usuário, o armazenamento de credenciais do usuário e o gerenciamento de tokens.

  • A autorização de acesso às contas do Google Ads não está vinculada às credenciais de usuários individuais, o que pode ser útil em casos em que essa autorização deve continuar mesmo que o funcionário que autorizou o acesso originalmente saia da equipe ou da empresa.

Configuração de acesso à conta

  1. Comece criando uma conta de serviço e credenciais.

    Faça o download da chave da conta de serviço no formato JSON e anote o ID e o e-mail da conta.

  2. Faça login na sua conta do Google Ads como administrador. Acesse Administrador > Acesso e segurança.

  3. Clique no botão + na guia Usuários.

  4. Digite o e-mail da conta de serviço na caixa de entrada E-mail. Selecione o nível de acesso adequado à conta. As contas de serviço não são compatíveis com o nível de acesso Somente e-mail. Clique no botão Adicionar conta.

  5. A conta de serviço recebe acesso.

  6. Opcional:por padrão, não é possível conceder acesso de administrador a uma conta de serviço. Siga o princípio de menor privilégio e conceda acesso de administrador apenas se as chamadas de API exigirem isso. É possível fazer upgrade do acesso da seguinte maneira:

    • Clique na seta suspensa ao lado do nível de acesso da conta de serviço na coluna Nível de acesso.
    • Selecione Administrador na lista suspensa.

Configuração da biblioteca de cliente

Selecione a guia correspondente à sua linguagem de programação para instruções sobre como configurar a biblioteca de cliente. Se a sua conta de serviço acessar contas de cliente por uma conta de administrador do Google Ads (MCC), defina login-customer-id (ou loginCustomerId) como o ID de cliente de 10 dígitos dessa conta de administrador sem hifens (consulte ID de cliente de login).

Java

Defina o caminho JSON da chave privada na sua configuração. Se você estiver usando um arquivo ads.properties, adicione o seguinte:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Consulte o guia de configuração para mais detalhes.

.NET

Defina OAuth2Mode e OAuth2SecretsJsonPath na instância GoogleAdsConfig e use-a para inicializar o objeto GoogleAdsClient.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    // ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

Consulte o guia de configuração para mais detalhes.

Python

Defina o caminho JSON da chave privada na sua configuração. Se você estiver usando um arquivo google-ads.yaml, uma string YAML ou dict, adicione o seguinte:

json_key_file_path: JSON_KEY_FILE_PATH

Se você estiver usando variáveis de ambiente, adicione o seguinte à configuração ou ao ambiente do Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Consulte o guia de configuração para mais detalhes.

PHP

Configure as seguintes chaves no arquivo google_ads_php.ini.

[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Consulte o guia de configuração para mais detalhes.

Ruby

Configure as seguintes chaves no seu google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Consulte o guia de configuração para mais detalhes.

Perl

Defina o caminho JSON da chave privada na sua configuração. Se você estiver usando um arquivo googleads.properties, adicione o seguinte:

jsonKeyFilePath=JSON_KEY_FILE_PATH

Se você estiver usando variáveis de ambiente, adicione o seguinte à configuração ou ao ambiente do Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Consulte o guia de configuração para mais detalhes.

curl

Comece definindo a conta de serviço como as credenciais ativas na CLI gcloud.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Em seguida, busque um token de acesso do OAuth 2.0 para a API Google Ads.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Você pode usar o token de acesso nas suas chamadas de API. O exemplo a seguir mostra como executar um relatório de campanha usando o método GoogleAdsService.SearchStream para recuperar as campanhas na sua conta. Este guia não aborda os detalhes da criação de relatórios.

curl -i -X POST \
  https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

O conteúdo de query.json é o seguinte:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}