Jump to content

Réaliser un test A/B (marketing) : 2 pages différentes


Recommended Posts

Bonjour,

 

Je suis coincé la dessus depuis un petit moment.

 

Afin de réaliser des test sur la performance des pages produits de mon e-commerce, je voudrais mettre en place en test A/B via google analytics : c'est à dire, créer 2 pages produits (par ex) différentes, et renvoyer 50% du trafic vers la page A, et 50% du trafic vers la page B.

 

Voici le seul début de réponse que j'ai pu trouver :

 

- tu dupliques l’original (le thème) et ne modifie que la page ou morceau de page test

- tu intègres une variable dans l’url comme ?testab=b

- tu modifies le settings.inc.php :

if (ta_condition) {

define(‘_THEME_NAME_’, ‘themeA’);

} else {

define(‘_THEME_NAME_’, ‘themeB’);

}

 

Je bloque sur les 2 points affichés en rouge.

Comment puis-je concrètement "intégrer une variable" dans l'url ?

 

Merci

Share this post


Link to post
Share on other sites

Bonjour,

 

Voici une réponse pour la 1.5 :

 

Si tu veut faire le test uniquement sur la page produit je te suggère de surcharger la méthode iniContent() du fichier "controllers\front\productController.php".

 

Il te suffira d'ajouter cette méthode dans le fichier suivant : "override\controllers\front\productController.php".

 

A la fin de cette méthode du à l'appel au template "product.tpl":

$this->setTemplate(_PS_THEME_DIR_.'product.tpl');

 

modifie ce code en utilisant ta contition :

if (ta_condition)
 $this->setTemplate(_PS_THEME_DIR_.'product-A.tpl');
else
 $this->setTemplate(_PS_THEME_DIR_.'product-B.tpl');

 

Note: en 1.4 il s'agit de la méthode "displayContent()" du même fichier.

 

Cordialement,

Loïc.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

Voici une réponse pour la 1.5 :

 

Si tu veut faire le test uniquement sur la page produit je te suggère de surcharger la méthode iniContent() du fichier "controllers\front\productController.php".

 

Il te suffira d'ajouter cette méthode dans le fichier suivant : "override\controllers\front\productController.php".

 

A la fin de cette méthode du à l'appel au template "product.tpl":

$this->setTemplate(_PS_THEME_DIR_.'product.tpl');

 

modifie ce code en utilisant ta contition :

if (ta_condition)
 $this->setTemplate(_PS_THEME_DIR_.'product-A.tpl');
else
 $this->setTemplate(_PS_THEME_DIR_.'product-B.tpl');

 

Note: en 1.4 il s'agit de la méthode "displayContent()" du même fichier.

 

Cordialement,

Loïc.

 

Ok merci beaucoup. Par contre par quoi dois-je remplacer "ta_condition" ? Je suis effectivement en 1.4

 

Cordialement,

 

PS: Mon dossier override est vide !

Edited by fxdesca (see edit history)

Share this post


Link to post
Share on other sites

Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php".

 

Pour la condition c'est à vous de la déterminer...

 

Ex de condition:

* Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B".

* Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B".

... ect

 

Cordialement,

Loïc.

  • Like 1

Share this post


Link to post
Share on other sites

Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php".

 

Pour la condition c'est à vous de la déterminer...

 

Ex de condition:

* Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B".

* Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B".

... ect

 

Cordialement,

Loïc.

 

Très bien, je vais de ça pas essayer de mettre en place tout ça.

 

Merci encore pour cette aide précieuse.

 

Cordialement,

 

François

Share this post


Link to post
Share on other sites

Bon je reviens après une petit phase de test qui n' a pas fonctionné :

 

j'ai modifier le fichier ProductController.php comme cela :

 

 

public function displayContent()

{

parent::displayContent();

if($logged)

self::$smarty->display(_PS_THEME_DIR_.'product.tpl');

else

self::$smarty->display(_PS_THEME_DIR_.'product2.tpl');

}

 

Dans les deux cas, que je sois connecté ou pas, ça m'affiche le template modifié...

Share this post


Link to post
Share on other sites

Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php".

 

Pour la condition c'est à vous de la déterminer...

 

Ex de condition:

* Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B".

* Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B".

... ect

 

Cordialement,

Loïc.

 

J'ai résolu le probème avec ce code

 

 

public function displayContent()

{

parent::displayContent();

global $cookie;

if ($cookie->isLogged())

self::$smarty->display(_PS_THEME_DIR_.'product.tpl');

else

self::$smarty->display(_PS_THEME_DIR_.'product3.tpl');

}

 

Cependant pour réaliser les tests je dois renseigner 2 url différentes, comment puis-je les différencier ?

 

En passant une variable dans l'url ? Mais comment ?

 

Merci pour votre aide

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More