Flusso di lavoro per l'autenticazione multiutente

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:

  1. Configura l'applicazione in modo che richieda il seguente ambito OAuth 2.0:

    https://www.googleapis.com/auth/adwords
    
  2. La 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.

  3. 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:

  1. 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/adwords e l'accesso offline.
  2. 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.
  3. 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 GoogleAdsClient in 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/token

Puoi 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"
}