L’integrazione tradizionale con gtag.js o Google Tag Manager prevede l’invio degli eventi direttamente dal browser dell’utente. Tuttavia, sempre più aziende stanno adottando l’approccio server-side per:
L’integrazione server-side può anche essere usata contemporanemente all’integrazione cliet-side “gtag.js” e crea una soluzione “ibrida” che ha il grosso vantaggio di poter inviare in modo molto controllato e preciso eventi specifici, tipo login, purchase, aggiunta al carrello, etc…
| Approccio | Vantaggi | Svantaggi |
|---|---|---|
| Client-Side (gtag.js) | Facile da implementare, visibile nel browser, supporta geolocalizzazione automatica | Bloccabile da adblock/cookie policy, poco controllo |
| Server-Side | Massimo controllo, niente JS sul sito, integrabile in ambienti closed-source | Richiede gestione sessioni, user-agent, IP, niente geo/tech info automatica |
| Ibrido | Combina i vantaggi dei due, fallback affidabile | Più complesso da orchestrare |
G-XXXXXXX)xtumble-server) e copia l’API SecretPer maggiori dettagli, puoi consultare la documentazione ufficiale:
GA4 Measurement Protocol Developer Guide
Qui sotto un esempio reale di chiamata ad Analytics per inviare un evento (page_view):
curl -X POST 'https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXXXXXX&api_secret=YOUR_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"client_id": "abc123-session-uid",
"user_id": "usr_45",
"events": [
{
"name": "page_view",
"params": {
"page_location": "https://xtumble.com/prod/145",
"page_title": "Dettaglio Prodotto",
"engagement_time_msec": "450"
}
}
]
}'
purchase a GA4Questo snippet mostra come inviare un evento di acquisto con i parametri minimi obbligatori (senza lista dettagliata degli item):
curl -X POST 'https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXXXXXX&api_secret=YOUR_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"client_id": "abc123-session-uid",
"user_id": "usr_45",
"events": [
{
"name": "purchase",
"params": {
"transaction_id": "ORD123456789",
"currency": "EUR",
"value": 129.99
}
}
]
}'
Note:
transaction_id: identificativo univoco dell’ordine (obbligatorio)currency: codice ISO a 3 lettere, es. EUR, USDvalue: valore totale dell’acquisto (può includere IVA e spedizione)https://www.google-analytics.com/debug/mp/collect