Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A/B Testing everything with Split

A/B Testing everything with Split

Just because the tests past doesn't mean that your users will actually like the change, you can test your features in front of real users using A/B testing. A/B testing is becoming an important tool on the web to test out new features on a subset of your users to find out if they fulfil their purpose and make your decisions based on data not opinions. Split is a rack based A/B testing framework, it works with Rails, Sinatra and any other rack based web framework. Find out why we needed another framework and how to use in Rails, Sinatra and Radiant and the best practises of A/B testing.

Andrew Nesbitt

October 07, 2011

More Decks by Andrew Nesbitt

Other Decks in Technology


  1. $$$

  2. “Every time man makes a new experiment he always learns

    more. He cannot learn less.” R r B r F r
  3. • Simple, modular and hackable • Designed with rack in

    mind • Small and lightweight • Rails, sinatra and padrino support • Sweet dashboard What’s different?
  4. • Redis is awesome • Rack is always there •

    Don’t manage sessions Design decisions
  5. • Swap css stylesheets • Render different templates or partials

    • Set different variables at the controller level • Hack up the page with javascript Different Approaches
  6. Example # app/views/home/index.html.erb <% ab_test("signup_button", "orignal.jpg", "awesome.jpg") do |button| %>

    <%= link_to img_tag("/images/#{button}", :alt => "Signup!"), signup_path %> <% end %> # app/controllers/home_controller.rb def signup # some business logic finished("signup_button") redirect_to dashboard_path end
  7. Weighted Averages ab_test('homepage design', 'old' => 9, 'new' => 1)

    90% see ‘old’ homepage 10% see ‘new’ homepage
  8. Spiders, bots and snake oil # config/initializers/split.rb Split.configure do |config|

    config.robot_regex = /my_custom_robot_regex/ config.ignore_ip_addresses << '' end # robots.txt User-Agent: * Disallow: /
  9. • JSON Api • Javascript library • Support for different

    data stores • Other language support • Hosted data store Future features
  10. “If you’re not prepared to be wrong, you’ll never come

    up with anything original” S r K R b
  11. Q ?