CONDIVIDI
guida a google tag manager per il marketing

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

Tra gli operatori più in uso in Google Tag Manager (e anche Google Analytics, in verità), ce n'è uno che viene spesso completamente tralasciato, nonostante la sua grandissima flessibilità possa essere di enorme utilità nei casi più disparati, ogni volta si vogliano filtrare dei dati in modo complesso. Questo operatore è corrisponde all'espressione regolare (cui si affianca, un po' pleonasticamente, non corrisponde all'espressione regolare).

google tag manager corrisponde espressione regolare

Le espressioni regolari - quasi il pane quotidiano per chi conosce anche un po' di programmazione javascript e per il web analyst professionista - sono uno dei più profondi buchi neri dei marketers, che tipicamente non hanno la più pallida idea di cosa siano e (di conseguenza) si perdono un bel po' di occasioni di analisi dei dati sul business che stanno curando.
Proviamo allora a rimediare qui, scoprendo insieme quanta versatilità ci consenta lavorare in Google Tag Manager con questo tipo di operatore.

Cosa sono le espressioni regolari

Questo è un corso base dedicato ai non addetti ai lavori, l'ho detto tante volte.
Partiamo dunque ancora una volta da zero, e iniziamo a spiegare cosa siano queste famose espressioni regolari (le troverai indicate spessissimo in inglese con Regular Expression o, più tipicamente, con la sigla RegEx).
Una espressione regolare è, nei termini più elementari, un pattern, un modello che descrive sinteticamente una certa quantità di testo.
Quando utilizziamo il nostro operatore di corrispondenza con un'espressione regolare, quindi, stiamo valutando se il testo che intendiamo esaminare corrisponda, appunto, alla descrizione riportata nel nostro pattern.
Ad esempio, se volessimo verificare tutte le volte che un nostro testo corrisponde alle stringhe:
  • regular expression
  • regular expressions
  • regex
  • regexp
  • regexes
dovremo verificare la corrispondenza di questo testo con l'espressione regolare:
reg(ular expressions?|ex(p|es)?)
che condensa tutte insieme queste possibilità.
Vedo che ti brillano gli occhi e che, da bravo marketer, stai già immaginando come puoi utilizzare questo tipo di espressioni per filtrare le pagine sulle quali far partire i tuoi trigger, o magari filtrare i valori che dovrebbero assumere le dimensioni di un dato report in Analytics.
Per cui andiamo avanti, e scopriamo qual è la sintassi che consente di effettuare tutte queste operazioni.

La sintassi RegEx

Lo scopo di ogni operatore di corrispondenza RegEx è quello di analizzare un testo per verificare se ci sia una corrispondenza con la descrizione che ne fa l'espressione regolare stessa. La descrizione di un testo effettuata da una espressione regolare è insomma un modello, cui le stringhe che analizziamo possono o possono non conformarsi. Nel primo caso, l'operatore di controllo darà un risultato positivo (true); nel secondo, la risposta sarà negativa (false).
Per descrivere un modello di testo, l'espressione regex si avvale di una sintassi che - giocoforza - non potrà che essere fatta di caratteri alfanumerici. Questa è forse la principale fonte di errori per chi si avvicina a questo mondo: ci si dimentica, insomma, che alcuni caratteri che normalmente utilizziamo nei nostri testi sono operatori regex, e in questo modo si ottengono risultati diversi da quelli che volevamo.
Non preoccuparti, faremo degli esempi.
Intanto, iniziamo con il vedere quali sono gli operatori regex più importanti e di uso più comune.

\

Non credo di sbagliarmi, se dico che lo slash rovesciato sia il carattere più utilizzato nella sintassi regex di Google Analytics e di Google Tag Manager.
Questo operatore fa sì, infatti, che il carattere che lo segue sia preso non più come operatore, ma come segno alfanumerico. Un esempio?
Se vuoi indicare google.com utilizzando la sintassi regex, dovresti scrivere:
google\.com
In caso contrario, l'interprete regex interpreterebbe il punto non come un segno, ma come un operatore.

.

Anche il punto rientra tra gli operatori regex più utilizzati. Vuol dire: sostituiscimi con qualsiasi carattere alfanumerico. Se scrivessimo, ad esempio,
reg.ex
vorremmo indicare reggex, reglex, reg9ex e qualsiasi altra espressione che contenga una (ed una sola) lettera o numero al posto del punto. Inutile dire che se volessimo intendere proprio reg.ex, dovremmo scrivere: reg\.ex.

*

Contrariamente a quanto accade, ad esempio, nella sintassi utilizzata a suo tempo in MS DOS (sì, ho una certa età!), il carattere asterisco vuol dire, nella sintassi regex, sostituiscimi con zero o più istanze del carattere che mi precede. Scrivendo
reg*ex
quindi, intenderemo regex, ma anche reggex, regggex, reggggggex ecc.

.*

La combinazione dei due operatori punto e asterisco vorrà dire, di conseguenza, da zero a un numero infinito di qualsiasi carattere. Insomma, vuol dire: prendi qualsiasi cosa. Se noi vogliamo inserire in un filtro un pattern che sia sempre vero, non dovremo far altro che inserire questa sequenza di simboli.

+

Se invece inseriamo il più, stiamo dicendo al nostro filtro che vogliamo un asterisco, ma che non consenta una sostituzione con nessun carattere. Insomma, se scriviamo
reg+ex
intenderemo dire: reggex, reggggex, ma mai regex.

?

Il punto interrogativo rende opzionale l'elemento precedente. Quindi, scrivendo:
reg?ex
vogliamo dire regex, ma anche reex.

|

Il carattere pipe consente di creare una corrispondenza di tipo OR tra due segni o gruppi di segni. L'espressione regolare
reg|ex
vuol dire: regx, oppure reex.
Per l'utilizzo del carattere pipe per rendere opzionali interi gruppi di lettere, vedi più avanti, quando parleremo delle parentesi tonde.

^

Anteposto a un'espressione, indica che l'espressione deve iniziare dal carattere che lo segue. Insomma: scrivendo
^morso
escluderemo ad esempio: rimorso.

$

Come l'operatore ^, ma con funzionamento inverso. Posto a fine espressione, indica che non vogliamo nulla dopo di esso. Scrivendo
amare$
escluderemo così: amarene, amareggiato ecc.

()

Con le parentesi, raggrupperemo degli elementi (segni) insieme. Le parentesi sono utilissime assieme all'operatore pipe (OR), per rendere alternativi due interi blocchi di testo. Scrivendo
a(mare|mico)
ad esempio, intenderò includere nella mia espressione di confronto sia amare che amico.

[] e -

Con il contributo di parentesi quadre e trattino potrò creare degli elenchi.
Se scrivo
201[5-9]
intenderò tutte le cifre dal 2015 al 2019. Lo stesso risultato lo otterrei scrivendo:
201[56789]

Come usare le espressioni regolari

Avrai capito che le espressioni regolari sono un alleato formidabile per il tuo account Google Tag Manager, perché consentono con facilità di lavorare su condizioni multiple all'interno dello stesso trigger.
Immagina ad esempio che tu abbia un trigger da attivare solamente su due pagine disposte in due subdirectory differenti. Le pagine saranno miosito.com/sub/page1.html e miosito.com/altro/page22.htm. Per rendere il nostro trigger attivo su entrambe (e nessun'altra pagina) basterà dare all'attivatore l'istruzione che vuoi farlo sparare solo se la URL della pagina corrisponda all'espressione regolare
.*/page(1|22)\.html?
e il gioco sarà fatto.
Facile, no?

Continua...

Bene. Adesso che sai tutto sulle espressioni regolari, potremo fare un grande passo in avanti, andando a vedere come funziona uno dei più interessanti operatori di Google Tag Manager: matches css selector.
Alla prossima puntata!

CIAO! Grazie per essere arrivato a leggere fino a qui.

Porto avanti questo blog solo per passione, senza voler fare altro se non avviare un confronto con chi condivide con me l'interesse per tutto ciò che è marketing. Se ti è piaciuto questo post, la soddisfazione più grande che potrai darmi sarà quella di condividerlo sui social media e di lasciare un tuo commento.

Se poi vuoi rimanere sempre aggiornato, iscriviti subito alla newsletter!

Inserisci qui il tuo indirizzo e-mail:

Delivered by FeedBurner

2 COMMENTS

LEAVE A REPLY