Account di servizio

Questa guida spiega come accedere all'API Google Ads con gli account di servizio.

Un account di servizio è un account che appartiene alla tua app anziché a un singolo utente finale. Gli account di servizio consentono le interazioni tra server tra un'app web e un servizio Google. L'app chiama le API di Google per conto dell'account di servizio, quindi gli utenti non sono coinvolti direttamente.

Gli account di servizio utilizzano un flusso OAuth 2.0 che non richiede l'autorizzazione da parte di un utente, ma utilizza un file chiave a cui può accedere solo la tua app.

L'utilizzo degli account di servizio offre due vantaggi principali:

  • L'autorizzazione per l'accesso all'API Google viene eseguita come passaggio di configurazione, evitando così le complicazioni associate ad altri flussi OAuth 2.0 che richiedono interazioni utente.

  • Il flusso di affermazione OAuth 2.0 consente alla tua app di rubare l'identità di altri utenti, se necessario.

Esistono due modi per eseguire l'autorizzazione con gli account di servizio: direttamente o con rappresentazione.

Autorizzazione con accesso diretto all'account

In questa opzione, concedi all'account di servizio l'accesso diretto al tuo account Google Ads.

Configurazione dell'accesso all'account

  1. Per iniziare, crea un account di servizio e le relative credenziali.

    Scarica la chiave dell'account di servizio in formato JSON e prendi nota dell'ID e dell'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 dell'account di servizio nella casella di immissione 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 servizio.

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

Configurazione della libreria client

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

Java

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

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Per ulteriori dettagli, consulta la guida alla configurazione.

.NET

Configura le seguenti chiavi in App.config / Web.config. Per maggiori dettagli, consulta la guida alla configurazione.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Python

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

json_key_file_path: JSON_KEY_FILE_PATH

Se utilizzi le 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 in google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Perl

Imposta il percorso del file 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 le variabili di ambiente, aggiungi quanto segue alla configurazione o all'ambiente Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Autorizzazione tramite rappresentazione

In questa opzione, simuli l'identità di un utente che ha accesso al tuo account Google Ads utilizzando l'account di servizio. Questo approccio funziona solo per i clienti Google Workspace. Un account di servizio può rubare l'identità solo di utenti (indirizzi email) nello stesso Google Workspace.

Prerequisiti

  • Un dominio Google Workspace di tua proprietà, ad esempiomydomain.com o mybusiness.com

  • Un token sviluppatore per l'API Google Ads e, facoltativamente, un account di test

  • La libreria client per la lingua che utilizzi

  • Un progetto della Console API di Google configurato per l'API Google Ads

  • Un utente Google Ads con autorizzazioni per l'account Google Ads a cui vuoi accedere. Google Ads non supporta l'utilizzo di account di servizio senza furto d'identità.

Configurazione dell'accesso all'account di servizio

Poiché la rappresentazione di un utente viene controllata solo a livello di dominio, per utilizzare gli account di servizio e il flusso di affermazione con OAuth 2.0 di Google devi avere un tuo dominio registrato con Google Workspace. La tua app e i suoi utenti possono quindi assumere l'identità di qualsiasi utente del dominio.

  1. Per iniziare, crea un account di servizio e le relative credenziali.

    Scarica la chiave dell'account di servizio in formato JSON e prendi nota dell'ID account di servizio.

  2. Condividi l'ID account di servizio e l'ambito dell'API Google Ads (https://www.googleapis.com/auth/adwords) con l'amministratore del dominio.

    Chiedi all'amministratore del dominio di delegare l'autorità a livello di dominio al tuo account di servizio.

  3. Se sei l'amministratore di dominio, segui le istruzioni del Centro assistenza.

Ora puoi utilizzare l'account di servizio per accedere al tuo account Google Ads con il flusso di affermazione OAuth 2.0.

Configurazione della libreria client

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

Java

Imposta il percorso del file JSON della chiave privata e l'ID account delegato nella configurazione. Se utilizzi un file ads.properties, aggiungi quanto segue:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

Per ulteriori dettagli, consulta la guida alla configurazione.

.NET

Configura le seguenti chiavi in App.config / Web.config. Per ulteriori dettagli, consulta la guida alla configurazione.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Python

Imposta il percorso JSON della chiave privata e l'email di cui vuoi rubare l'identità 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
impersonated_email: IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

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"
impersonatedEmail = "IMPERSONATED_EMAIL"

Ruby

Configura le seguenti chiavi in google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Perl

Imposta il percorso del file 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
impersonatedEmail=IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

Problemi di sicurezza

Poiché l'account di servizio ha il controllo della delega a livello di dominio per il tuo dominio Google Workspace, è importante proteggere il file della chiave che consente a un account di servizio di accedere ai servizi Google per i quali è autorizzato. Questo è particolarmente vero poiché l'account di servizio ha la possibilità di rubare l'identità di qualsiasi utente del dominio.

Un'altra buona prassi consiste nel consentire agli account di servizio di accedere solo all'insieme minimo di API richiesto. Si tratta di una misura preventiva per limitare la quantità di dati a cui un malintenzionato può accedere se il file della chiave dell'account di servizio viene compromesso.