2013-04-24 6 views
11

Ci sono due principali scuole di pensiero per fare A/B (Split) Testing:Django A/B Split Testing Pacchetti (Nessuno che ho trovato sono ben documentate e up-to-date.)

  • Soluzioni basate su Javascript come Optimizely, Esperimenti sui contenuti di Google Analytics.
  • Soluzioni lato server come Django-AB, Splango e django-lean. (Inoltre, scrivere il proprio.)

mia comprensione è che le soluzioni JavaScript-based sono spettacolari per "quale pulsante di colore converte meglio", ma non così grande per passare intere layout di pagina, e completamente impraticabile per provare grandi cambiamenti funzionali come la sequenza di pagine in una canalizzazione.

Questo mi porta verso una soluzione lato server. Non sono pazzo di scrivere il mio, e lo farò solo se non ci sono altre opzioni. Sto cercando di aggiungere valore migliorando le funzionalità di base del mio sito, non creando una migliore struttura di testing diviso.

Le app di Django che ho trovato per split test sono varie miscele di non mantenute, non documentate, documentate in modo errato e incompatibili con Django 1.5. Questo mi sorprende, perché le comunità di Django e Python sembrano avere un forte focus sulla buona documentazione. Sono anche molto sorpreso dal fatto che nessuno dei framework di testing che ho provato sia compatibile con Django 1.5 - sta testando non come una parte fondamentale della filosofia nel mondo di Django/Python come in Rails?

Ecco cosa ho trovato:

  • Splango https://github.com/shimon/Splango - Non compatibile con Django 1.5 (anche se la maggior parte dei bug di compatibilità ho trovato erano banale da risolvere). Ampiamente non toccato dall'ottobre 2010, ad eccezione di una correzione dell'agosto 2012 che afferma di assicurarsi che i modelli vengano inclusi nell'installazione. Poiché i modelli non vengono inclusi nell'installazione quando Splango viene installato tramite PyPI, la correzione non ha funzionato o non è stata inviata a PyPI. La documentazione è ampiamente accurata, ma non copre completamente come impostare test e ottenere report. Ti spiega come configurare il modello per raccogliere i dati, ma sembra che ci siano ulteriori passaggi necessari nell'interfaccia di amministrazione che sono completamente non documentati e non sono sicuro di averli eseguiti correttamente.

  • Django-lean. Originale a https://bitbucket.org/akoha/django-lean non è stato aggiornato da luglio 2010. C'è una forcella apparentemente "benedetta" allo https://github.com/anandhenry2002/django-lean che non è stata modificata da maggio 2012, quando è stata copiata dall'originale. La documentazione originale non è corretta in modi che rendono impossibile seguire gli esempi. (Anche se probabilmente riuscirai a confonderti, come ho fatto io.) La documentazione della nuova versione presenta problemi di formattazione che rendono difficile la lettura su github. (Questo sembra essere dovuto alla documentazione invariata del vecchio progetto e la sintassi di BitBucket non funziona su Github.) Il gruppo Google django-lean non ha ricevuto alcun messaggio da luglio 2012.

  • django-mini- lean https://github.com/DanAncona/django-mini-lean - Aggiornato fino a febbraio 2013, ma non documentato.

  • Leaner - https://bitbucket.org/brianjinwright/leaner - Ultimo aggiornamento luglio 2012 e nessun documento.

  • Django-AB - Ultimo aggiornamento di maggio 2009. Non è un pacchetto e non può essere installato tramite PIP o PyPI. Dopo aver effettuato il checkout nella mia cartella app django (e rinominato la cartella in ab) e seguendo le istruzioni di installazione, ricevo un errore nel caricare il caricatore di template che non ho rintracciato ulteriormente.

Finora Splango sembra essere il vincitore, come ho effettivamente in grado di farlo funzionare più o meno (installando manualmente i modelli, e quindi la modifica di loro di risolvere Django 1,5 incompatibilità).

Qualcuno può indicarmi qualcosa che ho perso?

+0

Posso sapere quale framework alla fine hai utilizzato? Hai usato quello nelle risposte. Sto cercando un modulo semplice in cui posso assegnare casualmente gli utenti in controllo sperimentale, quindi assicurati di nascondere le funzionalità in base a quella ... qualsiasi guida? –

risposta

4

E poi c'è cialda: http://waffle.readthedocs.org/

E 'semplice, aggiornato, mantenuto, ma non molto ricco di funzionalità, ma non ha nessuna roba di analisi/reporting integrato. Ma poi di nuovo, google analytics o mixpanel tipo di servizio è meglio per questo.

2

Ho guardato per la prima volta Django-AB e questo è quasi quello che volevo, ma non riuscivo nemmeno a farlo funzionare. Dopo aver visto gli esperimenti sul django e aver deciso che non volevo ancora scherzare con i redis, ho deciso di fare il mio. Ho provato a impacchettarlo bene e renderlo facile da usare per i principianti. È super essenziale.

https://github.com/crobertsbmw/RobertsAB

1

È possibile scambiare completamente diversi layout di pagina con gli esperimenti di Google Analytics (il loro sistema di sperimentazione predefinita reindirizzerà gli utenti a un URL diverso per ogni variante avete), anche se in generale la sua molto più facile da interpretare perché qualcosa ha più successo se metti alla prova cose più piccole l'una contro l'altra.

Hai ragione che testare diverse canalizzazioni e flussi di utenti l'uno contro l'altro utilizzando Google Analytics richiederebbe un lotto di installazione manuale; anche se teoricamente potresti farlo scambiando link diversi e monitorando i tuoi utenti con le campagne UTM.

Per test A/B più piccoli all'interno della stessa pagina, ho finito con l'utilizzo di Esperimenti di Google Analytics e la scrittura di un plug-in Django CMS personalizzato per aggiungere alcune varianti a un modello, che interroga l'API di Google Analytics e visualizza la variante corretta usando Javascript.

+0

sarebbe interessante vedere il tuo codice per quest'ultima parte se non ti dispiace condividere –