Ask HN: How to split traffic in A/B testing?
1–5 of 5 posts
Re: Ask HN: How to split traffic in A/B testing?
#2Maybe someone has already built a framework for you to use?
I personally used ABingo for Ruby on Rails (http://www.bingocardcreator.com/abingo), Visual Website Optimizer (http://visualwebsiteoptimizer.com) and Google Website Optimizer (http://www.google.com/websiteoptimizer) for any technology.
The advantage of running a technology specific tool is mainly because of performance. Most technology-agnostic tools execute a javascript on your page to be able to execute the A/B testing logic where ABingo for example is executed on the server side (no additional http request)
What generic tools give you though is the ability to change your tests without changing your code.
Re: Ask HN: How to split traffic in A/B testing?
#3Re: Ask HN: How to split traffic in A/B testing?
#4The way A/Bingo handles this is to assign every user a unique ID, and for each test take the MD5 hash of their ID concatenated with the test name. That gives you some big ol' integer. Modulo the number of choices gives you the number of the choice to show them. This is extremely fast, durable, and has very little state, which are nice things to have in an A/B testing algorithm.
Re: Ask HN: How to split traffic in A/B testing?
#5The way A/Bingo handles this is to assign every user a unique ID, and for each test take the MD5 hash of their ID concatenated with the test name. That gives you some big ol' integer. Modulo the number of choices gives you the number of the choice to show them. This is extremely fast, durable, and has very little state, which are nice things to have in an A/B testing algorithm.
So that means, that all you need is their UID, and for each subsequent page hit, for a particular test, the test choice to show them is deterministic. But, where does the even distribution of test choices come from? The hash or UID or the combo of the two?