Split testing A/B pages with Cold Fusion

2009-07-23 Thread cftalk

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

2009-07-23 Thread Alan Rother

>>>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