[Aggiornata 01 Agosto 2022]

Attenzione: in seguito al provvedimento del Garante Privacy italiano che ha dichiarato illecita l’implementazione di Google Universal Analytics (GA3) su un sito web, è necessario eliminare il prima possibile la proprietà di GA3 dai propri progetti web e passare subito a GA4.

Se non hai dimestichezza con GA4 e desideri imparare a padroneggiare nel modo corretto questo strumento, nel mio libro su GA4 “Google Analytics 4 per chi inizia” ti guido passo passo per imparare a utilizzarlo in maniera semplice e pratica.

In fondo a questo articolo troverai il link alla guida su come tracciare lo User ID di Hotjar in GA4 🙂

Fammi indovinare, stai già usando Hotjar e vorresti spingere l’integrazione con Google Analytics.
Come possiamo fare?

Ovviamente devi aver già configurato Hotjar con Google Tag Manager e avere a disposizione almeno una dimensione personalizzata.

Devi sapere che, come per molti tool di web analytics, Hotjar utilizza un cookie per capire se sei un utente nuovo o di ritorno. Dentro alle statistiche di Hotjar è presente un valore “univoco” per utente derivato proprio da quel cookie. Ecco un esempio:

hotjar track example

Quindi se riuscissimo ad utilizzare quel cookie e importalo su Google Analytics potremmo utilizzare la potenza di fuoco di GA.

La bella notizia è che è possibile farlo.

L’ottima notizia è che te la sto per spiegare passo passo.

STEP 1 – CREIAMO UNA VARIABILE JAVASCRIPT PERSONALIZZATA

Update: Hotjar ha cambiato ancora e ora bisogna aspettare qualche secondo per avere l’informazione necessaria

Estrapoliamo il valore completo del cookie attraverso la libreria JS di Hotjar, che “splittiamo”, recuperando la porzione di valore che ci interessa.

  • Variabili > Nuova > Configurazione variabile.
  • Tipo di variabile: Javascript personalizzato.
  • Inserisci questo codice Javascript:
function() {
  var hotjarUserId = hj.globals.get("userId").split("-");
  
  if(hotjarUserId[0] != undefined)
  {
    return hotjarUserId[0];
  }
  else
  {
    return 0;  
  }
}
  • Nome della Variabile: “Hotjar – User Id”.

script javascript tracciare user id hotjar analytics google tag manager

STEP 2 – CREA LA DIMENSIONE PERSONALIZZATA

Ora non ci resta che salvare questo dato su Google Analytics su una dimensione personalizzata:

  • Vai su Google Analytics.
  • Clicca su Amministrazione > Proprietà > Definizioni personalizzate > Dimensioni personalizzate.
  • Nuova dimensione personalizzata.
  • Nome: Hotjar User Id.
  • Ambito: Sessione.

creazione dimensione personalizzata tracciare user id hotjar analytics

Tieni a mente il valore numerico dell’indice (da 1 a 20). Nel mio caso è 1.

lista dimensione personalizzata tracciare user id hotjar analytics

 

Non sai cos’è una dimensione personalizzata e vorresti capirne di più su Google Analytics?

Corso Google Analytics ABC

STEP 3 – ATTIVATORE DI TIPO TIMER

Per permettere alla funzione di estrapolare lo user ID di Hotjar, dobbiamo attendere il caricamento della pagina. Quindi dobbiamo creare un nuovo attivatore che si attivi al dopo un tot di tempo. Dai miei test un timer di 3 secondi va più che bene. Chiaramente se un utente scappa prima che ci sia questa fase non avrai l’evento su Google Analytics (e nemmeno il valore di Hotjar User ID).

Creiamo l’attivatore:

  • Attivatori > Nuovo > Configurazione attivatore.
  • Tipo di attivatore: Timer
  • Interval: 3000
  • Limit: 1
  • Enable this trigger: Page Path > matches RegEx > .*

google tag manager timer 3 secondi GTM

STEP 4 – INSERIAMO LA DIMENSIONE IN UN EVENTO DI GOOGLE ANALYTICS

Bene, ora abbiamo una dimensione su Google Analytics pronta a ricevere dati e l’attivatore pronto. Non ci resta che passare il valore della seconda variabile creata a Google Analytics, che contiene effettivamente il codice ID di Hotjar.

Inizialmente sfruttavo già il Tag di Google Analytics relativo alla PageView che è già presente in GTM. Purtroppo non è più possibile usare questo meccanismo perché il il valore dello User Id di Hotjar ci mette qualche secondo dopo l’evento Window Loaded. Lo tracceremo quindi con un Tag di tipo Evento di Google Analytics.

 

Google Analytics Event Hotjar User Id in GTM

A questo punto inseriamo la dimensione personalizzata. Basterà scorre in basso e andare su

  • Altre impostazioni > Dimensioni personalizzate.
  • Clicca Aggiungi dimensione personalizzata.
  • Indice: qua inserisci il valore indice della dimensione personalizzata visto prima (nel mio caso il valore è 1).
  • Valore della dimensione: {{Hotjar – User Id}}
  • Seleziona Attivatore: Timer 3 secondi

google tag maanger event Hotjar User ID in Google Tag Manager

 

In questo modo ora l’evento avrà una dimensione personalizzata che contiene il codice User ID di Hotjar.

Se le nuove implementazioni funzionano correttamente, adesso puoi tornare su Google Tag Manager e cliccare sul pulsante blu “Invia” per pubblicare ufficialmente le modifiche.

E se uso Google Analytics 4?

Se cerchi una guida di Google Analytics 4 che ti spieghi come tracciare lo User ID di Hotjar in GA4, allora non ti preoccupare 😀

Ecco la guida: Come tracciare lo User ID di Hotjar in Google Analytics 4

Ti è stata utile questa guida? Fammelo sapere nei commenti 🙂

A presto e buon Tag!

Condividi anche tu Google Tag Manager!
  • Reply

    Alessia

    26 04 2022

    Ciao Matteo ,
    So che ormai dovrei guardare a GA4 però ho notato che non riesco più a matchare la custom dimensione “HotjarUserID” con “User ID” presente all’interno della piattaforma di Hotjar. Sapresti aiutarmi ? Grazie mille in anticipo

    Alessia

    • Matteo Zambon

      17 05 2022

      Ciao Alessia, lo script di estrapolazione hotjarUserId funziona. Stai attenta che Hotjar esegue un campionamento dei dati e non una registrazione one to one. Quindi potresti non avere il recordin session a disposizione.

      Fammi sapere, nel caso inviami info a https://www.facebook.com/groups/TagManagerItalia

      Grazie

  • Reply

    Wouter

    25 08 2020

    Ciao Matteo,

    Molte grazie per la tua chiara spiegazione.
    Sai se dovrebbe ancora funzionare o è obsoleto ormai?
    Il tag è attivato correttamente per me, ma per il momento non arrivano dati Hotjar.
    Hotjar è attivo con un sondaggio e heatmpas / registrazioni.

    Mi piace sentirlo.
    Grazie in anticipo!

    Saluto,
    Wouter

    • Matteo Zambon

      25 08 2020

      Ciao Wouter 🙂
      Sì, è da cambiare perché ora Hotjar ci mette un po’ a dare quell’informazione. Ti consiglio quindi di usare un evento GA con un attivatore di tipo timer di almeno 3 secondi. A breve aggiornerò la guida.

      A presto!

    • Wouter

      26 08 2020

      Grazie per le tue risposte rapide Matteo,
      Sono molto curioso della versione aggiornata.
      Purtroppo non sono in grado di aggiungere correttamente un attivatore di tipo orario a questo tag.
      Per ora non ricevo dati ID Hotjar in GA.

      Grazie ancora!

      Wouter

    • Matteo Zambon

      26 08 2020

      Ciao Wouter, ho appena aggiornato la guida 🙂

      Fammi sapere se ora è più chiaro.

      A presto!

  • Reply

    Fabrizio

    16 05 2019

    Ciao Matteo,

    la guida è datata, ma considerando la tua precisione immagino funzioni allo stesso modo.
    Ho dovuto aggiungere al tag di GA – Pageview l’attivatore All pages – Load Ready perché altrimenti non me lo legava a nessun tag. (nell’impostazione della creazione attivatore non c’era la finestrella References in basso, tanto per capirci) Ho fatto bene?

    Le configurazioni dei tag di GA e Hotjar sono perfettamente funzionanti, ma al momento se guardo in modalità debug sul tag di hotjar id mi dà undefined.

    Ovviamente su GA non vedo nessun id Hotjar, come posso risolvere?
    Grazie mille

    • Matteo Zambon

      20 05 2019

      Ciao Fabrizio, allora il trigger da associare al tag è come da step 4, quindi hai fatto bene a crearlo a Load Ready.

      Per quanto riguarda il valore undefined lo avrai nella variabile finchè non sarai nell’evento “Window Loaded”. Ovviamente Hotjar deve essere presente e installato con il Tag e con un attivatore a di tipo All pages pageview.

      Fammi sapere!

    • Fabrizio

      21 05 2019

      Grazie Matteo, ora sembra funzionare a parte il fatto che ovviamente ora il tag pageview di GA viene eseguito due volte, sia su pageview che su window loaded.

      Non so se questo inficia i dati di analytics ma è l’unico modo per legare l’attivatore All pages load ready al tag di GA.
      Devo dirti che però ora Analytics non traccia più niente e tag assistant mi dà “Same web property ID is tracked twice.”

      Ho cambiato installazione di GTM inserendolo attrverso il plugin di DuracellTomi, non so se può essere quello (mentre prima avevo usato un altro plugin).

      I Tags funzionano tutti, ma Analytics non più.

    • Matteo Zambon

      21 05 2019

      Ciao Fabrizio, non devi avere due tag di pageview. Se usi questa configurazione ti consiglio di lasciare solo il pageview del page load ready e togliere l’altro di pageview 🙂

      Fammi sapere 🙂

    • Fabrizio

      22 05 2019

      Grazie matteo per la disponibilità.

      Ancora nada.
      Nel tag base del pageview di GA devo togliere l’attivatore “All pages” che ho creato all’inizio?

      Ovviamente però il tag di GA – Pageview non verrà attivato su Page View ma solo su Window Loaded.
      Ma questo non va ad influire sulle hit del pagevew di Analytics?

      Spero di aver capito bene e ti ringrazio per la pazienza.

      Per la cronaca ho reinstallato tutti i tag e al momento in debug ho:

      – Pageview: GA – Pageview not fired on this Event
      – Window Loaded: GA Pagevew Succedeed

      Nelle variabili su tutti gli eventi però ho ancora Hotjar – User Id JavaScript personalizzato undefined undefined

      Sto un po’ diventando matto…

    • Matteo Zambon

      22 05 2019

      Si Fabrizio, togli l’attivatore all pages e metti quello del window loaded. Devi avere un solo tag che spara l’evento di tipo pageview ad analyitics. A livello di influenza ci sarà un piccolo ritardo nel passaggio dell’hit a Google Analytics ma non è così impattante 🙂

      Fammi sapere!

    • Daniele

      01 09 2019

      Ciao Matteo, ho importato il tuo template per questo “hack” ma sembra che lo script non riesca a recuperare l’UsedID. Mi restituisce sempre “Undefined”. Forse hanno cambiato qualcosa? Grazie.

    • Matteo Zambon

      02 09 2019

      Ciao Daniele, ho appena verificato e sembra tutto ok.
      Sei sicuro che il tag di Hotjar sia attivato? Deve ovviamente esserci lo script di Hotjar presente nella pagina 🙂

      Fammi sapere!

  • Reply

    emanuele

    12 07 2018

    Ciao Matteo,
    grazie per la guida, mi sono perso però nel concetto dell’ultima parte. Qui sotto ti mostro come ho configurato:
    https://drive.google.com/file/d/1RoXITi-cL1I2Suzo2AwS6O4wC_pQqjXQ/view

    Non ho ben capito il suggerimento che hai dato a Michele
    “personalmente la gestisco con un evento di Google Analytics”
    Potresti aiutarmi a comprendere meglio?

    Grazie.

    • Matteo Zambon

      12 07 2018

      Ciao Emanuele
      come lo hai gestito così scatterà due volte il pageview che equivale che darei una frequenza di rimbalzo pari a 0 ogni volta. Quello che dicevo a Michele è che io creo un evento personalizzato dopo il pageload e lo uso per attivare un evento in GA (dove gli passo Hotjar e altre informazioni)

  • Reply

    Andrea

    21 05 2018

    Ciao Matteo,
    ho una domanda sul GDPR e Hotjar: quello di Hotjar può essere considerato un cookie tecnico? Se un utente dovesse chiudere il banner sull’informativa all’uso dei cookie senza flaggare alcun tipo di consenso, devo bloccare lo script di tracciamento di Hotjar?
    Grazie in anticipo 😉

    • Matteo Zambon

      21 05 2018

      Direi proprio di no Andrea, Hotjar non usa cookie tecnici per far funzionare il tuo sito. Li usi a fini di statistica e se usati con User ID direi a fini marketing.

    • Andrea

      22 05 2018

      Grazie mille per l’info, sei sempre stra-disponibile!!!

    • Matteo Zambon

      23 05 2018

      Grazie a te! 😀

  • Reply

    Michele

    03 05 2018

    Ciao Matteo,
    Ottima guida, ma ti faccio una domanda, o meglio ti chiedo un’opinione.

    Con questa guida siamo costretti a ritardare l’attivazione del tag delle PageView fino all’evento Window Loaded. Per aggirare il problema e non rischiare di “perdere PageView preziose” bisognerebbe salvare il valore hj.pageVisit.property.get(“userId”); in un “posto” accessibile anche al momento della PageView, come potrebbe essere un cookie proprietario.

    In questo modo valorizzeresti il cookie proprietario al primo evento Window Loaded di un certo utente, e dalla seconda PageView potresti iniziare a utilizzare il valore del cookie passandolo come custom dimension.

    Come la vedi?
    Grazie!

    • Matteo Zambon

      03 05 2018

      Ciao Michele, personalmente la gestisco con un evento di Google Analytics che uso anche per altre informazioni (esempio: vedere se usa AdBlock).

      Non farei doppia pageview, andrebbe ad azzerarti il bounce rate 🙂

      A presto e buon Tag!

    • Michele

      05 05 2018

      Ciao Matteo,
      Non intendevo duplicare il tag delle pageview, ma passare l’informazione dello userId di hotjar solo dalla seconda in poi (sfruttando un cookie per salvare l’id).

      Però l’idea di usare un evento forse è anche meglio.. essendo che in GA imposti lo userId come custom dimension a livello di sessione l’evento potrebbe andare bene! 🙂

      Grazie!

    • Matteo Zambon

      07 05 2018

      Di nulla Michele 😉

    • Andrea

      22 05 2018

      Grazie mille per l’info, sei sempre stra-disponibile!!!

  • Reply

    Luca

    15 02 2018

    Ciao Matteo, quando metto in preview mi da errore: La variabile sconosciuta “hotjarUserId” è stata rilevata in un’altra variabile. Modifica la variabile e rimuovi il riferimento alla variabile sconosciuta.
    Non capisco dove siat l’altra variabile, ho soltanto 4 variabili personalizzate e nessuna di quelle Hotjar.

    • Matteo Zambon

      15 02 2018

      Ciao Luca!
      Hai sicuramente sbagliato ad associarle. Stai attento alle maiuscole e minuscole. Consiglio: cancella e rifai tutto 😉

    • Luca

      16 02 2018

      Ciao Matteo, ho ricontrollato due volte e sembra tutto a posto nelle variabili. Ho semplicemente copiato ed incollato i tuoi JS nelle 2 variabili e mi da errore.
      Tra l’altro mi chiedevo perche’ servono due variabili? C’e’ un motivo? Non sarebbe piu’ semplice creare una singola variabile? Magari con questo JS:

      function() {
      var userId = hj.pageVisit.property.get(“userId”);

      var hotjarUserId = userId.split(“-“);

      if(hotjarUserId[0] != undefined)
      {
      return hotjarUserId[0];
      }
      else
      {
      return 0;
      }
      }

    • Matteo Zambon

      16 02 2018

      Ciao Luca, no non c’è un motivo specifico puoi farne anche una 🙂
      L’errore comunque mi sembra di capire che NON è il contenuto JS ma il nome che dai alla VARIABILE di GTM.
      Riesci a mandarmi lo screenshot eventualmente dell’errore?
      Fammi sapere!

    • Luca

      16 02 2018

      hai ragione, l’errore era il nome, non il contenuto!
      Comunque adesso in Preview > Window Loaded vedo sia la stringa completa ‘d059xxxx-2666-3345-ecc.ecc’ che quella che abbiamo estratto d059xxxx.
      Quindi mi sembra che vada bene, giusto?
      Se vado in Preview> Page View mi da le stringhe come “Undefined”. E’ per questo che nel tuo Step 5 suggerisci di aggiungere un altro attivatore? Quell’attivatore deve essere collegato al Tag GA Universal Analytics? Se si, voleov chiederti, quel Tag e’ gia’ collegato all’attivatore All Pages – Visualizzazioni di Pagina, ne aggiungo un altro?

    • Matteo Zambon

      16 02 2018

      Eh 🙂
      Il valore ce l’hai al caricamento della pagina. Quindi o crei un Tag GA con evento o sposti il pageview (che sconsiglio).

      A presto!

    • Luca

      16 02 2018

      Grazie mille Matteo, ho creato un tag GA con evento e collegato all’attivatore nel tuo Step 5 e con dimensione custom {{Hotjar – User Id}}
      Nel preview funziona senza problemi 🙂
      Grazie ancora del supporto. Sei l’unico ad aver scritto una guida decente sull’argomento. Dovresti tradurre tutto in Inglese secondo me.

    • Matteo Zambon

      19 02 2018

      Ciao Luca, grazie mille del feedback. Per la parte inglese credimi è in progetto (ma tempo e supporto per farlo è ancora troppo poco).

  • Reply

    Alex

    05 02 2018

    Hi Matteo.

    I have a question about step 5. You wrote that if a user runs away before Window Loaded, I won’t have the Hit Pageview on Google Analytics.

    Is it a real problem? And how can I solve it? If I create second Universal Analytics tag in GTM with the All Pages – Window Loaded Trigger, would that be correct?

    • Matteo Zambon

      05 02 2018

      Hi Alex, step 4 and 5 are just examples. I usually use a custom GA event to handle the passage of the Hotjar user id.

      So I suggest you keep the pageview of the GA tag in the pageview event and create a custom event in the window loaded.

      Buon Tag 😉

  • Reply

    Giuseppe

    20 11 2017

    Dovrei aver impostato tutto correttamente:
    Il tag relativo a Hotjar è impostato sulla visualizzazione di una determinata pagina, mentre il tag delle pageview analytics dove ho aggiunto la dimensione personalizzata si attiva su “Finestra Caricata”, puoi dare un’occhiata alle impostazioni dei tag dalle seguenti screenshot:
    https://drive.google.com/open?id=1ZfAPkkrVdtA_Z3s9pPHqYNgK612FyE0r

    Cosa ne pensi?

    • Matteo Zambon

      20 11 2017

      Ok Giuseppe, così come l’hai configurato sembra sia corretto. Se provi a cercare l’id di hotjar che non ti risulta nel giorno su GA (filtrandolo) lo trovi da qualche parte?

  • Reply

    Giuseppe

    20 11 2017

    Buongiorno Matteo,
    ho seguito passo passo la tua guida e in realtà sembra funzionare tutto correttamente. L’unico problema è che su analytics non mi ritrovo tutti gli ID registrati su Hotjar. Ad esempio, su analytics imposto un giorno specifico, poi da comportamento -> contenuti del sito -> tutte le pagine imposto come dimensione secondaria l’ID di Hotjar, eliminando gli ID duplicati mi ritrovo ad esempio solo 4 ID differenti. Su Hotjar nello stesso giorno invece, trovo una trentina di recordings. Secondo te come mai su analytics non vengono registrati tutti gli ID? Grazie mille.

    • Matteo Zambon

      20 11 2017

      Ciao Giuseppe 🙂
      Sei sicuro di aver gestito il passaggio della variabile nel tipo attivatore “finestra caricata”? Il motivo potrebbe essere semplicemente che la funzione non ha ancora l’id prelevato da Hotjar 🙂
      Fammi sapere!

  • Reply

    Franco

    28 09 2017

    Buongiorno, ho seguito la tua guida , ed anche dal debuger del tag manager sembra che la dimensione personalizzata venga inviata . ma quando inseire la dimensione personalizzate neòlle colonne delle viste di google ananlitics mi sempre restituita come undefined …. Come posso capire dove sbaglio ?

    • Matteo Zambon

      28 09 2017

      Ciao Franco, stai guardando dati storici? Nel debug apri il Tag di GA e guarda se il valore legato alla dimensione ha il valore oppure no. Se c’è dovresti vederlo anche su GA (fra 6/8 ore nei report).

Hai ancora qualche dubbio?
Chiedi pure qui sotto, sarò pronto a risponderti!

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.