Split testing A/B pages with Cold Fusion
Hello, I am trying to make a split testing script to track two landing pages. Should I: a) Just use random() to select the page assuming I'll end up with even distribution (its 50/50 no?) b) Store the last viewed page in an application var, single thread it, and toggle it on each visit to load the correct page and prepare it for the next request. Will this be a bottleneck? It would be a pretty small piece of code.. What do you ya'll think? While I'm posting, I am also going to be recording page views vs. actions (form completions). My idea was to create a UUID on the first visit, update the pageview table (record the UUID) and write the UUID to a cookie. When the form gets submitted, check for the UUID cookie and update the pageAction table. My question is, does it make more sense to store the stats in two tables (viewStats / actionStats) or to combine them into one table with bit fields for view / action ? BTW, I read http://jochem.vandieten.net/tag/uuid/ which sheds some light on using UUIDs and optimizing them for SQL Server. I was going to try to use java.util.UUID to generate the UUID and see how that works out.. Brook ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:324869 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Re: Split testing A/B pages with Cold Fusion
>>>a) Just use random() to select the page assuming I'll end up with even distribution (its 50/50 no?)Well Yes and no. If you get a large enough sample, it will come close to 50/50. Keep in mind, every time you hit it, each option has at that moment a 50 / 50 chance of coming up. It's close enough if you don't need it to be a perfect distribution of 50 / 50. I would recommend using RandRange(1, 2) for simplicity sake. b) Store the last viewed page in an application var, single thread it, and toggle it on each visit to load the correct page and prepare it for the next request. Will this be a bottleneck? It would be a pretty small piece of code.. I would use this if you really have to have a perfect distribution of 50 / 50 OR if you have a non technical boss who insists on testing it and wants to see the A/B split every time he reloads the page. It's more complex, but may make you boss happier. =] -- Alan Rother Adobe Certified Advanced ColdFusion MX 7 Developer Manager, Phoenix Cold Fusion User Group, AZCFUG.org ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:324872 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4