optimisations XiTi / ATinternet / AB testing


ben64btz
WRInaute discret
WRInaute discret
 
Messages: 204
Inscription: 9 Mai 2006

optimisations XiTi / ATinternet / AB testing

Message le Mer Fév 18, 2009 15:52

J'ai récemment installé XiTi Analyzer II sur l'un de mes sites.
J'ai cependant été confronté à une problématique concernant l'A/B testing, le but est d'auditer plusieurs pages de landing (en rotation) ou plusieurs CSS.
J'ai donc développé un script PHP, qui peut toujours vous servir si vous avez ce type de besoin.

Le principe :
Si je suis un nouveau visiteur: je suis redirigé vers une page au hasard et je crée un cookie sur le domaine du client nommé XitiABtesting.
Si je suis déjà venu sur le site pendant la durée de vie du cookie je suis toujours redirigé vers la page que j’ai vu lors de ma première visite.
Code: Tout sélectionner

<?php
$start = "0";   // définition de ma variable de départ
$total = "3"; // définition du nombre total de variables
$random = mt_rand($start, $total);  // attribue une valeur au hasard entre $start et $total
$redirection = array ("http://www.test.com/pageA", "http://www.test.com/pageB", "http://www.test.com/pageC", "http://www.test.com/pageD");  // définition des url du test dans un array
$timestamp_expire = time() + 365*24*3600; // durée de vie du cookie
if (isset($_COOKIE["XitiABtesting"]))   // si le cookie existe déjà
{
$redirectCookie = $_COOKIE['XitiABtesting'];  // attribue la valeur du cookie à la variable $redirectCookie
header("Status: 302 Moved", false, 302); // redirection 302 (important de ne pas passer par une 301 pour ne pas plomber la SEO)
header("Location:$redirection[$redirectCookie]"); //redirige tout le temps vers la page vue lors de la première visite en récupérant la valeur du cookie
}
Else   // si le cookie n’est pas présent
{
setcookie('XitiABtesting', $random, $timestamp_expire); // définition du cookie
header("Status: 302 Moved", false, 302);  // redirection 302 (important de ne pas passer par une 301 pour ne pas plomber la SEO)
header("Location:$redirection[$random]"); // redirige vers une page ABC ou D de façon aléatoire
exit();
}
?>




voici la même méthode pour changer uniquement le CSS (mais je ne l'ai pas testé)

Code: Tout sélectionner

<?php
$start = "0";
$total = "3";
$random = mt_rand($start, $total);
$redirection = array ("../css/css1.css", "../css/css2.css", "../css/css3.css", "../css/css4.css");
$timestamp_expire = time() + 365*24*3600;
if (isset($_COOKIE["XitiABtesting"]))
{
$redirectCookie = $_COOKIE['XitiABtesting'];
$css = $redirection[$redirectCookie];
}
else
{
setcookie('XitiABtesting', $random, $timestamp_expire);
$css = $redirection[$random];
exit();
}
?>



ben64btz
WRInaute discret
WRInaute discret
 
Messages: 204
Inscription: 9 Mai 2006

Re: optimisations XiTi / ATinternet / AB testing

Message le Ven Nov 13, 2009 18:14

Pour finaliser cette méthode voici le script JS complémentaire de la redirection serveur décrite plus haut.
Il s'agit d'une ligne de code que vous ajoutez à votre marqueur de contenus classique.

marqueur de contenus classique
Code: Tout sélectionner
<script type="text/javascript">
<!--
xtnv = document;        //parent.document or top.document or document         
xtsd = "http://logXXXX";
xtsite = "XXXXXXX";
xtn2 = "XX";        // level 2 site
xtpage = "XXXXXX";        //page name (with the use of :: to create chapters)
//-->
</script>


marqueur de contenus modifié
Code: Tout sélectionner
<script type="text/javascript">
<!--
xtnv = document;        //parent.document or top.document or document         
xtsd = "http://logXXXX";
xtsite = "XXXXXXX";
xtn2 = "XX";        // level 2 site
xtpage = "XXXXXX";        //page name (with the use of :: to create chapters)
window.xtparam+="&tl=[i][Nom_du_test][/i]&tv=[i]A[Nom_de_la_page_A][/i]";
//-->
</script>


ici le nom du test ne change pas d'une version de l'objet à l'autre.
En revanche pour une version B vous devriez mettre B[Nom_de_la page_B]


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité