Fonctionnel

Faire des A/B Test dans Webflow grâce aux paramètres UTM

outils :
Illustration croce

Sommaire

Introduction

Webflow ne permet pas de faire des A/B Test nativement et les outils spécialisés coûtent cher. D'autant plus que Google ont annoncé l'arrêt de Optimize. 

Mais pas de panique j'ai trouvé une solution pour A/B tester vos pages grâce aux paramètres UTM.

Super utile pour A/B tester les pages de redirection de vos campagnes publicitaires !

D'autant plus qu'en utilisant différentes valeurs UTM pour vos différentes variations d'A/B tests, vous pouvez voir quelles versions performent le mieux facilement.

Tutoriel pour faire des A/B Tests dans Webflow

A/B Test Webflow

1. Récupérez et stockez votre paramètre UTM dans une variable

La 1ère étape consiste à récupérer le paramètre UTM qui nous intéresse, dans mon exemple je vais récupérer utm_campaign afin de faire un A/B Test sur ma page produit en fonction de ma campagne Google Ads

 <script>
  // Récupération de la valeur des paramètres "utm_campaign" dans l'URL et la stock dans la session
  var utmCampaign;
  if (!sessionStorage.getItem("utmCampaign")) {
 utmCampaign = new URL(window.location.href).searchParams.get("utm_campaign");
  sessionStorage.setItem("utmCampaign", utmCampaign);
} else {
  utmSource = sessionStorage.getItem("utmCampaign");
}
</script>

Ce code JavaScript a pour objectif de récupérer et stocker la valeur du paramètre "utm_campaign" depuis l'URL actuelle de la page.

Voici une explication détaillée :

  1. Initialisation d'une variable: La variable utmCampaign est déclarée sans valeur initiale.
  2. Vérification dans le sessionStorage: Le script vérifie d'abord si une valeur pour "utmCampaign" n'est pas déjà stockée dans le sessionStorage.

    a. Si elle n'est pas stockée :

    a.1. Il tente de récupérer la valeur du paramètre utm_campaign dans l'URL actuelle grâce à new URL(window.location.href).searchParams.get("utm_campaign").

    a.2. Ensuite, il stocke cette valeur (qu'elle provienne de l'URL ou qu'il s'agisse de la valeur par défaut) dans le sessionStorage pour la session actuelle de l'utilisateur.

    b. Si elle est déjà stockée :

    b.1. Il récupère simplement la valeur de "utmCampaign" depuis le sessionStorage et la stocke dans la variable utmCampaign.
  3. Utilité du sessionStorage: Le sessionStorage est un moyen de stocker des données localement dans un navigateur pour la durée d'une session de page.
    Cela signifie que si l'utilisateur ferme l'onglet ou le navigateur et le rouvre, les données stockées dans le sessionStorage seront perdues. C'est différent du localStorage, qui persiste même après la fermeture du navigateur.

Tips : vérifiez que votre script s'exécute bien en faisant un test dans votre console

2. Implémentez les éléments que vous voulez A/B tester dans votre page

Dans mon cas je veux A/B tester le block de droite et voir si la conversion est meilleure lorsque j'utilise un formulaire directement sur ma page vs un funnel plus classique.

Version A
Version B

Donnez bien des classes distinctes aux éléments que vous voulez A/B tester. 

Dans mon cas j'utilise :

  • "sticky-header-article-wrapper" pour ma version A
  • "sticky-header-article-wrapper-lp" pour ma version B

3. Aoutez ce script dans le <body> de votre page

 <script>
document.addEventListener("DOMContentLoaded", function() {

    // Si le paramètre utmCampaign est "idf_nacelle"
    if (utmCampaign === "idf_nacelle") {
        document.querySelector(".sticky-header-article-wrapper-lp").style.display = "block";
        document.querySelector(".sticky-header-article-wrapper").style.display = "none";
    } else {
        document.querySelector(".sticky-header-article-wrapper-lp").style.display = "none";
        document.querySelector(".sticky-header-article-wrapper").style.display = "block";
    }
});
</script>
Veillez à bien modifier la condition pour qu'elle soit adapté à votre besoin, dans mon cas j'utilise "idf_nacelle" mais pensez à bien mettre le nom de votre paramètre à vous

Ce code JavaScript est conçu pour gérer l'affichage de certains éléments sur une page Web en fonction de certaines conditions. Voici une explication détaillée de son fonctionnement :

  1. Écouteur d'événement "DOMContentLoaded": Le script commence par ajouter un écouteur d'événement pour l'événement "DOMContentLoaded".
    Cela signifie que le code à l'intérieur de la fonction sera exécuté une fois que le contenu du document (HTML) aura été complètement chargé.
  2. Conditions:
    Le script vérifie si la variable utmCampaign est égale à "idf_nacelle".
  3. Changement de style en fonction des conditions:

    a. Si la variable utmCampaign est égale à "idf_nacelle", le script :

    a.1. Affiche l'élément avec la classe CSS .sticky-header-article-wrapper-lp (en changeant sa propriété display à "block").
    b.1. Cache l'élément avec la classe CSS .sticky-header-article-wrapper (en changeant sa propriété display à "none").

    b. Si au moins l'une des conditions n'est pas remplie :

    b.1. Cache l'élément avec la classe CSS .sticky-header-article-wrapper-lp.
    b.2. Affiche l'élément avec la classe CSS .sticky-header-article-wrapper.


Bien sûr, libre à vous d'ajouter autant d'éléments que vous souhaitez afficher/cacher dans vos différentes versions.

Il vous suffit alors de dupliquer la ligne :

  • document.querySelector(".sticky-header-article-wrapper-lp").style.display = "block";

Et de mettre la classe de votre nouvel élément à la place de ".sticky-header-article-wrapper-lp"

Publiez et testez le résultat

Ces tutoriels pourraient vous intéresser

Nos tutoriels de la même catégorie

Voir tous nos tutoriels
Illustration traits
Nous utilisons les meilleurs outils

développés avec les meilleurs outils et les meilleurs pratiques

Gemeos ne vous propose pas simplement un site web, mais une expertise sur les meilleurs outils pour vous garantir un retour sur investissement optimal. 

Figma

Pour le design de votre site web

Webflow

Pour l’intégration de votre site web

Client-first

Pour organiser vos projets

Wized

Pour ajouter des fonctionnalité à vos projets

Make

Pour l’automatisation de vos flux de travail