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

Publié le 14 mars 2020 par Webanalyste @webanalyste

Qu'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 ?

" () " = 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 :

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/ ".

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) ?

" [] " = 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/ " ?

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 ?

" . " = 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 ".

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 ".

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/ ".

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

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

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

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

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

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.