Quanto sarebbe bello poter tracciare le azioni che l’utente compie sul nostro sito web dopo aver cliccato su un’inserzione Facebook?
Visualizzare quali prodotti ha acquistato.
Visualizzare quanto tempo è passato dalla prima sessione all’acquisto.
Comprendere se la qualità del pubblico che Facebook porta all’interno del percorso è buona oppure no attraverso dati che normalmente su Facebook non sono presenti (ad esempio la durata media della sessione).
Per avere queste informazioni aggiuntive ci vengono in aiuto i parametri UTM.
In questo articolo io e Felice Carotenuto, Tracking Expert di grande esperienza, spieghiamo cosa sono i parametri UTM e come integrarli all’interno della strategia di performance marketing, con esempi pratici.
Se hai necessità, per ottimizzare il lavoro di creazione dei parametri UTM, di un generatore automatico semplice e veloce ho creato un UTM builder a questa pagina!
Cosa sono i parametri UTM
I parametri UTM sono delle stringhe di testo che vengono inserite all’interno del link di destinazione e che inviano dei dati aggiuntivi sulla sessione alle piattaforme di analytics.
Possono avere nomi standard oppure custom, a seconda del loro utilizzo.
Ad esempio, uno dei parametri UTM più comunemente usati è “utm_source” e vuole indicare la fonte di traffico dalla quale proviene l’utente.
Ci sono diversi tipi di parametri UTM standard. Eccoli di seguito:
utm_source: indica la fonte da cui arriva il traffico (ad esempio “facebook”).
utm_medium:indica il “mezzo” della campagna e spesso viene utilizzato “cpc” per le campagne a pagamento. Google Analytics 4, se il traffico proviene ad esempio da una ricerca su Google, registra questo parametro come “organic”.
utm_campaign: indica il nome della campagna a cui vogliamo attribuire la sessione (ad esempio “summersales2024”).
utm_content: indica il contenuto da cui nello specifico è arrivato l’utente, quindi ad un livello di dettaglio maggiore rispetto alla campagna (ad esempio “inserzione-luglio-1”).
utm_term:indica la parola chiave o la frase a cui viene attribuita quella sessione (normalmente usato per campagne Paid Search mentre su Meta spesso viene lasciato vuoto).
Struttura dei parametri UTM
Vediamo come strutturare correttamente i parametri UTM affinché funzionino nel modo giusto. Partiamo dal dominio del sito web.
https://ilmiosito.it
Ora, se il parametro UTM che andremo ad agganciare è il primo utilizzeremo il punto interrogativo “?” per aprire la coda di parametri UTM all’interno del link.
In questo modo:
https://ilmiosito.it/?
Ora è sufficiente inserire la stringa del parametro UTM che vogliamo agganciare al link. Iniziamo con utm_source.
https://ilmiosito.it/?utm_source=latuasource
Ora, per agganciare un nuovo parametro UTM dovremo utilizzare il simbolo “&”, che indica un nuovo parametro nella coda che abbiamo aperto con “?”.
https://ilmiosito.it/?utm_source=latuasource&utm_medium=iltuomedium
E così via per tutti gli altri parametri UTM. Ecco ad esempio un URL completo:
https://ilmiosito.it/?utm_source=facebook&utm_medium=cpc&utm_campaign=summersales2024&utm_content=inserzione-luglio-1
Una volta creato il link parametrizzato e inserito come link di destinazione sulle nostre campagne, man mano che registriamo traffico dovremmo visualizzare i dati all’interno di GA4 (o altri tool di analytics) relativi ai parametri che abbiamo impostato.
Ecco come appare ad esempio il report di acquisizione traffico con dettaglio per source / medium in GA4:

Vedremo tra poco alcune tipologie di report che possono essere molto utili in combinazione con un corretto setting dei parametri UTM!
Best practice per i parametri UTM
Anche gli “errori” possono costituire delle inefficienze nel setting dei parametri UTM, soprattutto perché i problemi di un setting non preciso dei parametri UTM si tradurrà poi in difficoltà quando faremo analisi.
Ecco quindi una serie di suggerimenti e best practice per trarre il massimo da un setting corretto di parametri UTM.
Un piccolo disclaimer prima di cominciare: queste best practice rappresentano un valido aiuto secondo me, soprattutto se sei ancora un neofita dell’utilizzo dei parametri UTM, ma non devono essere considerate come legge assoluta.
Semplicemente rappresentano la mia idea di ordine e organizzazione, che preferisco avere nella strutturazione dei parametri UTM.
Qualunque sistema aiuti te e la tua azienda a trarre il massimo dall’analisi strategica è sempre buono, indipendentemente che il metodo sia questo o un altro 🙂
Mantenere ordine
La prima regola è sicuramente mantenere ordine in tutta la nomenclatura UTM.
Alcuni esempi utili per far capire meglio ciò che intendo:
- Se con Source meta indichiamo il traffico proveniente da Meta è più comodo che tutte le campagne pubblicitarie Meta abbiano come Source meta. Non succede nulla se alcune volte indichiamo meta e altre facebook, semplicemente però dovremo tener conto che servirà un passaggio in più per aggregare i risultati nel caso fosse necessario.
- Concettualmente ha senso mantenere secondo me nei parametri UTM parole che non entrino in conflitto con altre a livello di comprensione del tema dedicato a quel parametro. Ad esempio se in qualche parametro volessimo indicare la fase del funnel non avrebbe senso inserire da una parte tofu e dall’altra cold, o acquisition, o upper. Ha senso invece mantenere sempre coerenza in tutti i parametri UTM.
- Se utilizziamo il parametro Campaign per indicare il nome della campagna questo dovrebbe sempre riferirsi appunto al nome della campagna e non essere differente come scopo magari su altri canali o fonti.
Mantenere ordine sui parametri UTM è il primo step per impostare una strategia di analisi ottimale e, soprattutto, efficiente.
Considerare la continuità con lo storico di parametri UTM
Ricordi tutto ciò che è stato detto nel punto precedente?
Ecco. Potrebbe anche succedere di ritrovarsi in mano con uno storico di parametri UTM che non è stato impostato secondo best practice.
Questo è del tutto normale e accade più spesso di quanto si possa pensare.
Come risolvere il problema?
In questo caso non possiamo ignorare del tutto ciò che è lo storico passato perché interrompere la continuità degli UTM potrebbe poi darci dei problemi nella strutturazione di report e dashboard (o comunque aggiungere della complessità).
Quello che consiglio di fare è di mantenere la continuità con lo storico per quanto riguarda i parametri UTM più “semplici” (ad esempio se source / medium di Google Ads è impostato come google / cpc e Meta Ads invece meta / adv non è un grosso problema mantenerli così anche se sono differenti) e modificare quelli che risultano essere inutili o potenzialmente fuorvianti (ad esempio, se Campaign fosse stato impostato con il nome dinamico del placement di Meta, potrebbe non essere molto utile in generale per fare analisi sulle campagne e in quel caso magari ha senso apportare una modifica).
Fare attenzione alle micro variazioni (ad esempio la differenza tra maiuscole e minuscole)
In genere si tende a inserire i parametri UTM senza utilizzare più varianti tra tipologia di nome oppure maiuscole/minuscole in quanto le piattaforme registreranno anche le più piccole variazioni come due parametri UTM differenti.
Ad esempio, se in una campagna inserissimo utm_source=facebook e nell’altra utm_source=Facebook (quindi cambiando la prima lettera da maiuscolo a minuscolo) le piattaforme di analytics registrerebbero questi come due parametri UTM differenti, dividendo le righe di dati.
Non è necessariamente un problema. Però occorre tenerne conto in quanto se volessimo analizzare i dati aggregati di due UTM differenti dovremo fare un piccolo passaggio in più per analizzarli assieme, salvo che vengano direttamente aggregati dalla piattaforma di analytics scelta in un gruppo (ad esempio, Google Analytics 4 aggrega di default il parametro utm_source=facebook all’interno di “Paid Social” nel raggruppamento Default Channel Grouping).
Ragionare prima su cosa serve tracciare e dopo sull’impostazione
Partire dal come impostare i parametri UTM senza prima aver ragionato sull’effettiva utilità che ha ogni parametro sulla nostra strategia di analisi è un po’ come provare a correre prima di aver imparato a camminare.
Per strutturare una strategia UTM efficace occorre ragionare su cosa ci serve realmente tracciare.
Riteniamo necessario avere un dettaglio sulla fase del funnel da cui proviene il traffico?
Riteniamo necessario avere un dettaglio sulle campagne (con relative informazioni sulle campagne) da cui proviene il traffico?
Riteniamo necessario avere un dettaglio sulle inserzioni da cui proviene il traffico?
Una volta compreso questo sarà molto più chiaro e delineato il percorso che ci porterà ad avere una strategia di setting dei parametri UTM performante per il nostro business e il nostro caso specifico.
Mantenere la struttura di parametri UTM più semplice possibile
Più è complessa la nostra UTM convention più sarà difficile da gestire nel lungo periodo.
Attenzione però: “difficile” non significa “sbagliato”. Ci sono casi in cui c’è la piena necessità di una UTM convention molto segmentata e piena di dettagli.
Il mio suggerimento è ricercare quel livello di semplicità che ci permette di essere pienamente soddisfatti dei dettagli che inseriamo all’interno dei parametri UTM.
Ad esempio, non ha molto senso creare parametri UTM lunghi e complessi se poi nel naming delle inserzioni inseriamo pochissimi dettagli o zero dettagli. Creerebbe inefficienza di analisi tra l’Ads Manager e tool come GA4.
Avrebbe più senso inserire sufficienti dettagli nel nome dell’inserzione e poi inviare un utm_content dinamico tramite il parametro {{ad.name}} su Meta, che andrà a intercettare il primo nome con cui l’inserzione è stata pubblicata riportandolo all’interno di utm_content (e risparmiamo così anche tempo nel setting).
Vedremo meglio anche i parametri UTM dinamici tra poco.
Come impostare i parametri UTM su Meta
L’impostazione dei parametri UTM su Meta è davvero molto semplice.
A livello di inserzione possiamo notare che nella sezione finale vi sarà una parte dedicata a questo aspetto.
Il consiglio è di impostarli in questa sezione, così si agganceranno a tutti i link presenti nell’ad (inclusi i link del catalogo dinamico).
Possiamo inserire direttamente nella casella di testo tutti i parametri UTM che vogliamo agganciare (senza il “?” iniziale in quanto verrà aggiunto di default da Meta) oppure cliccare su “Build a URL parameter” per selezionarli uno a uno in modo molto semplice.

Se clicchiamo su qualunque casella di testo all’interno della costruzione semplificata potremo anche selezionare alcuni parametri dinamici che Meta applicherà in base agli elementi della campagna, del gruppo di inserzioni o dell’inserzione.

Normalmente a me piace utilizzare un setting di questo genere, con {{adset.name}} all’interno di utm_campaign. Questo perché per la naming convention che utilizzo sui miei clienti nel nome del gruppo di inserzioni inserisco molti più dettagli rispetto al nome della campagna.
Il consiglio è sempre adattare ogni naming e UTM convention sulla base delle proprie esigenze!

Cliccando su “Add parameter” possiamo anche aggiungere parametri custom o che sono presenti tra gli altri parametri standard (ad esempio utm_term).

Ora che abbiamo più confidenza con l’utilizzo dei parametri UTM su Meta vediamo un utilizzo avanzato, sfruttando la definizione delle audience.
Utilizzo avanzato dei parametri UTM su Meta
Una piccola chicca che abbiamo voluto aggiungere a questo articolo riguarda il setting di parametri UTM personalizzati da agganciare alla tipologia di traffico che porta Meta all’interno del nostro sito web.
Attraverso questi semplici passaggi potrai visualizzare in GA4 quanti utenti nuovi sta portando Meta, quanti utenti engaged e quanti clienti esistenti in base alle audience che avremo impostato all’interno dell’account pubblicitario.
Come definire le audience e i parametri UTM su Meta
Definire le audience correttamente permette di avere dati in più attribuiti alle nostre campagne pubblicitarie in modo tale da conoscere:
- I dati di performance degli utenti nuovi
- I dati di performance degli utenti engaged
- I dati di performance dei clienti esistenti
Questo dettaglio può essere visualizzato tramite un breakdown specifico, selezionabile direttamente da Ads Manager. E può essere visualizzato anche a livello di Adset e di Ad, non solo di campagna.

Ma come si definiscono le audience?
Prima di tutto, andiamo su Advertising Settings (se non lo hai ancora fatto seleziona l’account pubblicitario corretto dal menù a tendina) ed entriamo in Audience Segments.

All’interno di questa sezione possiamo definire le audience che vogliamo includere in ogni segmento e in più avremo la possibilità di impostare un parametro UTM aggiuntivo per aggiungere questo dettaglio anche alle nostre piattaforme di analytics (vedremo tutto tra pochissimo).

La “strategia” di definizione della audience engaged può essere personale, sulla base della lunghezza temporale in cui vogliamo considerare la audience “tiepida”.
In questo specifico caso è stato impostato un mix di custom audience:
- Visitatori del sito negli ultimi 14 giorni
- Visualizzazione dei prodotti negli ultimi 30 giorni
- Aggiunte al carrello negli ultimi 60 giorni
- Inizi di acquisto negli ultimi 90 giorni

In seguito dovremo definire anche il segmento dedicato ai clienti. Il mio consiglio è di inserire più liste possibile per identificare i clienti, a patto che siano realmente clienti esistenti, in modo tale da aumentare le probabilità che venga identificato su Meta un numero più alto possibile.
In questo caso sono stati inseriti due pubblici:
- Acquirenti negli ultimi 180 giorni (da Pixel)
- Acquirenti totali (da CRM)

All’interno della sezione dedicata ai parametri UTM invece possiamo inserire un parametro (tra quelli standard o custom) per aggiungere questa tipologia di dettaglio anche all’interno dell’URL su cui atterrerà l’utente dopo aver cliccato sulle nostre ads.
Possiamo scegliere il naming che desideriamo. L’importante è che sia comprensibile poi a tutte le persone che visualizzeranno i dati in GA4!

Optando per un parametro custom, non presente tra quelli standard quindi, dobbiamo seguire una procedura un po’ più tecnica per “agganciarlo” agli eventi di GA4.
Vediamo come fare, passo per passo.
Come inviare il nuovo parametro UTM a Google Analytics 4
A differenza dei parametri UTM standard (utm_source, utm_medium, ecc.), che Google Analytics in automatico riesce ad intercettare dall’URL della pagina di atterraggio e ci permette di visualizzarli nelle fonti di traffico, il parametro utm_funnel che abbiamo creato ha bisogno di essere inviato manualmente per essere visualizzato insieme agli altri parametri UTM.
Vediamo un esempio concreto con l’utilizzo di Google Tag Manager.
Per prima cosa andiamo a “leggere” il parametro utm_funnel dall’URL. Per fare questo utilizzeremo una variabile di tipo URL.
Entriamo nel nostro contenitore Client di Google Tag Manager e dal menù a sinistra selezioniamo “Variabili”. Poi dalla scheda “Variabili definite dall’utente” clicchiamo su “Nuova”.

Assegniamo un nome alla variabile, che ci sarà utile in seguito, e clicchiamo su “Configurazione variabile”.

Dopodiché scegliamo la variabile di tipo URL dal menu a destra.

Dal selettore “Tipo di componente” selezioniamo “Query” e all’interno del campo “Chiave query” scriviamo il nome del nuovo parametro così come compare nell’URL, in questo caso utm_funnel. Salviamo le modifiche.

Ora potremmo già utilizzare questa variabile per inviare i dati a GA4. Però verrebbe trasmessa solo per gli eventi attivati su pagine con il parametro utm_funnel nell’URL.
Questo significa che, ad esempio, dopo un click su una scheda prodotto, il valore andrebbe perso al ricaricamento della pagina, perdendolo poi anche per gli eventi successivi come aggiunta al carrello e acquisto. Per evitare questo, possiamo salvare il valore di utm_funnel all’interno del browser dell’utente.
Questo è possibile farlo attraverso un cookie o tramite Session Storage e Local Storage. In questo esempio utilizzeremo il Local Storage.
Avremo bisogno di un Tag che salva il valore in Local Storage, un attivatore che attivi il tag solo quando nell’URL è presente il nostro parametro e infine una variabile che recupera il valore dal Local Storage.
Iniziamo creando l’attivatore. In questo caso utilizziamo un attivatore di tipo “Inizializzazione” con la condizione che nel “Page URL” sia presente il nostro parametro. In questo modo.

Adesso andiamo a creare il Tag, utilizzando il tipo “HTML Personalizzato”. Dovrai creare quindi un nuovo Tag inserendo al suo interno il seguente script:
<script> // Cattura il parametro dall'URL var paramValue = {{utm_funnel}}; // Se il parametro è presente nell'URL, salvalo nel localStorage if (paramValue) { localStorage.setItem('utm_funnel', paramValue); } </script>
Utilizziamo come attivatore quello creato precedentemente.

Infine, creiamo la variabile per recuperare il valore salvato in Local Storage, scegliendo una variabile di tipo “Javascript personalizzato” e incollando il seguente script:
function() { return localStorage.getItem('utm_funnel'); }
Aggiungiamo una condizione che, se la variabile è “null”, riporti il valore precedente presente nell’URL. In questo modo, anche se il tag di salvataggio non si è ancora attivato al primo caricamento della pagina, avremo comunque il valore di utm_funnel nella variabile.

Ora aggiungiamo la variabile appena creata agli eventi di GA4 presenti nel nostro contenitore.
Dal menù a sinistra selezioniamo “Tag” e cerchiamo il Tag di tipo “Tag Google” che fa riferimento al nostro Data Stream di GA4. Nella sezione “Impostazioni evento condiviso” > “Parametri evento” selezioniamo “Aggiungi parametro”.

Nel campo “Parametro evento” selezioniamo il nome del nostro parametro utilizzando la naming convention Snake Case, quindi caratteri minuscoli separati da Underscore ( _ ).
Nel campo “Valore” possiamo inserire il nome variabile creato precedentemente tra doppia parentesi graffa oppure selezionarlo cliccando sull’icona con il mattoncino.

In base alla configurazione del Google Tag potrebbe esserci un Tag di tipo Evento GA4 per l’evento page_view separato dal tag di configurazione (parametro send_page_view impostato su “false”). In questo caso dobbiamo ripetere le stesse operazioni per il Tag di page_view.
Se volessimo associare questo parametro anche ad altri eventi ripetiamo la procedura per ogni Tag evento di GA4 oppure, se è impostata una variabile di tipo “Event Setting”, ci basterà aggiungere una volta il parametro a questa variabile e verrà impostato automaticamente a tutti i tag che la utilizzano (nell’esempio qui sotto su view_item).

Prima di pubblicare le nostre modifiche, entriamo nel debugger per essere sicuri che il parametro venga ricevuto correttamente da GA4.
Clicchiamo in alto a destra sul pulsante “Anteprima”.

Come URL di anteprima basta aggiungere all’url del nostro sito il nuovo parametro in maniera manuale. In questo modo > https://www.ilmiosito.it/?utm_funnel=test_public
Clicchiamo successivamente su “Connetti”.

Una volta che il sito web avrà terminato il caricamento dal menu a sinistra selezioniamo l’evento del DataLayer che attiva il nostro tag di configurazione e clicchiamo sul tag di configurazione che si è appena attivato.

Clicchiamo sulla spunta “Valori” per verificare che il nostro utm_funnel sia stato passato correttamente.

Ora possiamo pubblicare le modifiche al nostro contenitore per renderle pubbliche.
Una volta completato il lavoro su Google Tag Manager dobbiamo indicare a GA4 che vogliamo visualizzare questo parametro all’interno dei report e, per farlo, abbiamo bisogno di creare una “Dimensione personalizzata”.
Entriamo nel menu Settings di GA4 e all’interno della scheda “Visualizzazione dei dati” selezioniamo “Definizioni personalizzate”.

Ora clicchiamo su “Crea dimensione personalizzata”

A questo punto scegliamo il nome della dimensione personalizzata che visualizzeremo in GA4 in “Nome dimensione”. Come ambito selezioniamo “Evento.
Nel campo “Parametro evento” poi scriviamo precisamente il nome del parametro che abbiamo inviato tramite Google Tag Manager. Se in passato questo parametro è stato già rilevato lo troveremo tra quelli proposti nella selezione (si aggiorna in genere dopo qualche ora).

Tutto fatto!
Ora saremo in grado di visualizzare il nostro parametro all’interno dei report GA4 (e tutte le metriche a esso collegate). Potrebbe volerci un po’ di tempo affinché i dati inizino a popolarsi.
Come vedi qui sotto è possibile che all’inizio i dati siano molto limitati. In genere dopo qualche giorno inizierai a vedere già un popolamento consistente, in base allo spending della piattaforma.

3 esempi di strategie di analisi con i parametri UTM
Veniamo a qualche applicazione pratica dei parametri UTM con 3 esempi interessanti di report su Google Analytics 4.
Un piccolo disclaimer: ricordiamo sempre che i dati di GA4 sono attendibili solo se valutati nel modo giusto e solo se ne abbiamo a sufficienza. Su GA4 non è importante il numero assoluto quanto la proporzionalità di ogni valutazione: non è importante sapere che una campagna ha generato 100 AddToCart e l’altra 50. Conta sapere però che la prima ha generato il doppio degli eventi AddToCart rispetto alla seconda per fare le dovute valutazioni.
Inoltre, ricordiamo che il modello di default utilizzato da GA4 per attribuire gli eventi è data-driven, che attribuisce comunque in media da un 50% a un 70% al last click a seconda dei casi.
Qual è l’andamento YoY o vs periodo precedente dei canali di traffico?

Un report super classico ma anche super utile per visualizzare l’andamento macro dei vari canali di traffico.
Questo report ci aiuta a rispondere a domande come:
- Sta entrando traffico “sporco” dato da una diminuzione consistente della sessione media?
- Abbiamo aumentato i click delle campagne Meta: su GA4 stanno crescendo proporzionalmente gli eventi midfunnel come AddToCart nel breve periodo?
- Ci sono cali di qualche canale che meritano attenzione?
Trovate delle prime risposte a domande come queste potremo indagare meglio e approfondire, ragionando su possibili soluzioni a eventuali criticità o problemi.
Quali prodotti vengono spinti tramite le DABA e quali dati generano sul sito?

In questo caso i parametri UTM vengono inseriti all’interno di un filtro.
Ipotizziamo di voler visualizzare le performance di una campagna DABA su Meta in base a quali prodotti vengono visualizzati, aggiunti al carrello o acquistati.
Nello screen qui sopra si possono vedere prodotti con una percentuale di aggiunta al carrello molto più alta di altri. Il che può essere molto interessante per ragionare su testing di DABA alternative (ad esempio DABA con cover carosello statica dove viene inserito un media con uno tra i prodotti più performanti).
Qual è la qualità del traffico delle nostre ads?

Conoscere la qualità del nostro traffico è fondamentale per sapere dove fare micro ottimizzazione al fine di migliorare ulteriormente le proprie campagne pubblicitarie.
Nel caso dello screen qui sopra ad esempio, come vedi, ci sono in particolare due ads che stanno lavorando con un tempo di sessione media davvero molto basso e inferiore allo standard.
Questo può essere un insight interessante per fare un check direttamente sui canali pubblicitari e approfondire i dati dei due contenuti con sessione media bassa per prendere decisioni su un eventuale spegnimento.
Conclusioni
I parametri UTM rappresentano un’ottima risorsa a disposizione sia degli analisti che degli advertiser e non utilizzarli con costanza sarebbe un vero peccato in quanto potremmo perdere opportunità di interessanti di miglioramento della nostra strategia.
Se hai trovato utile l’articolo fammelo sapere con un commento e ricondividilo se pensi possa essere utile anche ad altri colleghi!
A presto
Cerchi un partner per gestire e scalare i tuoi canali pubblicitari?
Ottimizza la tua strategia di performance marketing con un approccio tecnico e creativo data-driven.