regex-google-analytics-optimisation-conversion

Apprendre les Expressions Régulières (Regex) avec Google Analytics

Avant de commencer, je voulais savoir si vous êtes prêt à transformer votre curiosité en compétence ?
C'est en posant des questions qu'on avance. Et je suis là pour partager, pour vous guider vers ce moment "aha", où tout commence à avoir du sens. Vous voulez savoir comment mes formations sur Google Analytics peuvent s'aligner sur vos objectifs ? Discutons-en.
(33 raters, 162 scores, average: 4,91 out of 5)

regex-google-analytics-optimisation-conversionQu’est-ce qu’une expression régulière dans Google Analytics ?

Les expressions régulières sont essentielles dans Google Analytics pour personnaliser le filtrage des données et remonter quasiment toutes les informations (dimensions GA) dont vous avez besoin. Très utile également pour nettoyer vos données des spams qui peuvent biaiser votre lecture de la réalité.

Si vous utilisez régulièrement Google Analytics, vous vous êtes probablement heurté avec le paramètre « correspond à l’expression régulière » ou « ne correspond pas à l’expression régulière » des filtres des rapports, des vues, ou bien encore lors de la configuration de segment avancé, de rapport personnalisé ou d’objectif de conversion.

Quand on se lance dans Google Analytics, les expressions régulières sont certainement les choses les plus complexes à appréhender. Mais heureusement, le webAnalyste est là ;). Je vous propose ce petit guide pour comprendre progressivement comment utiliser les expressions régulières dans Google Analytics. L’avantage, c’est que vous n’avez pas besoin d’avoir l’expertise technique d’un développeur ou bien la folie créative d’un geek pour exploiter les regex comme un ninGA.

Allez c’est parti !

Expressions Régulières Google Analytics – Débutant.

« | » = ou

Le « | » (pipe) est un caractère regex très simple que vous utiliserez très souvent dans Google Analytics pour filtrer telle donnée ou telle donnée. Le « | » signifie « OU » en regex.

Exemple : « google|yahoo|bing » = « google OU yahoo OU bing ».

Exercice : Quelle expression régulière utiliser pour segmenter les utilisateurs originaires de Paris, Lyon et Marseille ?

réponse
paris|lyon|marseille ou Paris|lyon|MARSEILLE (les regex de Google Analytics sont « case insensitive », elles ne distinguent pas les majuscules et les minuscules).
regex-google-analytics-segment-ville

« () » = correspond à une chaîne de caractères.

Les (parenthèses) vous serviront à filtrer vos données par rapport à une chaîne de caractères. Elles sont naturellement très souvent associées avec le « | » (pipe). Elles sont particulièrement utiles pour filtrer les URL complexes dans les objectifs ou les filtres  des vues GA.

En gros, elles fonctionnent de la même manière qu’en mathématique.

Exemple :

  • 2 x 5 + 10 = 20,
  • 2 x (5 + 10) = 30.

Exemple : « ville-(paris|lyon|marseille) ».

  • match parfaitement avec « ville-paris » OU « ville-Lyon » OU « Ville-marseille ».
  • match partiellement avec « ville », « ville -« , « -« , « – paris », « lyon », « marseille »…
  • ne match pas avec « ville paris », « ville lyon », « ville marseille », « casablanca »…

Exercice : Quelle expression régulière utiliser pour créer un objectif qui match uniquement avec les pages « /fr/checkout/confirmation/ » et « /uk/checkout/confirmation/ » et « /it/checkout/confirmation/ ».

réponse
/(fr|uk|it)/checkout/confirmation/
regex-google-analytics-objectif-destination

Expressions Régulières Google Analytics – Intermédiaire.

« ^ » = commence par 

Le « ^ » (circonflexe) est très utile pour filtrer vos données par rapport au début d’une expression.

Exemple : « ^/homme »

  • match avec « /homme » OU « /hommes » OU « /homme/chemises » OU « /homme/chemises/verte ».
  • ne match pas avec « homme », « /collection/homme », « /home »…

« $ » = se termine par 

Le « $ » (dollar) vous servira à filtrer vos données par rapport à la fin d’une expression.

Exemple : « /confirmation/$ »

  • match avec « /confirmation/ » OU « /checkout/confirmation/ » OU « /newsletter/confirmation/ »
  • ne match pas avec « /confirmation », « confirmation/ », « /confirmation/merci/ »…

Exercice : Quelle expression régulière utiliser pour créer une étape de l’entonnoir de conversion d’un objectif Google Analytics qui corresponde uniquement à la home « / » (racine de l’arborescence qui représente généralement la home dans vos rapports de pages) ?

réponse
^(/)$ ou ^/$ (l’URI de la home commence « ^ » et se termine « $ » par « / »)
regex-google-analytics-etape-entonnoir-conversion

« [] » = correspond à un caractère dans une liste

Les « [] » (crochets/square brackets) vous serviront à filtrer vos données par rapport à un caractère spécifié entre crochets.

Exemple : « produit_[AOU2] »

  • match avec « produit_A » OU « produit_O » OU « produit_U » OU « produit_2 ».
  • ne match pas avec « produit_AOU2 », « produit_B »…

« [-] » = correspond à un caractère dans une série

Les « [-] » (tiret) vous servira à filtrer vos données par rapport à un caractère spécifié dans une série de caractères.

Exemple 1 : « produit_[A-Z] »

  • match avec « produit_A » OU « produit_B » OU « produit_C » OU […] OU « produit_Z »
  • Dans Google Analytics (case insensitive) match également avec « produit_a » OU « produit_b » OU « produit_c » OU […] OU « produit_z »

Exemple 2 : « produit_[a-zA-Z] » (pour couvrir les majuscules et les minuscules dans un autre contexte que Google Analytics)

  • match avec « produit_A » OU « produit_b » OU « produit_C » OU […] OU « produit_z

Exemple 3 : « produit_[a-zA-Z0-9] » (majuscules, minuscules et chiffres)

  • match avec « produit_a » OU « produit_1 »  OU « produit_B » OU « produit_9 » etc.

Exemple 4 : « produit_[a-z0-9][a-z0-9][a-z0-9] » (suite de 3 caractères alphanumériques dans Google Analytics)

  • match avec « produit_a01 » OU « produit_1de »  OU « produit_B22 » OU « produit_999 » etc.

Exercice : Quelle expression régulière utiliser pour créer un segment avancé des utilisateurs qui ont vu durant leur session au moins l’une des pages « /homme/categorie1/ » à « homme/categorie9/ »  et  « /femme/categorie1/ » à « femme/categorie9/ » ?

réponse
« /(homme|femme)/categorie[1-9]/ »
regex-google-analytics-segment-catalogue 

Expressions Régulières Google Analytics – Avancé.

« [^abc] » = ne correspond à aucun caractère de la série

Les « [^abc] ». Ajoutez « ^ » à l’ouverture d’un crochet, exclue les caractères listés entre crochets. Très utile pour exclure un caractère donné ou un type de caractères de votre requête.

Exemple 1 : « produit_[^a] » -> pour exclure tous les produits qui commence par « a ».

  • match avec « produit_b » OU « produit_c » OU « produit_d » OU […] OU « produit_z ».
  • ne match pas avec « produit_a ».

Exemple 2 : « produit_[^aeiou] » -> pour exclure tous les produits qui commence par une voyelle.

  • match avec « produit_b » OU « produit_c » OU « produit_d » OU […] OU « produit_z ».
  • ne match pas avec « produit_a »,  « produit_e »,  « produit_i », « produit_o » ou  « produit_u ».

Exemple 3 : « produit_[^a-z] » -> pour exclure tous les produits qui commence par une lettre de l’alphabet.

  • match avec « produit_1 » OU « produit_2 » OU « produit_7 » OU […] OU « produit_9 ».
  • ne match pas avec « produit_a ».

Exemple 4 : « produit_[^0-9] » -> pour exclure tous les produits qui commencent par un chiffre.

  • match avec « produit_a » OU « produit_b » OU « produit_c » OU […] OU « produit_z ».
  • ne match pas avec « produit_0 » ou  « produit_9 ».

« {} » = répète le précédent caractère

Les « {} » (accolades) vous serviront à répéter le précédent caractère, sans avoir à multiplier les expressions comme dans l’exemple précédent pour avoir une suite de 3 caractères. Les accolades sont particulièrement utiles pour filtrer les valeurs numériques, telles que les IP, les SKU, les prix….

Exemple 1 : « produit_[0-9]{1} » – plutôt inutile, non ?

  • match avec « produit_0 » OU « produit_1 » OU « produit_2 » OU […] OU « produit_9 ».
  • match partiellement avec « produit_01″ OU « produit_10″ OU « produit_25″ OU […] OU « produit_99″.

Exemple 2 : « produit_[0-9]{2} » -> correspond au minimum à 2 chiffres compris en 0 et 9.

  • match avec « produit_01 » OU « produit_02 » OU « produit_03 » OU […] OU « produit_99 ».
  • match partiellement avec « produit_001″ OU « produit_100″ OU « produit_225″ OU […] OU « produit_999″.
  • ne match pas avec « produit_0 » OU « produit_1 » OU « produit_2 » OU […] OU « produit_9 ».

Exemple4 : « produit_[A-Z0-9]{3} »  -> correspond au minimum à 3 chiffres et/ou lettres (majuscule dans l’exemple, mais comme Google Analytics n’en tient pas compte vous pouvez utiliser aussi bien [a-z] ou [A-Z], au lieu de [A-Ba-z0-9] dans un autre contexte regex).

  • match avec « produit_a01 » OU « produit_abc » OU « produit_953 » OU « produit_z99 ».

Exemple 5 : « produit_[A-Z0-9]{1,5} »  -> correspond  à 1 à 5 chiffres et/ou lettres.

  • match avec « produit_a » OU « produit_A01 » OU « produit_12345 » OU « produit_abcde »OU « produit_yxz99 »

Exercice : Quelle expression régulière utiliser pour créer un filtre de vue qui exclue les IP de 123.456.1 à 123.456.99 ?

réponse
« 123\.456\.[1-9]{1,2} » Le « \ » (backslash) est le caractère d’échappement qui permet au caractère suivant de perdre sa valeur spéciale, d’y échapper. Par exemple ^www\.abc\.com$ match avec www.abc.com. Dans l’IP exemple, il neutralise les « . » (point), qui sert de joker en regex, en remplaçant le point par un caractère.

regex-google-analytics-filtre-vue-ip

« . » = remplace tout caractère, le « joker ».

Les « . » (point) vous servira de joker dans vos expressions régulières pour remplacer un caractère.

Exemple 1 : « copie.-colle cytotec australia. »

  • match avec « copiez-collez » OU « copier-coller » OU « copier-collez » OU « copiez-coller » OU « copie7-colleK »…

« * » = correspond avec 0 ou plusieurs caractères précédents.

Le « * » (astérisque) est très utile notamment avec le « (.) » pour remplacer une chaîne de caractère.

Exemple 1 : « ^/fr/(.*) » -> filtrer toutes les pages qui commence par fr.

  • match avec « /fr/femme/chaussures/index-backets.php/ » OU « /fr/homme/chaussures/index-.sandales.php/ » OU « /fr/enfant/chaussures/index-ballerines.php/ » etc.

Exemple 2 : « (.*)/chaussures/(.*) » -> filtrer toutes les pages qui intègrent le segment d’URI « /chaussures/ ».

  • match avec « /chaussures/ » OU « /fr/femme/chaussures/baskets » OU « /uk/homme/chaussures/sandales » OU « /fr/enfant/chaussures/baskets » OU « /chaussures/lp-soldes » etc.

Exemple 3 : « /chaussures/index-(.*)\.php/$ » -> filtrer les fichiers « index-abc.php » des chaussures.

  • match avec « index-.php » OU « /chaussures/index-backets.php/ » OU « /chaussures/index-.sandales.php/ » OU « /chaussures/index-ballerines.php/ » etc.

« + » = correspond avec 1 ou plusieurs caractères précédents.

Les « + » (plus) est similaire à l’astérisque, à la différence qu’il doit y avoir au moins 1 caractère précédent. Plutôt utile pour vous assurer par exemple qu’un segment d’URI ne doit pas être vide.

Exemple 1 : (.+)/chaussures/(.+)

  • match avec « /femme/chaussures/baskets » OU « /homme/chaussures/sandales » OU « /enfant/chaussures/basckets » etc.
  • ne match pas « /chaussures/ », « /femme/chaussures/ », « /chaussures/baskets/ »

Exemple 2 : « /chaussures/index-(.+)\.php/$ » -> filtrer les fichiers « index-abc.php » des chaussures.

  • match avec « /chaussures/index-backets.php/ » OU « /chaussures/index-.sandales.php/ » OU « /chaussures/index-ballerines.php/ » etc.
  • ne match pas avec « index-.php »

« ? » = correspond avec 0 ou 1 caractère précédent.

Les « ? » (point d’interrogation) est utile pour exprimer un caractère optionnel, comme les variations « singulier/pluriel », trait d’union ou non,etc.

Exemple 1 : « web( )?Analyste » -> mots clés avec ou sans espace

  • match avec « webAnalyste » OU « web Analyste ».

Exemple 2 : « web( |\-)?Analyste » -> mots clés avec ou sans espace et avec ou sans tiret

  • match avec « webAnalyste » OU « web Analyste » OU « web-Analyste ».

Exercice : Quelle expression régulière utiliser pour segmenter les mots clés qui incluent « 3 suisses », « 3suisses » , « 3-suisses », « 3 suisse », « 3suisse » , « 3-suisse ».

réponse
« (.*)3( |\-)?suisse(s)?(.*) »

regex-google-analytics-segment-mots-cles-marque

Exercice : Quelle expression régulière utiliser pour créer un filtre de vue qui exclut les bots « semalt.com » et « buttons-for-website.com ».

réponse
.*(semalt|buttons\-for\-website)\.com.*

regex-google-analytics-filtre-vue-semalt-buttons-for-website

Exercice : Quelle expression régulière utiliser pour segmenter les utilisateurs qui ont vu au moins un article de la gamme suivante, de « /article-A1-001/ » à  « /article-Z99-999/ ».

réponse
.*/article\-[a-zA-Z0-9]{1,3}\-[0-9]{3}/.*

regex-google-analytics-segment-page-produit

Exercice : Quelle expression régulière utiliser pour se filtrer dans une vue les utilisateurs originaires de France, de Suisse et de Belgique.

réponse
france|suisse|belgique

regex-google-analytics-filtre-vue-geographie

Exercice : Quelle expression régulière utiliser pour filtrer les pages qui commencent par « /novembre/ » ou « /nov/ ».

réponse
^/nov(embre)?/

Exercice : Quelle expression régulière utiliser pour filtrer les URL qui ne commencent pas par une voyelle.

réponse
^/[^aeiou]?

Exercice : A quoi sert le regex suivant qui concerne particulièrement les URI : ^/([^/]+/){3}$ ?

réponse
Il permet de filtrer les URL avec 3 niveaux de profondeur (/niveau 1/niveau 2/niveau3/)

L’expression compte le nombre {3} de segments (« caractères »+ »/ ») des expressions qui commence par « / ».

^/=expression qui commence par « / ».

([^/]+/) = Groupe dans un élément, un ou plusieurs caractères qui ne commencent pas par un slash « / » et qui se terminent par un slash = (caractères+slash) = (niveau 1/).

{3} = multiplie l’élément précédent par 3 = (caractères+slash)(caractères+slash)(caractères+slash) = (niveau 1/niveau 2/niveau 3/)

$ = fin de l’expression ou de la ligne.

Exercice : A quoi sert le regex suivant qui concerne particulièrement les mots clés : « ^([^ ]+ ){2}[^ ]+$ » ?

réponse
Il permet de filtrer les expressions avec 3 mots (ex. mesure analyse optimisation).

L’expression compte les espaces vides {2} entre chaque mot  = 2 espaces vides = 3 mots.

^([^ ]+ ) = Groupe dans un élément, un ou plusieurs caractères qui ne commencent pas par un espace et qui se terminent par un espace = (caractères+espace) =  premier mot suivi d’un espace « mesure ».

{2} = multiple par 2 l’élément précédent = (caractères+espace)+(caractères+espace) = « mesure analyse  »

[^ ]+$ = on finalise l’expression « $ », avec tout caractère hors espace = (caractères+espace)+(caractères+espace) + (caractères) = « mesure analyse optimisation »

Voilà, nous avons fait le tour des fondamentaux REGEX qui vous permettront de personnaliser vos filtres de données dans Google Analytics. Normalement, vous deviez être plus à l’aise avec les expressions régulières que ce soit dans Google Analytics ou ailleurs.

regex-cheat-sheet

Retour en haut