Slide 1

Slide 1 text

Google Optimizeのリダイレクトテストはいいぞ コネヒト株式会社 @otukutun

Slide 2

Slide 2 text

自己紹介 - おつくつん(@otukutun) - サーバーサイドエンジニア - Ruby on RailsとiOSの世界で育ちました - システムデザインを考えるのがすき「データ指向アプリケーショ ンデザイン」は途中で止まってます - クラフトビールが好きで、BeerHuntというiOSアプリをひっそり運営

Slide 3

Slide 3 text

今日お伝えしたいこと - サーバーサイドの振る舞いを伴うABテストをちょっと楽にしている お話

Slide 4

Slide 4 text

Google Optimizeとは - Google Analyticsと連携が可能なABテスティングツール - Google Analyticsで設定したコンバージョンを使える - 統計の詳細な知識がなくても運用可能 - ビジュアルエディタでパターン設定できる - さまざまな方法(エクスペリエンス)でテストできる(後で掘り下 げます)

Slide 5

Slide 5 text

検証結果がわかりやすい Google Analyticsのコンバージョン 勝利パターン

Slide 6

Slide 6 text

簡単にパターン設定できる ビジュアルエディタでパターン編集

Slide 7

Slide 7 text

エクスペリエンス① - A/B テスト - 同じウェブページの複数のパターンをテスト - パターン振り分けはGoogle Optimizeが行うため実装はなし Google Optimizeヘルプページより引用

Slide 8

Slide 8 text

エクスペリエンス② - リダイレクト テスト - 別々のウェブページの比較テストができます - パターン振り分けはGoogle Optimizeが行うため実装はなし Google Optimizeヘルプページより引用

Slide 9

Slide 9 text

エクスペリエンス③ - サーバーサイド テスト - サーバー側の振る舞いなどを比較テスト - パターン振り分けは手動、実装が必要 - システムで独自のパターンを作成してテスト - コンテンツの配信 - テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 Google Optimize開発者ガイド より引用

Slide 10

Slide 10 text

エクスペリエンス③ - サーバーサイド テスト - 配信するパターンは手動、実行の工数はある程度かかる - システムで独自のパターンを作成してテスト - コンテンツの配信 - テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 パターンの割り当てなどのパターン以外の実装も必要

Slide 11

Slide 11 text

ちょっと楽にサーバー側の変更をABテストをしたい - サーバーサイド テストは使わずにリダイレクトテストをつかう - パターン振り分けはGoogle Optimizeに任せられる - クエリパラメーターでパターン毎の制御する

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

サンプルコード

Slide 14

Slide 14 text

サンプルコード クエリパラメーターをみてSessionで保持するだけのシンプルな実装

Slide 15

Slide 15 text

そうすると - 振り分けロジックに関与せず、パターン毎の実装に集中できる - 勝利パターンが確定したあとにGoogle Optimize経由で勝利パターン に寄せられる

Slide 16

Slide 16 text

エクスペリエンス③ - サーバーサイド テスト - 配信するパターンは手動、実行の工数はある程度かかる - システムで独自のパターンを作成してテスト - コンテンツの配信 - テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 ちょっと楽になった

Slide 17

Slide 17 text

まとめ - リダイレクトテストの仕組みを使うことでサーバー側の振る舞いの ABテストができた - パターン実装に集中できた - 実装を伴わずに勝利パターンにほぼ寄せられるため効果を最大化で きる