Cas pratique Google Analytics : introduction aux expressions régulières
Les expressions régulières ou expressions rationnelles (ou encore RegExp) sont très utiles avec certains outils web analytics, notamment avec Google Analytics. Leur utilisation et leur compréhension est recommandée voire indispensable pour utiliser des fonctions avancées.
J’ai remarqué que bien souvent, lorsqu’on lit un article sur une astuce Google Analytics impliquant les expressions régulières, leur signification n’est pas ou peu expliquée. Je comprends qu’on ne le fasse pas quand on s’adresse à un public averti mais une petite piqûre de rappel fait toujours du bien.
Introduisons donc les expressions régulières à travers un exemple simple. Le but ici n’est pas d’être exhaustif sur la définition des caractères et des cas d’utilisation. Je cherche simplement à introduire la chose avec quelques explications.
Utilisons la technique du « Pourquoi » enseignée par mon Analytics Jedi et avant de passer à la pratique, posons nous cette question essentielle :
A quoi sert l’utilisation des expressions régulières dans Google Analytics ?
- Créer des filtres avancés.
- Améliorer la création de tunnels de conversion et la définition d’objectifs.
- Créer des filtres spécifiques directement dans les rapports ou lors de la création de segments avancés.
- Impressionner ses collègues parce que savoir utiliser les expressions régulières, ça fait geek :)
La compréhension par l’exemple : Comment définir plusieurs pages pour une même étape de tunnel de conversion dans Google Analytics ?
Je vais vous parler de tunnel ou entonnoir de conversion Google Analytics. J’invite les néophytes à lire l’aide Google concernant ce point avant de commencer.
Cette question concerne chacune des étapes mais également l’url qui définit l’objectif de conversion.
Le tunnel de conversion que je souhaite créer doit être composé de trois étapes en plus de ma page d’objectif. La troisième étape est un formulaire dont l’url est différent selon l’origine géographique de la visite.
Il existe trois versions de cette page mais j’aimerais toutes les inclure dans la même étape pour ne pas créer trois tunnels de conversion et utiliser inutilement plusieurs « slots » d’objectifs.
Tout d’abord, il faut se rendre dans la page de paramètres de l’objectif à créer. Dans la partie détail de l’objectif, le type de correspondance doit être configuré en tant que « Correspondance d’expressions rationnelles ». Cela permet de signifier à l’outil de prendre en compte les expressions régulières lors de l’édition des champs d’objectif et d’étapes.
La valeur du champ d’objectif est l’url complète de la page d’objectif, jusque là tout va bien.
Une fois cela fait, il faut entrer les valeurs dans les champs d’étapes dans la partie « Entonnoir de conversion vers l’objectif » :
Les valeurs de l’étape 1 et 2 sont faciles à trouver, ce sont les urls des pages que j’ai voulu insérer dans l’entonnoir.
Comment faire pour l’étape 3 qui peut être atteinte via trois pages aux urls différentes ?
Je pense que vous l’aurez compris, il suffit d’utiliser une expression régulière. Bien entendu, plusieurs solutions sont possibles, chacun son style. Je propose tout de même trois variantes possibles :
- La brute
^/categorie/form$|^/categorie/form\-us$|^/categorie/form\-af$
- La « c’est presque ça mais… »
^/categorie/form$|\-us$|\-af$
- La variante que je propose
^/categorie/form($|\-us$|\-af$)
Ce qui est bien dans ces trois propositions, c’est qu’on y retrouve les mêmes métacaractères (caractères spéciaux des expressions régulières).
Reprenons les définitions de Google et ajoutons y quelques exemples :
^ : correspond au début du champ
Lorsque l’on met ce métacaractère au début du champ, cela signifie qu’aucun caractère ne peut être mis devant ce que l’expression va définir.
Par exemple :
testcorrespond à : « test », « pretest », « super test », « le test de fou » ou « test de fou »- Alors que
^testcorrespond à : « test », « test de fou »
Associé à d’autres métacaractères, la signification du « ^ » peut légèrement changer. On abordera peut-être ça dans un prochain article.
$ : correspond à la fin du champ
L’explication est similaire à celle du métacaractère précédent mais appliquée à la fin de l’expression. C’est à dire, que dans la correspondance à l’expression régulière, aucun caractère ne peut suivre l’élément ou le groupe d’élément terminé par $.
test$correspond à : « test », « pretest », « super test »
Utilisés dans la même expression régulière, les métacaractères « ^ » et « $ » permettent d’isoler une chaîne de caractère.
^test$correspond à « test » uniquement
\ : insère un caractère d’échappement avant un métacaractère
Grâce à « \ » on peut transformer un métacaractère en caractère normal.
^test\$$correspond à « test$ »
() : mémorise le contenu de la parenthèse comme élément
Les parenthèses fonctionnent un peu comme dans une expression mathématique. Elles permettent d’isoler un élément non par rapport à sa correspondance (tel que le permettent « ^ » et « $ » associés) mais par rapport à l’expression régulière.
Elle permettent également la mémorisation de leur contenu dans une variable qui pourra être utilisée dans les filtres avancés de Google Analytics, mais là n’est pas le sujet.
Difficile de faire un exemple simple de leur utilisation sans utiliser un autre opérateur (ce qui est fait juste en dessous).
| : ou
Le métacaractère « | » correspond à l’opérateur « ou ».
^test$|^super test$correspond à « test » et « super test »(^super |^)test$correspond également à « test » et « super test »
On a désormais tous les outils nécessaires au déchiffrage des trois variantes d’expressions rationnelles qui apportent une solution à notre problème.
Reprenons avec des explications :
- La brute
^/categorie/form$|^/categorie/form\-us$|^/categorie/form\-af$
Cette expression répond parfaitement à notre problème. Si on la traduit littéralement, elle donnerait :
J’isole « /categorie/form » ou j’isole « /categorie/form-us » ou j’isole « /categorie/form-af ».
Pourquoi y a-t-il un « \ » devant les « - » ? Parce que « - » est un métacaractère. Je n’ai pas détaillé sa signification puisqu’on ne l’utilise pas dans ces exemples.
- La « c’est presque ça mais… »
^/categorie/form$|\-us$|\-af$
Cette expression répond également à notre problème, puisque chacune les trois urls en sont une correspondance. Cependant, d’autres urls lui correspondent également, elle n’est pas « propre ». Si on la traduisait littéralement :
J’isole « /categorie/form » ou je capte toute expression finissant par « -us » ou je capte toute expression finissant pas « -af ».
Cela signifie que « /categorie/form », « /categorie/form-us » et « /categorie/form-af » correspondront mais « idheizhozih-us », « 9248qdh qizhd-af » aussi et beaucoup d’autres.
- La variante que je propose
^/categorie/form($|\-us$|\-af$)
Comme je vous l’ai déjà dit, chacun son style. Je propose cette solution qui est courte et facilement compréhensible.
La traduction littérale :
Je capte une expression commençant par « /categorie/form » et finissant soit par rien, par « -us » ou par « -af ».
Bien entendu, libre à vous de modifier cette solution en modifiant l’expression régulière proposée. Si par exemple, vous souhaitez capter des variables qui sont à la fin de l’url, enlevez les $.
J’espère que cette petite introduction vous a plu ! L’analyse web est un domaine vaste et même si vous n’êtes pas encore un Jedi des expressions régulières, sachez qu’elles peuvent être utiles.
Si mes exemples ne vous plaisent pas, si vous avez des remarques, si vous voyez des anomalies, ou alors si vous avez des questions, commentez cet article ou utilisez le formulaire de contact.
Quelques ressources très utiles pour les RegExp (qui ont également été mes sources) :
- Un outil de test d’expression régulière
- Un excellent livre blanc (en anglais)
- Une série d’articles (en anglais)
- Un article concernant les opérateurs
Pour aller un peu plus loin, un cas d’utilisation de filtres avancés Google Analytics (il date de 2008 mais peut vous faire comprendre beaucoup de choses).
8 commentaires pour “Cas pratique Google Analytics : introduction aux expressions régulières”
Poster un commentaire
Catégories
- Opinions et débats (3)
- Outils web analytics (2)
- Premiers pas (2)
- WA Fail (1)
Articles récents
- Cas pratique Google Analytics : introduction aux expressions régulières
- Pourquoi choisir une agence pour faire du web analytics ?
- Une journée avec AT Internet
- Plug-in Excel – 1/3 : Omniture Report Builder (ORB)
- WA Fail #1 : Un max d’infos sur les visites !
Blogs analytics en français
- Blog conversion
- Brice Bottégal
- Forum web analytics
- Google Analytics
- Hub'Sales
- Kinaze
- Le blog de Gaetan Bertin
- Negligible Quantities
- Pages Vues
- The Analytics Factor
- Wagablog
- WAO Marketing
- Web Analytics & E-commerce
- Web analytics sur mesure
- webanalytics-conseil.com
Romuald




Merci pour cet article très enrichissant. J’aime bien ^/categorie/form($|\-us$|\-af$) qui m’apparaît aussi comme la solution la plus logique à ton problème. Peut-être aussi que j’aurais aussi décidé de renommer les pages de l’étape 3 de mon tunnel de conversion, par /category/form1, /category/form2 et /category/form3 juste pour ne pas me casser la tête avec la transformation du métacaractère « - » en caractère normal à l’aide du « \ » : ^/categorie/form(1$|2$|3$). Ce dernier exemple illustre bien qu’il peut parfois être intéressant d’aborder le problème d’un autre angle (ou bien comment je suis paresseux!). Mais en fin de compte, c’est vrai qu’il peut être très bénéfique du point de vue du SEO de nommer les adresses avec des termes spécifiques et d’utiliser le signe « - », comme tu le suggères.
Dans ma logique de formulaire numéroté, est-ce que tu penses que l’expression ^/categorie/form(1|2|3)$ aurait aussi fonctionné?
Merci pour ton retour kinaze,
^/categorie/form(1|2|3)$ aurait très bien fonctionné dans ta logique et cette forme permet même de simplifier celle que je propose en : ^/categorie/form($|\-us|\-af)$
Ça fait gagner un caractère !
Cependant, si je ne me limite pas seulement aux métacaractères que j’ai exposé dans cet article, pour le cas que tu proposes, on aurait pu utiliser l’expression régulière suivante : ^/categorie/form[1-3]$
Elle signifie littéralement : je capte une expression commençant par « /categorie/form » et finissant par un chiffre de la plage allant de 1 à 3 (inclus).
Merci pour cet article sur les expressions régulières, j’étais en train de me prendre la tête pour créer mon tunnel de conversion en jonglant entre Analytics et une autre solution de mesure d’audience.
Ton article vient de me sauver la vie et m’a en même temps ouvert les yeux sur la puissance d’Analytics.
Merci encore
Je suis content d’avoir pu t’aider Pierre.
Bon courage pour la résolution de tes prises de tête :)
Merci pour cet article qui est une très belle introduction aux expressions régulières et qui va me permettre de régler un problème de tunnel de conversion.
Merci pour l’article!
Tout va dépendre si vous avez des pages/articles similaires ou si vous avez uniquement des pages qui ont un sujet bien précis pour une conversion bien précise, si c’est le cas pas besoin d’utiliser cette technique
Mais si ce n’est pas le cas, foncez !
C’est long mais ça doit valoir le coup…
Rob