Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コネヒトマルシェ20221209.pdf
Search
otukutun
December 09, 2022
Technology
0
780
コネヒトマルシェ20221209.pdf
otukutun
December 09, 2022
Tweet
Share
More Decks by otukutun
See All by otukutun
年月日の入力どうしよう
otukutun
2
9.2k
Other Decks in Technology
See All in Technology
学習データって増やせばいいんですか?
ftakahashi
2
280
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
440
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
610
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
640
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
140
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
1.8k
因果AIへの招待
sshimizu2006
0
930
直接メモリアクセス
koba789
0
290
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
680
チーリンについて
hirotomotaguchi
5
1.5k
文字列の並び順 / Unicode Collation
tmtms
1
320
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
1k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Designing Experiences People Love
moore
143
24k
What's in a price? How to price your products and services
michaelherold
246
12k
Embracing the Ebb and Flow
colly
88
4.9k
RailsConf 2023
tenderlove
30
1.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Facilitating Awesome Meetings
lara
57
6.7k
It's Worth the Effort
3n
187
29k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
Google Optimizeのリダイレクトテストはいいぞ コネヒト株式会社 @otukutun
自己紹介 - おつくつん(@otukutun) - サーバーサイドエンジニア - Ruby on RailsとiOSの世界で育ちました -
システムデザインを考えるのがすき「データ指向アプリケーショ ンデザイン」は途中で止まってます - クラフトビールが好きで、BeerHuntというiOSアプリをひっそり運営
今日お伝えしたいこと - サーバーサイドの振る舞いを伴うABテストをちょっと楽にしている お話
Google Optimizeとは - Google Analyticsと連携が可能なABテスティングツール - Google Analyticsで設定したコンバージョンを使える - 統計の詳細な知識がなくても運用可能
- ビジュアルエディタでパターン設定できる - さまざまな方法(エクスペリエンス)でテストできる(後で掘り下 げます)
検証結果がわかりやすい Google Analyticsのコンバージョン 勝利パターン
簡単にパターン設定できる ビジュアルエディタでパターン編集
エクスペリエンス① - A/B テスト - 同じウェブページの複数のパターンをテスト - パターン振り分けはGoogle Optimizeが行うため実装はなし Google
Optimizeヘルプページより引用
エクスペリエンス② - リダイレクト テスト - 別々のウェブページの比較テストができます - パターン振り分けはGoogle Optimizeが行うため実装はなし Google
Optimizeヘルプページより引用
エクスペリエンス③ - サーバーサイド テスト - サーバー側の振る舞いなどを比較テスト - パターン振り分けは手動、実装が必要 - システムで独自のパターンを作成してテスト
- コンテンツの配信 - テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 Google Optimize開発者ガイド より引用
エクスペリエンス③ - サーバーサイド テスト - 配信するパターンは手動、実行の工数はある程度かかる - システムで独自のパターンを作成してテスト - コンテンツの配信
- テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 パターンの割り当てなどのパターン以外の実装も必要
ちょっと楽にサーバー側の変更をABテストをしたい - サーバーサイド テストは使わずにリダイレクトテストをつかう - パターン振り分けはGoogle Optimizeに任せられる - クエリパラメーターでパターン毎の制御する
None
サンプルコード
サンプルコード クエリパラメーターをみてSessionで保持するだけのシンプルな実装
そうすると - 振り分けロジックに関与せず、パターン毎の実装に集中できる - 勝利パターンが確定したあとにGoogle Optimize経由で勝利パターン に寄せられる
エクスペリエンス③ - サーバーサイド テスト - 配信するパターンは手動、実行の工数はある程度かかる - システムで独自のパターンを作成してテスト - コンテンツの配信
- テスト対象の判定 - パターンの割り当て - ユーザーごとの配信パターンの固定 - 各パターンでユーザーが発生させたヒット(例: ページ ビュー ヒット)の Google アナリティクスへの送信 ちょっと楽になった
まとめ - リダイレクトテストの仕組みを使うことでサーバー側の振る舞いの ABテストができた - パターン実装に集中できた - 実装を伴わずに勝利パターンにほぼ寄せられるため効果を最大化で きる