No fluxo de trabalho de autenticação multiusuário, você cria seu próprio fluxo do OAuth para autenticar os usuários. Há vários tipos de apps discutidos na documentação do Google Identity e na configuração do projeto do Console do Google Cloud necessária para oferecer suporte a esse tipo de app. Todos esses tipos de apps são compatíveis com a API Google Ads. Outros detalhes técnicos importantes:
Para acessar a API Google Ads, configure seu aplicativo para autenticar o seguinte escopo:
https://www.googleapis.com/auth/adwords
Talvez seu app precise fazer chamadas de API em nome do usuário enquanto ele está off-line. Um cenário comum é baixar métricas da conta off-line para gerar relatórios e fazer análises. Por isso, recomendamos solicitar acesso off-line do OAuth.
Você precisa passar pelo processo de verificação de apps OAuth e certificar seu app.
Configuração da biblioteca de cliente
Depois de autorizar o usuário e conseguir as credenciais do OAuth 2.0, siga as instruções na guia correspondente à sua linguagem de programação para configurar a biblioteca de cliente.
Java
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId(OAUTH_CLIENT_ID)
.setClientSecret(OAUTH_CLIENT_SECRET)
.setRefreshToken(REFRESH_TOKEN)
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the developer token which enables API access.
.setDeveloperToken(DEVELOPER_TOKEN)
// Sets the OAuth credentials which provide Google Ads account access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
.build();
``` See the [configuration guide][java-config-guide] for additional options.
.NET
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
DeveloperToken = DEVELOPER_TOKEN,
LoginCustomerId = LOGIN_CUSTOMER_ID,
OAuth2ClientId = OAUTH_CLIENT_ID,
OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
OAuth2RefreshToken = REFRESH_TOKEN,
};
GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);
Consulte o guia de configuração para mais opções.
Python
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "REFRESH_TOKEN",
"client_id": "OAUTH_CLIENT_ID",
"client_secret": "OAUTH_CLIENT_SECRET"}
client = GoogleAdsClient.load_from_dict(credentials)
Consulte o guia de configuração para mais opções.
PHP
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Consulte o guia de configuração para mais opções.
Ruby
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_CLIENT_ID_HERE'
config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
end
Consulte o guia de configuração para mais opções.
Perl
É possível inicializar sua instância GoogleAdsClient
no tempo de execução usando as
credenciais obtidas do usuário cujas contas você está fazendo
chamadas de API.
my $api_client = Google::Ads::GoogleAds::Client->new({
developer_token => "INSERT_DEVELOPER_TOKEN_HERE",
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");
Consulte o guia de configuração para mais opções.
curl
Comece usando um cliente HTTP para buscar um token de acesso OAuth 2.0. Este guia usa o comando curl
.
curl \
--data "grant_type=refresh_token" \
--data "client_id=CLIENT_ID" \
--data "client_secret=CLIENT_SECRET" \
--data "refresh_token=REFRESH_TOKEN" \
https://www.googleapis.com/oauth2/v3/token
Agora 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/v21/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_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"
}