Via Cà Matta 2 - Peschiera Borromeo (MI)
+39 02 00704272
info@synaptica.info

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

Digital Innovation Partner

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:

  1. Un utente cerca su Google “modellini auto da collezione”.
    Vede un annuncio sponsorizzato di Tecnomodel (gestito tramite Google Ads).
  2. 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 Ads
    • gad_source, gad_medium: informazioni su sorgente e tipo di traffico
  3. 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 parametro gclid è fondamentale perché consente di segnalare a Google che quel clic ha generato una conversione.
  4. 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)
  5. 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.

  6. 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:

  1. Un account Google Ads con accesso amministrativo o MCC
  2. Un developer token approvato (non solo “test”):
    https://ads.google.com/aw/apicenter
  3. Un progetto Google Cloud Console da cui ottenere:
  4. 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 via refresh_token.

Autore: Ivan Revelli, CTO @ Synaptica SRL
Data: Giugno 2025