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 server-to-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 umana, ma un file chiave accessibile solo dalla tua app.

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

  • L'autorizzazione all'accesso all'API di Google viene eseguita come passaggio di configurazione, per evitare le complicazioni associate ad altri flussi OAuth 2.0 che richiedono interazioni da parte dell'utente.

  • Il flusso di affermazione OAuth 2.0 consente alla tua app di assumere 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

Questa opzione ti consente di concedere all'account di servizio l'accesso diretto al tuo account Google Ads.

Configurazione dell'accesso all'account

  1. Per prima cosa, crea un account di servizio e le 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 a Strumenti e impostazioni > Configurazione > 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 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

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 di 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 in uso

  • 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 dell'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 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 maggiori 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. Consulta la guida alla configurazione per ulteriori dettagli.

; 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. Ciò vale soprattutto perché l'account di servizio è in grado di impersonare qualsiasi utente nel 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.