Integrazione Google Ads Server-Side (SS) su piattaforma WEB

Introduzione
L’integrazione server-side (SS) di Google Ads rappresenta un salto di qualità rispetto alle tradizionali implementazioni client-side tramite tag o JavaScript. Dal punto di vista architetturale, consente un controllo più sicuro, affidabile e auditabile su tutte le conversioni inviate verso Google Ads.
Vantaggi principali
- Conformità GDPR: il tracciamento avviene lato server, riducendo la dipendenza da cookie e script di terze parti.
- Controllo e sicurezza: il tuo sistema, come per ERP (Xtumble) gestisce in prima persona gli eventi, evitando manomissioni o blocchi lato browser.
- Maggiore resilienza: le conversioni non vengono perse a causa di ad blocker o problemi JS lato client.
Come funziona il tracciamento delle conversioni server-side con Google Ads (esempio pratico)
Immagina questo scenario pratico per comprendere come Xtumble gestisce il tracciamento delle conversioni nel pieno rispetto della privacy e del GDPR:
-
Un utente cerca su Google “modellini auto da collezione”.
Vede un annuncio sponsorizzato di Tecnomodel (gestito tramite Google Ads). -
Clicca sull’annuncio.
Viene rediretto automaticamente a una pagina intermedia di Google che include nell’URL di destinazione dei parametri di tracciamento:https://www.tecnomodelcar.com/?gclid=Cj0KCQjwpf7CB...&gad_campaign_id=123456789&gad_source=google&gad_medium=search
I principali parametri sono:
gclid
: Google Click ID (identificativo unico del clic)gad_campaign_id
: ID della campagna Google Adsgad_source
,gad_medium
: informazioni su sorgente e tipo di traffico
-
Il sito ecommerce gestito da Xtumble intercetta i parametri.
Li salva in sessione, in un cookie tecnico o li collega a un identificatore interno della sessione. Il parametrogclid
è fondamentale perché consente di segnalare a Google che quel clic ha generato una conversione. -
L’utente compie un’azione significativa:
- Completa un acquisto (
purchase
) - Si registra (
sign_up
) - Si iscrive alla newsletter (
mailing_list_subscribe
) - Aggiunge un prodotto al carrello (
add_to_cart
)
- Completa un acquisto (
-
Xtumble invia la conversione a Google Ads tramite API:
{ "conversions": [ { "gclid": "Cj0KCQjwpf7CB...", "conversionAction": "customers/1234567890/conversionActions/9876543210", "conversionDateTime": "2025-06-28 14:58:56+02:00", "conversionValue": 89.90, "currencyCode": "EUR", "orderId": "ORD123456789" } ], "partialFailure": true }
Questo permette a Google Ads di attribuire correttamente la conversione alla campagna originale.
-
L’evento compare nel pannello Google Ads
Dopo qualche ora, la conversione sarà visibile nella sezione “Conversioni”, associata alla campagna e al gruppo di annunci.
GDPR & consenso utente
Xtumble invia gli eventi di tracciamento a Google solo dopo l’approvazione esplicita dell’utente finale del sito ecommerce, tramite il banner cookie conforme al GDPR.
Anche se sul sito non sono presenti cookie di terze parti visibili, il sistema garantisce tracciamento accurato in modalità server-side nel pieno rispetto delle normative sulla privacy e del principio di minimizzazione dei dati.
✅ Vantaggi
- Nessuna dipendenza da JavaScript o pixel lato browser
- Compatibilità con browser che bloccano cookie di terze parti
- Massima precisione nell’attribuzione
- Rispetto completo del consenso e delle normative europee
Requisiti iniziali
Per poter integrare Google Ads via API è necessario ottenere:
- Un account Google Ads con accesso amministrativo o MCC
- Un developer token approvato (non solo “test”):
https://ads.google.com/aw/apicenter - Un progetto Google Cloud Console da cui ottenere:
client_id
client_secret
- Importante: va abilitata la API di Google Ads:
https://console.cloud.google.com/apis/library/googleads.googleapis.com
- Scope OAuth richiesto:
https://www.googleapis.com/auth/adwords
Cosa serve al cliente per fare l’onboarding
- Avere un account Google Ads attivo
- Avere accesso amministrativo all’account Google Ads (oppure essere collegato a un MCC)
- Essere in grado di effettuare il login a Google e accettare l’autorizzazione tramite finestra OAuth
- Confermare il consenso all’accesso per la piattaforma Xtumble
L’operazione non richiede particolari competenze tecniche e può essere completata in meno di 60 secondi.
Onboarding del cliente via OAuth2 (Authorization Code Flow)
Il cliente accede tramite browser a un URL come questo:
https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&response_type=code&scope=https://www.googleapis.com/auth/adwords&redirect_uri=https://your-platform.com/oauth2callback&access_type=offline&prompt=consent&state=SESSION_ID
Scambio code per token
curl -X POST https://oauth2.googleapis.com/token \
-d "code=RECEIVED_CODE" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "redirect_uri=https://your-platform.com/oauth2callback" \
-d "grant_type=authorization_code"
Risposta:
{
"access_token": "ya29...",
"expires_in": 3599,
"refresh_token": "1//0...",
"scope": "https://www.googleapis.com/auth/adwords",
"token_type": "Bearer"
}
Elenco conversion actions attive per un customer_id
curl -X POST \
https://googleads.googleapis.com/v15/customers/6214438139/googleAds:search \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: YOUR_DEV_TOKEN" \
-H "login-customer-id: 6214438139" \
-H "Content-Type: application/json" \
-d '{
"query": "SELECT conversion_action.id, conversion_action.name, conversion_action.status FROM conversion_action"
}'
Esempio di invio di evento conversione (es. acquisto)
curl -X POST \
https://googleads.googleapis.com/v15/customers/6214438139:uploadClickConversions \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: YOUR_DEV_TOKEN" \
-H "login-customer-id: 6214438139" \
-H "Content-Type: application/json" \
-d '{
"conversions": [
{
"gclid": "EAIaIQobChMI...",
"conversionAction": "customers/6214438139/conversionActions/9876543210",
"conversionDateTime": "2025-06-18 16:45:00+02:00",
"conversionValue": 89.90,
"currencyCode": "EUR"
}
],
"partialFailure": true,
"validateOnly": false
}'
In una prossima revisione integreremo anche esempi in Delphi e un flusso completo multi-tenant con fallback automatico del
access_token
viarefresh_token
.
Autore: Ivan Revelli, CTO @ Synaptica SRL
Data: Giugno 2025