Nel flusso di lavoro di autenticazione multiutente, crei il tuo flusso OAuth per autenticare gli utenti. Nella documentazione di Google Identity vengono descritti diversi tipi di app, insieme alla configurazione del progetto della console Google Cloud necessaria per supportare ogni tipo di app. Tutti questi tipi di app sono supportati dall'API Google Ads. Gli ulteriori dettagli tecnici da tenere presente sono:
Configura l'applicazione in modo che richieda il seguente ambito OAuth 2.0:
https://www.googleapis.com/auth/adwordsLa tua app potrebbe dover effettuare chiamate API per conto dell'utente mentre è offline. Uno scenario comune è scaricare offline le metriche dell'account per generare report ed eseguire analisi dell'account. Per questo motivo, ti consigliamo di richiedere l'accesso offline OAuth.
Completa la procedura di verifica dell'app OAuth per ottenere la verifica della tua app.
Panoramica del workflow
L'implementazione di un flusso di lavoro per l'autenticazione multiutente prevede tre passaggi principali:
- Reindirizza gli utenti alla schermata per il consenso OAuth: reindirizza ogni utente all'endpoint di autorizzazione OAuth 2.0 di Google che richiede l'ambito
https://www.googleapis.com/auth/adwordse l'accesso offline. - Scambia il codice di autorizzazione con i token:dopo che l'utente concede l'autorizzazione, acquisisci il codice di autorizzazione restituito e scambialo con un token di accesso e un token di aggiornamento.
- Memorizza i token e inizializza il client in fase di runtime:memorizza in modo sicuro il token di aggiornamento di ogni utente nel datastore e trasmetti le credenziali dell'utente durante l'inizializzazione dell'istanza
GoogleAdsClientin fase di runtime.
Configurazione della libreria client
Dopo aver autorizzato l'utente e ottenuto le credenziali OAuth 2.0, puoi configurare la libreria client seguendo le istruzioni nella scheda corrispondente al tuo linguaggio di programmazione.
Java
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
Per altre opzioni, consulta la guida alla configurazione.
.NET
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
GoogleAdsClient client = new GoogleAdsClient(config);
Per altre opzioni, consulta la guida alla configurazione.
Python
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Per altre opzioni, consulta la guida alla configurazione.
PHP
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Per altre opzioni, consulta la guida alla configurazione.
Ruby
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
Per altre opzioni, consulta la guida alla configurazione.
Perl
Puoi inizializzare l'istanza di GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente i cui account stai chiamando l'API.
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");
Per altre opzioni, consulta la guida alla configurazione.
curl
Inizia utilizzando un client HTTP per recuperare un token di accesso OAuth 2.0. Questa guida
utilizza il comando curl.
curl \
--data "grant_type=refresh_token" \
--data "client_id=CLIENT_ID" \
--data "client_secret=CLIENT_SECRET" \
--data "refresh_token=REFRESH_TOKEN" \
https://oauth2.googleapis.com/tokenPuoi utilizzare il token di accesso nelle chiamate API. L'esempio seguente
mostra come generare un report sulla campagna utilizzando il metodo
GoogleAdsService.SearchStream per recuperare
le campagne nel tuo account. Questa guida non copre i dettagli delle
segnalazioni.
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"I contenuti di query.json sono i seguenti:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}