Plugin to configure Google Website Optimizer in a rails app
Ruby JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


GWO on Rails

The Google Website Optimizer tool is a big deal for marketing people, but has a lot of integration work in a website. Even if our website is not complex probably we don't want write rules to build headers and footers scripts depending on routes. And if you want test more than one experiment at time it could be really a mess.

This plugin helps you to configure all your experiments with a yaml on config/gwo_on_rails.yml and let your application as it is. Anyway you have a gwo_on_rails.sample.yml.

Let's take a look at the configuration parameters for the two kind of experiments that GWO allows to make at this moment.

Getting the basic information

For every experiment you need to configure your account code and the experiment key.

account: UA-0000000-0  => must be something like that
key: 0000000000  => you can find it in the control script as the k variable (k='0000000000')

You need also decide if your experiment is uri_sensitive or not

uri_sensitive    => Compare the configuration urls without / with parameters
       false      => (default) ==
       true       => !=

Configuring an A/B Experiment

You need an original page, variations of that original and the conversion page (goal!). In the yaml you can write it in this way:

original: http://localhost/wadus/index
    - variation: http://localhost/wadus/index2
    - variation: http://localhost/wadus/index3
goal: http://localhost/wadus/prize

You can configure as many variations of the page as you want, but remember that you need to build them :)

Configuring a Multivariate Experiment

You need the original page to test, identify all the sections with alternative content and the conversion page (goal!).

The sections can be selected using css rules or xpath, use the easiest way for you. You must also identify the section with a name.

In the yaml:

original: http://localhost/wadus/index
    - name: Heading
      selector: "#wadus h2"
    - name: Content
      selector: "#wadus #content"
goal: http://localhost/wadus/prize

You can configure as many sections as you want.


  • Deeper testing
  • Refactoring
  • Clean the way to include the js
  • Find a less agressive way to insert all the content.

Feedback and bugs

Feel free to contact with me through mamuso[at]