Nel workflow di autenticazione multiutente, crei il tuo flusso OAuth per autenticare gli utenti. Nella documentazione di Google Identity vengono discussi diversi tipi di app, insieme alla configurazione del progetto della console API di Google necessaria per supportare ogni tipo di app. Tutti questi tipi di app sono supportati dall'API Google Ads. I dettagli tecnici aggiuntivi da tenere presente sono:
Configura la tua 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 le metriche dell'account offline 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 dell'app.
Panoramica del flusso di lavoro
L'implementazione di un flusso di lavoro di autenticazione multiutente prevede tre passaggi principali:
- Indirizza gli utenti alla schermata per il consenso OAuth: reindirizza ogni utente all'endpoint di autorizzazione OAuth 2.0 di Google richiedendo l'ambito
https://www.googleapis.com/auth/adwordse l'accesso offline. Gli utenti devono autenticarsi con una passkey per completare il flusso di autorizzazione e generare un token di aggiornamento. - Scambia il codice di autorizzazione con i token: dopo che l'utente ha concesso l'autorizzazione, acquisisci il codice di autorizzazione restituito e scambialo con un token di accesso e un token di aggiornamento.
- Archivia i token e inizializza il client in fase di runtime: archivia in modo sicuro il token di aggiornamento di ogni utente nel datastore e passa 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 GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori opzioni, consulta la guida alla configurazione.
.NET
Puoi inizializzare l'istanza GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori opzioni, consulta la guida alla configurazione.
Python
Puoi inizializzare l'istanza GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori opzioni, consulta la guida alla configurazione.
PHP
Puoi inizializzare l'istanza GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori opzioni, consulta la guida alla configurazione.
Ruby
Puoi inizializzare l'istanza GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori opzioni, consulta la guida alla configurazione.
Perl
Puoi inizializzare l'istanza GoogleAdsClient in fase di runtime utilizzando le credenziali ottenute dall'utente ai cui account stai effettuando chiamate 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 ulteriori 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 sulle campagne utilizzando il metodo GoogleAdsService.SearchStream per recuperare le campagne nel tuo account. Questa guida non illustra i dettagli dei report.
curl -i -X POST \
https://googleads.googleapis.com/v26/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"
}