GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Tutorial Tutorial
André Luis Leal Cardoso Junior edited this page
This tutorial covers getting started with split on a Rails 3.0 app. First lets create our rails app: $ gem install rails
$ rails new split-example
$ cd split-exampleWe'll also need redis (2.0 or greater) installed on for split to store its data. If you are on a mac, you can install redis using homebrew: $ brew install redis And then follow the instructions. If you are on ubuntu or debian you can install redis using apt-get: $ sudo apt-get install redis-server Otherwise you can compile it from source using the instructions on the redis.io website: http://redis.io/download Note: redis is not officially supported on windows Then we need to add split as a dependency, so we add the following to our gem 'split' If you are using Ruby 1.8.x then you will likely want to also use the SystemTimer gem if you want to make sure the Redis client will not hang. Put the following in your gemfile as well: gem 'SystemTimer' Then update your bundle with: $ bundle install Split is designed to work out of the box and requires zero configuration but there are a number of configuration options that can be overridden if you need something off the beaten track. Split ignores visitors that appear to be robots or spiders to avoid skewing any results, by default compares the useragent of the visit with this regular expression: /\b(Baidu|Gigabot|Googlebot|libwww-perl|lwp-trivial|msnbot|SiteUptime|Slurp|WordPress|ZIBB|ZyBorg)\b/i You can override this by putting the following code in Split.configure do |config| config.robot_regex = /my_custom_robot_regex/ end Split also has the ability to ignore visits from a range of ip addresses, you may wish to ignore yourself or people from your office from skewing the results so you can add the following code to Split.configure do |config| config.ignore_ip_addresses << '81.19.48.130' end Note: By default split will connect to a local redis server on port 6379. You may want to change the Redis host and port Split connects to, or set various other options at startup. Split has a Some different examples of changing the redis config: Split.redis = 'redis://localhost:6379' Split.redis = $redis For our rails app we have a Here's our development: localhost:6379 test: localhost:6379 staging: redis1.example.com:6379 fi: localhost:6379 production: redis1.example.com:6379 And our initializer ( rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..' rails_env = ENV['RAILS_ENV'] || 'development' split_config = YAML.load_file(rails_root + '/config/split.yml') Split.redis = 'redis://' + split_config[rails_env] If you're running multiple, separate instances of Split you may want to namespace the keyspaces so they do not overlap. This is not unlike the approach taken by many memcached clients. This feature is provided by the [redis-namespace][rs] library, which Split uses by default to separate the keys it manages from other keys in your Redis server. Simply use the Split.redis.namespace = "split:blog" To define an experiment you use the <h2><%= ab_test('form_title', 'Sign up now', 'Join Today') %></h2> This will set up a new experiment called form_title with two alternatives. The first alternative ('Sign up now') is the control, it should be the original title that was already on the page and you test new alternatives against that. Do not add any new alternatives as you won't be able to tell if your test improved on the original or not. The second alternative ('Join Today') will be tested against the first to see if it is an improvement. You can add as many alternatives as you like: <%= link_to ab_test('link_text', 'Signup', 'Join', 'Become a member', 'Signin', 'Login'), signup_path %> But remember that it will take longer to reach a good confidence level the more alternatives you provide. To measure how the alternative has impacted the conversion rate of your experiment you need to mark a visitor as reaching the conversion point. You do this with the ab_finished('link_text') Usually you would place this in your controller, for example after a user has been created during the signup process. Once a user has finished the conversion their split session is reset. Split comes with a Sinatra-based front end to get an overview of how your experiments are doing. You can mount this inside your app using Rack::URLMap in your require 'split/dashboard' run Rack::URLMap.new \ "/" => Your::App.new, "/split" => Split::Dashboard.new You may want to password protect that page, you can do so with Split::Dashboard.use Rack::Auth::Basic do |username, password| username == 'admin' && password == 'p4s5w0rd' end You can also mount the dashboards within the rails router. Change the Gemfile to the following: gem 'split', require: 'split/dashboard' (For ruby 1.8.*, :require => 'split/dashboard') Then in Rails::Application.routes do mount Split::Dashboard, at: 'split' (For ruby 1.8.*, :at => 'split') end |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |