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 consentono interazioni tra server tra un'app web e un servizio Google. La tua app chiama le API di Google per conto del service account, quindi gli utenti non sono direttamente coinvolti.
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 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 con l'utente.
Il flusso di asserzione OAuth 2.0 consente alla tua app di assumere l'identità di altri utenti, se necessario.
Esistono due modi per autorizzare con gli account di servizio: direttamente o con la simulazione dell'identità (non consigliato).
[Consigliato] Autorizzazione con accesso diretto all'account
In questa opzione, concedi al service account l'accesso diretto al tuo account Google Ads.
Configurazione dell'accesso all'account
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.
Accedi al tuo account Google Ads come amministratore. Vai ad Amministrazione > Accesso e sicurezza.
Fai clic sul pulsante + nella scheda Utenti.
Digita l'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 amministrativo ed email non sono supportati per gli account di servizio.
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 nel file App.config / Web.config
. Consulta la
guida alla configurazione per
ulteriori dettagli.
<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
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 nel file 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
[Sconsigliato] Autorizzazione tramite simulazione dell'identità
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ò rappresentare solo utenti (indirizzi email) nello stesso Google Workspace.
Prerequisiti
Un dominio Google Workspace di tua proprietà, ad esempio
mydomain.com
omybusiness.com
Un token sviluppatore 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.
Configurazione dell'accesso al service account
Poiché l'impersonificazione dell'utente è controllata solo a livello di dominio, l'utilizzo di account di servizio e del flusso di asserzione con Google OAuth 2.0 richiede la registrazione del tuo dominio con Google Workspace. La tua app e i suoi utenti possono quindi impersonare qualsiasi utente del dominio.
Inizia creando un service account e le relative credenziali.
Scarica la chiave dell'account di servizio in formato JSON e annota l'ID dell'account di servizio.
Condividi l'ID service account 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 service account.
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 asserzione 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 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
Consulta la guida alla configurazione per ulteriori dettagli.
.NET
Configura le seguenti chiavi nel file 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 rappresentata 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 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 nel file 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 nel file google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'
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
impersonatedEmail=IMPERSONATED_EMAIL
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
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ò è particolarmente vero in quanto questo service account ha la possibilità di rappresentare qualsiasi utente nel dominio.
Un'altra buona pratica consiste nel consentire ai service account di accedere solo al set minimo richiesto di API. Si tratta di una misura preventiva per limitare la quantità di dati a cui un malintenzionato può accedere se il file delle chiavi dell'account di servizio viene compromesso.