Flusso di lavoro del service account

Questa guida illustra come accedere all'API Google Ads con i service account.

Un service account è un account che appartiene alla tua app anziché a un singolo utente finale. I service account utilizzano un flusso OAuth 2.0 che non richiede l'autorizzazione umana, ma un file chiave accessibile solo alla tua app.

L'utilizzo dei service account offre due vantaggi principali:

  • L'autorizzazione per l'accesso all'API Google Ads agli account Google Ads viene eseguita come passaggio di configurazione, sfruttando le funzionalità di autorizzazione e gestione degli account offerte dall'interfaccia utente Google Ads. In questo modo, gli sviluppatori non devono creare flussi OAuth 2.0 e gestire le complicazioni che comportano l'interazione con l'utente, l'archiviazione delle credenziali utente e la gestione dei token.

  • L'autorizzazione per l'accesso agli account Google Ads non è legata alle credenziali del singolo utente, il che può essere utile nei casi in cui si prevede che l'autorizzazione continui anche se il dipendente che ha autorizzato originariamente l'accesso lascia il team o l'azienda.

Configurazione dell'accesso all'account

  1. Inizia creando un service account e le credenziali.

    Scarica la chiave del service account in formato JSON e annota l'ID e l'email del service account.

  2. Accedi al tuo account Google Ads come amministratore. Vai ad Amministratore > Accesso e sicurezza.

  3. Fai clic sul pulsante + nella scheda Utenti.

  4. Digita l'email del service account nella casella di input Email. Seleziona il livello di accesso all'account appropriato (tieni presente che i service account non supportano il livello di accesso Solo email) e fai clic sul pulsante Aggiungi account.

  5. Al service account viene concesso l'accesso.

  6. (Facoltativo) Per impostazione predefinita, non puoi concedere l'accesso amministratore a un service account. Segui il principio del privilegio minimo e concedi l'accesso amministrativo solo se le chiamate API lo richiedono. Puoi eseguire l'upgrade dell'accesso nel seguente modo:

    • Fai clic sulla freccia del menu a discesa accanto al livello di accesso dell'account di servizio nella colonna Livello di accesso.
    • Seleziona Amministratore dall'elenco a discesa.

Configurazione della libreria client

Seleziona la scheda corrispondente al tuo linguaggio di programmazione per istruzioni su come configurare la libreria client. Se il tuo account di servizio accede agli account cliente tramite un account amministratore Google Ads (Centro clienti), imposta anche login-customer-id (o loginCustomerId) sull'ID cliente di 10 cifre di quell'account amministratore senza trattini (vedi ID cliente di accesso).

Java

Imposta il percorso JSON della chiave privata nella configurazione. Se utilizzi un file ads.properties, aggiungi quanto segue:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Per ulteriori dettagli, consulta la guida alla configurazione.

.NET

Imposta OAuth2Mode e OAuth2SecretsJsonPath sull'istanza GoogleAdsConfig e utilizzala per inizializzare l'oggetto GoogleAdsClient.

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

Per ulteriori dettagli, consulta la guida alla configurazione.

Python

Imposta il percorso JSON della chiave privata nella configurazione. Se utilizzi un file google-ads.yaml, una stringa YAML o dict, aggiungi quanto segue:

json_key_file_path: JSON_KEY_FILE_PATH

Se utilizzi variabili di ambiente, aggiungi quanto segue alla configurazione o all'ambiente Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Per ulteriori dettagli, consulta la guida alla configurazione.

PHP

Configura le seguenti chiavi nel file google_ads_php.ini.

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

Per ulteriori dettagli, consulta la guida alla configurazione.

Ruby

Configura le seguenti chiavi nel file google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Per ulteriori dettagli, consulta la guida alla configurazione.

Perl

Imposta il percorso JSON della chiave privata nella configurazione. Se utilizzi un file googleads.properties, aggiungi quanto segue:

jsonKeyFilePath=JSON_KEY_FILE_PATH

Se utilizzi variabili di ambiente, aggiungi quanto segue alla configurazione o all'ambiente Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Per ulteriori dettagli, consulta la guida alla configurazione.

curl

Inizia impostando il service account come credenziali attive nella gcloud CLI.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Successivamente, recupera un token di accesso OAuth 2.0 per l'API Google Ads.

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

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