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
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.
Accedi al tuo account Google Ads come amministratore. Vai a Strumenti e impostazioni > Configurazione > Accesso e sicurezza.
Fai clic sul pulsante + nella scheda Utenti.
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.
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 esempio
mydomain.com
omybusiness.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.
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.
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.
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.