Flusso di lavoro del service account

Questa guida spiega 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 dell'utente, l'archiviazione delle credenziali utente e così via.

  • L'autorizzazione di accesso agli account Google Ads non è collegata 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 l'ha autorizzata originariamente lascia il team o l'azienda.

Configurazione dell'accesso all'account

  1. Inizia creando un service account e le relative credenziali.

    Scarica la chiave dell'account di servizio in formato JSON e annota l'ID e l'indirizzo email dell'account di servizio.

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

  3. Fai clic sul pulsante + nella scheda Utenti.

  4. Digita l'indirizzo email del service account nella casella di input Email. Seleziona il livello di accesso all'account appropriato e fai clic sul pulsante Aggiungi account. Tieni presente che i livelli di accesso Email e Amministratore non sono supportati per gli account di servizio.

  5. All'account di servizio viene concesso l'accesso.

Configurazione della libreria client

Seleziona la scheda corrispondente al tuo linguaggio di programmazione per istruzioni su come configurare la libreria client.

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

Consulta la guida alla configurazione per ulteriori dettagli.

.NET

Imposta OAuth2Mode e OAuth2SecretsJsonPath nell'istanza GoogleAdsConfig e utilizzali per inizializzare l'oggetto GoogleAdsClient.

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

Consulta la guida alla configurazione per ulteriori dettagli.

Python

Imposta il percorso JSON della chiave privata nella configurazione. Se utilizzi un google-ads.yaml file, 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

PHP

Configura le seguenti chiavi in google_ads_php.ini. Per ulteriori dettagli, consulta la guida alla configurazione.

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

Ruby

Configura le seguenti chiavi nel file google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Perl

Imposta il percorso JSON della chiave privata e l'ID account delegato 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

curl

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

gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSON

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'

Ora 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 della segnalazione.

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"

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