
Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 1385
Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 690
Warning: Invalid argument supplied for foreach() in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 697
Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 690
Warning: Invalid argument supplied for foreach() in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 697
Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 1385
Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 690
Warning: Invalid argument supplied for foreach() in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 697
Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 690
Warning: Invalid argument supplied for foreach() in /home/customer/www/fabiopiccigallo.com/public_html/wp-content/plugins/smart-image-loader/simple_html_dom.php on line 697
In questo articolo ti parlo di:
Come sa bene chi frequenta anche di passaggio questo blog, un concetto fondamentale su cui continuo a insistere e continuerò sempre a insistere è: se vuoi misurare quante volte è stata vista una pagina del tuo sito web, utilizza un contatore javascript di quelli che andavano di moda negli anni '90, e lascia perdere Google Analytics.
Perché?
Perché utilizzare Google Analytics per sapere quante volte è stata visitata una pagina web è come utilizzare la cucina di un ristorante di alto rango per bollire un uovo sodo: semplicemente, non va bene.
Il cuore di Google Analytics sono gli obiettivi di conversione, e il cuore degli obiettivi di conversione sono (anche) gli eventi che vengono trasmessi ad Analytics dal nostro sito web.
Piccolo ripasso: come sono fatti gli eventi in Analytics
Ho concepito queste puntate come un corso base, per cui non darò per scontato (quasi) nulla.
A cominciare da come sono fatti gli eventi.
Un evento è, sostanzialmente, una notifica che noi facciamo ad Analytics per registrare che sul nostro sito è accaduto qualcosa che noi riteniamo importante. Ad esempio, un evento potrebbe essere il download di un libro bianco, la visualizzazione di una particolare pagina, il click su una Call to Action o su un link che richiama il nostro indirizzo email.
Normalmente, per poter passare ad Universal Analytics questa informazione leghiamo ad un'occorrenza sul nostro sito (ad esempio un click) un piccolo snippet di codice che servirà a comunicare, appunto, a GA che qualcosa è accaduto.
Il codice che passiamo è nel formato
ga('send', 'event', 'category', 'action', 'label', value);
dove categoria, azione, etichetta e valore sono contenitori aperti che possiamo riempire come più ci aggrada.
Una volta acquisiti da Google Analytics, questi eventi potranno poi diventare il trigger che farà generare un obiettivo di conversione di tipo evento.
Il problema è che, utilizzando nel modo classico Universal Analytics (inserendo cioè il codice di monitoraggio direttamente sul sito) noi dovremo inserire immancabilmente lo snippet di codice che genera l'evento su ogni link che vogliamo monitorare.
Se ad esempio abbiamo 50 pagine con un form allegato, e decidiamo di attivare un evento sulla compilazione e l'invio di quel form, dovremo aprire una ad una 50 le 50 pagine e inserire ogni volta lo snippet di generazione dell'evento (a meno di andare a disturbare il nostro IT e sperare che lui abbia una soluzione).
E se le pagine fossero 500, o 5000?
No, decisamente non va bene.
Generare gli eventi con i trigger
Google Tag Manager ci dà una mano decisiva, quando si tratta di uniformare il comportamento di oggetti sparsi per il nostro sito web e caratterizzati dall'avere tutti lo stesso comportamento.
Immaginiamo allora di avere un oggetto - una Call to Action, ad esempio, o un banner pubblicitario - che si ripete in molte delle pagine del nostro sito e che vogliamo analizzare dal punto di vista dei click. Magari vorremo definire questi click come altrettante micro-conversioni all'interno di Google Analytics, ma questo ora non è importante.
Quel che è importante è, invece, comprendere come faremo a inviare ad Analytics l'informazione che la nostra call to action sia stata effettivamente cliccata.
Prendiamo, per la nostra piccola esercitazione pratica, il banner che trovi qui nel footer, e che riguarda il gruppo Facebook #adotta1blogger, di cui faccio parte.
Quante volte cliccate su quel link? Non posso saperlo, ovviamente, perché indirizza ad una pagina all'esterno del mio sito.
Cercherò allora di scoprirlo taggando il nostro link e individuando il click come un evento da passare ad Analytics, passando contemporaneamente anche il titolo della pagina su cui è avvenuto ogni click.
Vediamo come fare.
Creiamo un trigger per il click sulla nostra Call to Action
1 Mediante codice javascript sul nostro sito
Per iniziare, dobbiamo identificare univocamente l'oggetto che vogliamo sottoporre all'attenzione di Google Tag Manager.
Se abbiamo un elemento che si sviluppa a partire da un unica fonte - come avviene per la verità anche per il nostro banner - la soluzione più semplice è quella di aggiungere direttamente al codice del nostro link un'istruzione che generi un evento in corrispondenza del click, e trasmetta l'esistenza dell'evento stesso al Data Layer di Google Tag Manager.
Ad esempio, se abbiamo un link qualsiasi, non dovremo fare altro che inserire un'istruzione del tipo:

e avremo risolto il problema.
L'istruzione qui riportata, infatti, non farà altro che aspettare che avvenga un click sul nostro link. Una volta verificatasi questa occorrenza (onlick), il codice agirà per inviare al dataLayer l'evento ClickSulPulsante.
Come faremo a intercettare questo evento?
Lo faremo, evidentemente, utilizzando un tipo particolare di attivatori: quelli che "sparano" in corrispondenza di un evento del dataLayer.
Andiamo allora su Google Tag Manager, e creiamo un trigger di questo tipo:

L'evento, come vedi, è quello che abbiamo creato nel nostro codice. Quando verrà attivato, l'attivatore Click sulla CTA "sparerà", e sarà pronto ad attivare un tag che costruiremo a breve.
2 Mediante identificativi di oggetto
Questo tipo di procedimento è comodo, però, a patto di avere un elemento centralizzato sul quale agire per emendare il codice in modo da creare un evento.
Che succederà, invece, se gli elementi fossero tanti, magari anche leggermente diversi tra loro, ma accomunati da un identificativo specifico (ad esempio una classe, un id, un titolo o un altro qualsiasi elemento di identificazione)?
In questo caso, ci converrà aprire il nostro codice per cercare, appunto, un elemento distintivo al quale aggregare un trigger.

Nel mio caso, ad esempio, un elemento di identificazione dell'oggetto potrebbe essere il titolo #adotta1blogger che ho dato al banner qui sotto, nel footer del sito.
Andrò allora a crearmi un trigger di evento click, che si attivi quando un utente clicca sui link accomunati dal fatto di avere come titolo #adotta1blogger.
Facile.

Il problema, però, è che non esiste nessun elemento specifico che mi rimandi a "title".
Esiste Click Classes, Click Id, persino Click Text ma... Click Title non esiste.
Come fare?
Dovremo sfruttare un'altra risorsa disponibile nel cappello di Google Tag Manager: quella che consente di aggiungere altre variabili nella disponibilità dell'utente, che siano legate a un evento che occorre quando si interagisce con un elemento presente sulla nostra pagina: le variabili di evento automatico, o di auto-evento.
Il fatto è che ogni volta che noi inseriamo un qualsiasi attributo che specifica una istruzione html (una classe, un id, un titolo...) noi rendiamo disponibile quel contenuto anche a Google Tag Manager.
L'unica cosa che dobbiamo fare, è andarcelo a prendere.
Creiamo allora una variabile di auto-evento, e diamogli, ad esempio, il nome Element_title.
Specifichiamo che questa variabile è una variabile di attributo, e chiudiamo indicando che il nome dell'attributo che Tag Manager dovrà acquisire è, appunto, title.

A questo punto, torniamo sul nostro trigger, e specifichiamo che vogliamo si attivi solo quando si clicca su un elemento che contenga nel titolo la locuzione identificativa adotta1blogger, in questo modo:

Ecco fatto!
Siamo riusciti ad attivare un trigger solamente in corrispondenza della nostra Call to Action, e senza mettere mano al codice.
A questo punto, non dovremo che attivare il tag di Analytics.
Attiviamo un tag di tipo evento per Analytics
Torniamo allora sull'elenco dei nostri tag, apriamo quello relativo ad Analytics che abbiamo creato nella scorsa puntata e creiamone una copia, cliccando sull'apposito pulsante in basso a destra.
Rinominiamo la copia, clicchiamo direttamente su Configura Tag, e selezioniamo, stavolta, il track di tipo Evento:

Avrai già capito tutto. Non ci rimane che inserire nelle caselle Categoria, Azione e Etichetta i valori che vogliamo trasmettere ad Analytics, e da lì crearci, eventualmente, un obiettivo di tipo Evento, e il gioco è fatto.
Naturalmente, il trigger per questo tag non sarà più All Pages o il nostro Analytics Trigger, ma il trigger che abbiamo appena creato. In questo modo, l'evento click sulla Call to Action verrà trasmesso ad Analytics solo in corrispondenza dell'azione che abbiamo voluto tracciare.
Tracciare la pagina in cui è avvenuto l'evento: le variabili Custom Javascript
Prima di chiudere, però, ti avevo promesso che avremo inviato ad Analytics anche il titolo della pagina in cui è avvenuto l'evento.
Non che non si possa fare anche in altri modi, ovviamente.
Diciamo, però, che vogliamo inserire dinamicamente il titolo della pagina, ad esempio, nel campo Etichetta (Label) del nostro evento.
Il problema è: come trasmettere a GTM il titolo della pagina e renderlo disponibile per il nostro tag Analytics di tipo evento?
Come al solito, utilizziamo le variabili.
In questo caso, ci converrà impostare una variabile Javascript personalizzato.
Queste variabili non sono altro che funzioni javascript che restituiscono (return) un valore che può essere utilizzato all'interno di Google Tag Manager come qualsiasi altra variabile.
Nel nostro caso, la variabile dovrà semplicemente riempirsi con il titolo della pagina, che può essere acquisito tramite la proprietà javascript document.title.
Creiamo allora la variabile javascript personalizzata Titolo Pagina, e inseriamo nel codice di configurazione la nostra funzione:

Salviamo, e la nuova variabile sarà disponibile per essere inserita ovunque in Google Tag Manager - ivi inclusa la label del nostro evento.
Facile, no?
Continua...
Dopo questa piccola anticipazione, nella prossima puntata parleremo in modo più specifico di variabili, cercando di formalizzare quanto abbiamo iniziato a vedere qui: come utilizzare le variabili incorporate e le variabili personalizzate per utilizzare Google Tag Manager al suo meglio.
Ciao, perché una var custom HTML con una funzione pressoché vuota per il title?
basta una var JS con contenuto, appunto, document.title 🙂
È una variabile custom javascript, naturalmente, però lapsus a parte hai ragionissima: sarebbe bastato utilizzare una semplice variabile javascript realizzata (a beneficio di chi ci legge) in questo modo:

Ho introdotto il tema delle variabili personalizzate per fini “didattici”, per così dire, perché se ne parlerà abbondantemente nei prossimi articoli. Comunque hai senz’altro ragione: la strada più semplice è quella che indichi tu. 🙂
Ho letto tutti gli articoli e sono una grande risorsa. Complimenti.
Ho una difficoltà però: stò registrando gli eventi di invio di moduli di contatto e Analytics pare riceverli correttamente.
L’unica cosa è che mi ritrovo molte registrazione di eventi fatti da bot. Come posso registrare solo gli eventi che completano il modulo di contatto nei campi obbligatori e compilano correttamente il captcha?
Detta così, non lo so. In che modo stai effettuando il tracciamento dei moduli? Quali eventi sono generati invece da bot?
Io ho l’impressione che tu abbia problemi di spam su Analytics. In tal caso, ti consiglio questa lettura: Google Analytics: come eliminare i referral fantasma o spam. Vedi se il problema è questo.
Ciao,
complimenti!! bellissime guide,
utilizzo spesso gtm per siti web, mi trovo però molto in difficoltà quando devo implementarlo sulle app, da quello che ho capito (o non ho capito) è molto diverso, farai una breve guida anche per usare gtm anche sulle app ios e android?
Francesco
Ciao Francesco, per ora no, perché questo progetto mi sta impegnando molto, e sulle App ne so ancora troppo poco. In futuro, chissà… 🙂
Ciao Fabio,
come ci si comporta se il link da tracciare è un link anchor?
Ho provato a fare la stessa cosa che descrivi per i link html ma non funge.
Ciao e grazie
Antonio
Non capisco perché. Comunque prova a trattarli come click generici e a vedere se ci sono lo stesso problemi. Sicuro di non aver commesso qualche errore in fase di impostazione dei trigger?