XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Tests A/B avec PHP, Pluf et MongoDB en 4 lignes de code

The 2010-04-08 at 19:55 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

Si vous voulez optimiser votre site pour augmenter votre taux de conversion, rendre votre site plus agréable pour vos visiteurs, une solution simple et efficace est de réaliser des tests dits "A/B". Un test "A/B" ou "split test" est tout simple:

Vous donnez à 50% de vos visiteurs la version A de votre site et aux autres la version B. Vous regardez ensuite quelle version marche le mieux.

A/B testing avec Pluf en PHP

Vous aimez jouer au poker ou aux dés ? Oui ? C’est très bien, car cela veut dire que vous avez une petite idée des statistiques. Un test A/B peut être très facilement analysé avec une série de tests statistiques standards, le test Z, pour savoir si c’est la chance qui vous annonce que la version A est meilleure que la B ou si c’est vraiment le cas. Cela vous permet aussi de savoir si vos dés sont pipés :).

À partir de ce test, on peut calculer la certitude avec laquelle on sait que la version A est meilleure que la B. Une certitude de 50% veut dire qu’on a aucune idée, c’est 50/50. Pour être vraiment certain, il faut avoir une certitude de 95% (ce n’est de la chance qu’une fois sur 20). Sur la capture d’écran, vous avez une certitude de 93%, c’est très bien, mais il vaut mieux attendre au moins une exposition à 100 ou 150 personnes par alternative pour considérer le test comme terminé.

Maintenant, si vous n’aimez pas les stats, mais que vous avez compris que cela va vous permettre d’améliorer massivement votre application en testant différentes pages, vous avez raisons. Si vous codez en PHP et que vous connaissez le framework Pluf, vous avez de la chance, le système de tests A/B est inclut en standard.

La première chose à faire est de lancer MongoDB pour stocker les résultats des tests et d’avoir Memcached ou APC comme cache Pluf histoire que les performances soient optimales.

Ensuite, vous mettez dans le code de votre vue:

$download_style = Pluf_AB::test('download_style', $request,
              array('normal', 'bold', 'italic', 'bolditalic'));

Cela veut dire que vous faites le test ‘download_style’ et que vous avez 4 alternatives. J’utilise la valeur de $download_style dans mon gabarit pour afficher le bon style.

Dans ce cas test, j’ai fait une vue qui fait la redirection vers la page de download du logiciel et dans cette vue je mets simplement avant la redirection :

Pluf_AB::convert('download_style', $request);

Cela veut dire que j’ai eu une conversion pour cette utilisateur. L’utilisateur est suivi par des cookies et le système est correctement résistant aux robots.

2 lignes de code pour un test A/B avec Pluf !

Maintenant pour voir les stats comme dans la capture d’écran, il vous suffit d’ajouter à la définition de vos urls, la vue suivante :

array('regex' => '#^/urlquevousvoulez/$#',
      'base' => $base,
      'model' => 'Pluf_AB_Views',
      'method' => 'dashboard',
      'name' => 'pluf_ab_dashboard'
      ),

C’est simple, efficace et comme d’habitude haute performance…

Comments from readers

Mandar said:

Ça a l'air sympa ! Je testerai, merci de partager.

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS