読者です 読者をやめる 読者になる 読者になる

しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

splitを使ってRailsで簡単ABテスト

splitというA/Bテストが簡単にできるGemを試してみました。

github.com

初期設定

このGemではredisを使うのであらかじめインストールしておきます。

brew install redis
redis-server /usr/local/etc/redis.conf

Bundlerでsplitをインストールします。

gem 'split'

Railsアプリを作ってScaffoldを生成します。

rails new test_app
cd test_app
rails g scaffold user
rake db:migrate

ユーザーの作成をテストしてみる

実際にA/Bテストを試してみます。
views/users/index.html.erbのユーザー作成リンクをテストしてみます。

<%= link_to 'New User', new_user_path %>

このように2種類のテキストを出し分けできるようにします。

<% ab_test(:create_button, "New User", "Create User") do |button_title| %>
  <%= link_to button_title, new_user_path %>
<% end %>

次にusers_controllerのnewにfinishedメソッドを挿入します。
finishedはA/Bテストのコンバージョンを表すもので、このメソッドが呼ばれたら1コンバージョンをカウントします。

def new
  finished(:create_button)
  @user = User.new
end

実際にテストを動かす

実際に複数のブラウザで見るとこのように出し分けできている事が分かります。

f:id:llcc:20160325225751p:plain

"New User"の方で/users/newに遷移します。

テスト結果を確認する

splitにはdashboardも付いているのでそれを使って確認します。
まずはGemfileに以下のようなオプションを追加します。

gem 'split', require: 'split/dashboard'

config/routes.rbに以下の1行を追加します。

mount Split::Dashboard, at: 'split'

サーバーを再起動して/splitにアクセスすると管理画面を見る事ができます。
New Userのcompleteが1になっています、先ほどNew Userリンクを押下したのが反映されていますね。

f:id:llcc:20160325230313p:plain

その他

今回は試さなかったのですがGoogleAnalyticsと連携できるGemもあるようです。

github.com