juin
11

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.

Exemple de tunnel de conversion complexe

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.

Configuration d'un entonnoir de conversion Google Analytics - Détail de l'objectif

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 » :

Détail des étapes de conversion

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 :

  • test correspond à : « test », « pretest », « super test », « le test de fou » ou « test de fou »
  • Alors que ^test correspond à : « 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) :

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

Google+

14 commentaires pour “Cas pratique Google Analytics : introduction aux expressions régulières”

  • kinaze 15 juin 2010 à 5 h 27 min

    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.

  • kinaze 15 juin 2010 à 5 h 34 min

    Dans ma logique de formulaire numéroté, est-ce que tu penses que l’expression ^/categorie/form(1|2|3)$ aurait aussi fonctionné?

  • Romuald 15 juin 2010 à 9 h 52 min

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

  • Pierre 29 septembre 2010 à 9 h 31 min

    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

  • Romuald 29 septembre 2010 à 11 h 46 min

    Je suis content d’avoir pu t’aider Pierre.

    Bon courage pour la résolution de tes prises de tête :)

  • WebArashi 13 décembre 2010 à 16 h 57 min

    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.

  • Guillaume Joly 21 octobre 2011 à 20 h 26 min

    Merci pour l’article!

  • Robert lu 17 novembre 2011 à 15 h 22 min

    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

  • Définir un entonnoir de conversion | Thierry Tournié 1 mars 2012 à 8 h 49 min

    [...] L’utilisation des expressions régulières [...]

  • Bastien 22 août 2012 à 8 h 51 min

    Bonjour,

    Très bon article, même pour moi qui suit débutant avec Analytics ! Mais je ne vois pas comment capter des pages dont la fin de l’url est « libre », c’est à dire que c’est un paramètre entré par l’internaute.
    Par exemple, capter aussi bien https://www.google.fr/search?q=test
    que https://www.google.fr/search?q=azerty ou n’importe quelle requête.

    J’ai pensé à quelque chose de la forme ^/search

    Est ce que cela serait suffisant ?

  • Romuald 22 août 2012 à 9 h 26 min

    Bonjour Bastien,

    Logiquement ta technique devrait fonctionner. A condition bien sur que tu définisses ton filtre ou ton segment en « correspondance avec une expression régulière » et que ce type d’url fait bien partie de ton panel d’URI récupérée.

    Ton exemple me fait penser que tu souhaites récupérer des URI complètes des sites référents, ce qui n’est pas automatiquement le cas dans l’outil. Pour ce faire, tu pourrais utiliser le premier filtre exposé dans cet article > http://www.wagablog.com/2008/04/sur-quelles-pages-de-resultats-de-recherche-vos-visiteurs-vous-trouvent-ils/48

    En espérant t’avoir aidé un minimum.

    Romuald

  • Bastien 22 août 2012 à 9 h 38 min

    Merci pour cette réponse rapide. J’ai pris une page Google par hasard. Dans mon cas, les pages que je souhaite capter sont toutes les pages commençant par http://www.mondomaine.com/sign/create c’est à dire http://www.mondomaine.com/sign/create?name=test, http://www.mondomaine.com/sign/create?name=azerty etc.

    Je n’en suis pas encore à chercher mes sources de trafic, j’en suis encore à configurer mon entonnoir. :)

  • E-commerce : améliorer sa visibilité et sa transformation - Arnaud Guignant 13 mars 2013 à 15 h 34 min

    [...] avec Google Analytics d’analyser votre tunnel de conversion (voir ce tutoriel par exemple ou celui-ci avec des cas un peu plus complexes). Vous pourrez ainsi mettre le doigt sur une ou plusieurs [...]

  • Adrien Legoff 7 avril 2016 à 12 h 01 min

    Bonjour,

    Article très intéressant, merci. Afin de faire bénéficier aux internautes d’un complément d’information, je vous propose de partager une autre source que nous venons de publier, qui explique comment configurer et analyser un tunnel de conversion sur Google Analytics : http://www.lafabriquedunet.fr/analytics/articles/configurer-analyser-tunnel-conversion-google-analytics/

    Encore merci et à bientôt,

    Adrien.

Poster un commentaire