A/Bingo: Rails AB Testing

A/Bingo is a Ruby on Rails A/B testing framework written as a plugin. It is an extraction from Bingo Card Creator, where it is used in production. A/Bingo should work for most recent versions of both Rails 2.3 and 3.0.

Key features:

  • Test display or behavioral differences in one line of code
  • Measure any event as a conversion in one line of code.
  • Eliminate guesswork: test for statistical significance in one line of code.
  • Blazingly fast, with minimal impact on page load times or server load.
  • Written by programmers, for programmers. Marketing is an engineering discipline!

#Simple syntax to start a test:
#Here we're interested in whether the login buttons affect whether folks sign in.
#If you're using Rails 3. this should be <%= instead of <%
<% ab_test("login_button_test", ["/images/button1.jpg", "/images/button2.jpg"], :conversion => "login") do |button_file| %>
  <%= image_tag(button_file, :alt => "Login!") %>
<% end %>

#Track any arbitrary event as a conversion
def login
  #some business logic goes here


A/Bingo Is Open Source

Bingo Card Creator, my business, has only come as far as it has because I stand on the shoulders of giants. Without Rails and Nginx powering this website, or the Apache HTTPClient library embedded in the downloadable version of Bingo Card Creator, or (at last count) 62 other open source projects, it is unlikely I would be a businessman today.

A/Bingo is my attempt to repay the community a favor, bringing some skill at marketing to a profession which frequently lacks and often despises it. It is copyright Patrick McKenzie 2009 and released under the MIT license, which is the same as Rails. The human-readable summary of the legal code is "You can do whatever you want with this, just please don't sue me."

A/Bingo is designed to work right out of the box for most uses. If you have different needs, I encourage you to alter A/Bingo to suit your purposes. The code is commented, documented, and mostly easy to follow. It is hosted in a publicly accessible git repository. If you do anything noteworthy with it that you'd like to share, email me (patrick@ this domain) with the location of your repository and I may include it in the version seen here. You are especially likely to be included if you make me money by solving Bingo Card Creator's business problems.


Development Roadmap

Tell me what you need (patrick@ this domain) and I will try to make it happen, at least to the extent that it helps me sell bingo card makers to elementary school teachers. Currently, I have the following planned for A/Bingo:

  • More statistical significance tests.
  • Better visualization of results.
  • Performance improvements, if people require them.
  • Tracking multiple types of conversion per test.
  • Tracking different conversion values.
I work a day job as a Japanese salaryman, run my own business in my spare time, and (shockingly) am sometimes not staring at a computer screen. Accordingly, I have long since learned to not promise development timelines. They'll be done when they're done, or when you help me get them done.