Il y a deux écoles de pensée principales pour effectuer des tests A / B (Split): P>
Ma compréhension est que les solutions basées sur JavaScript sont spectaculaires pour "Quel bouton de couleur convertit mieux," mais pas si génial pour émettre des dispositions complètes de la page, et complètement impraticable pour essayer de grandes modifications fonctionnelles telles que la séquence de pages dans une entonnoir. p>
Cela me conduit vers une solution côté serveur. Je ne suis pas fou de codé le mien et ne le ferons que s'il n'y a pas d'autre option. J'essaie d'ajouter de la valeur en améliorant la fonctionnalité principale de mon site, non pas en créant un meilleur cadre de test de scission. P>
Les applications Django que j'ai trouvées pour des tests divisés sont diverses mélanges de non-documentés non documentés, documentés de manière incorrecte et incompatibles avec Django 1.5. Cela me surprend, car les communautés de Django et de Python semblent avoir une forte concentration sur une bonne documentation. Je suis également très surpris qu'aucun des cadres d'essais que j'ai essayés n'a été compatible avec Django 1.5 - les tests ne font pas partie de la philosophie du monde de Django / Python comme dans des rails? P>
Voici ce que j'ai trouvé: p>
splango https://github.com/shimon/splango - non compatible avec Django 1.5 (bien que la plupart des bugs de compatibilité que j'ai trouvés étaient triviaux à réparer). En grande partie non touchée depuis octobre 2010, à l'exception d'une solution août 2012 qui prétend s'assurer que les modèles sont inclus dans l'installation. Étant donné que les modèles ne sont pas inclus dans l'installation lorsque Splango est installé via PYPI, soit le correctif n'a pas fonctionné ni ne s'est pas soumis à PYPI. La documentation est largement précise, mais ne couvre pas complètement comment configurer des tests et obtenir des rapports. Il vous indique comment configurer le modèle pour recueillir les données, mais il semble y avoir des étapes supplémentaires requises dans l'interface administrative totalement non documentée, et je ne suis pas sûr que je les ai fait correctement. P> LI >
Django-maigre. Original chez https://bitbucket.org/akoha/django-lean n'a pas été mis à jour depuis juillet 2010. Il y a une fourchette apparemment "bénie" à https://github.com/anandhenry2002/django-lean < / a> qui n'a pas été changé depuis mai 2012, quand il a été copié à partir de l'original. La documentation de l'original est incorrecte de manière à ce que les exemples sont impossibles à suivre les exemples. (Bien que vous puissiez probablement vous confondre, comme je l'ai fait.) La documentation de la nouvelle version a des problèmes de formatage qui rend difficile la lecture de Github. (Cela semble être parce que c'est la documentation inchangée de l'ancien projet, et la syntaxe Bitbucket ne fonctionne pas sur GitHub.) Le groupe Google Django-Lean n'a pas eu de message depuis juillet 2012. P> LI>
django-mini-maigre https://github.com/danancona/django- Mini-Lean - mis à jour comme récemment que février 2013, mais non documenté. P> li>
maigre - https://bitbucket.org/bridienjinwright/leaner - Dernière mise à jour Juillet 2012 et pas de documents. P> Li>
DJANGO-AB - Dernière mise à jour de mai 2009. Ce n'est pas un package et ne peut pas être installé via PIP ou PYPI. Après avoir placé la caisse dans mon dossier d'application Django (et renommer le dossier à AB) et suivez les instructions d'installation, je reçois une erreur en chargement du chargeur de modèle que je n'ai pas suivi plus loin. P> li>
ul>
Jusqu'à présent, Splango semble être le gagnant, car j'ai été en mesure de l'obtenir plus ou moins de travail (en installant manuellement les modèles, puis de les modifier pour corriger les incompatibilités Django 1.5). P>
Quelqu'un peut-il me dire quelque chose que j'ai manqué? P>
4 Réponses :
Vous avez manqué cette application: https://github.com/mixcloud/django-experiments + https://github.com/disqus/grainogoyle/ p>
Remarque: Gargoyle code> n'est pas mis à jour beaucoup. J'utiliserais de la gaufre qui est toujours en développement actif waffle.readthedocs.org
Gargoyle code> a été obsolète en décembre 2015 car il n'est plus maintenu par DISQUS; Cependant, un autre groupe est maintenant en train de maintenir une fourchette: Github.com/yplan/gargoyle
Et puis il y a des gaufres: http://waffle.readthedocs.org/ p>
C'est simple, mis à jour, entretenu, mais pas très très caractéristique riche, il n'a pas d'analyse d'analyse / rapport de rapport intégré. Mais à nouveau, Google Analytics ou MixPanel Type de service est meilleur pour cela. p>
J'ai d'abord regardé Django-AB et c'est presque ce que je voulais, mais je ne pouvais pas le faire travailler non plus. Après avoir regardé les expériences de Django et décider, je ne voulais pas encore gâcher avec Redis, j'ai décidé de rouler le mien. J'ai essayé de l'emballer bien et de faciliter l'utilisation du débutant. C'est super basique. P>
Vous pouvez échanger des dispositions de page entièrement différentes avec des expériences de Google Analytics (leur configuration de l'expérience par défaut redirigera les utilisateurs à une URL différente pour chaque variation que vous avez), bien que, en général, il soit beaucoup plus facile d'interpréter pourquoi quelque chose a plus de succès si vous testez choses plus petites les unes contre l'autre. p>
Vous avez raison de tester différents entonnoirs et flux d'utilisateurs les uns contre les autres à l'aide de Google Analytics nécessiteraient un lot Pour les tests A / B plus petits dans la même page, j'ai fini par utiliser Google Analytics Experiments et écrire un plug-in personnalisé Django CMS pour ajouter quelques options de variante à un modèle, qui interroge l'API Google Analytics et affiche la variante correcte en utilisant JavaScript. P>
serait intéressant de voir votre code pour cette dernière partie si cela ne vous dérange pas de partager
Puis-je savoir quel cadre finalement vous avez fini par utiliser? Avez-vous utilisé celui dans les réponses? Je cherche un module simple dans lequel je peux affecter des utilisateurs au hasard dans Control ND Experimental, assurez-vous de masquer les fonctions en fonction de cela ... Toute guidage?