Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コネヒトマルシェ20221209.pdf
Search
otukutun
December 09, 2022
Technology
0
770
コネヒトマルシェ20221209.pdf
otukutun
December 09, 2022
Tweet
Share
More Decks by otukutun
See All by otukutun
年月日の入力どうしよう
otukutun
2
9.1k
Other Decks in Technology
See All in Technology
組織全員で向き合うAI Readyなデータ利活用
gappy50
1
560
AI時代、“平均値”ではいられない
uhyo
8
2.6k
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
610
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
880
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
250
re:Inventに行くまでにやっておきたいこと
nagisa53
0
230
20251027_findyさん_音声エージェントLT
almondo_event
2
440
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
1
360
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
850
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
170
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
200
Azure Well-Architected Framework入門
tomokusaba
1
130
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Faster Mobile Websites
deanohume
310
31k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
640
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Optimizing for Happiness
mojombo
379
70k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
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テストができた - パターン実装に集中できた - 実装を伴わずに勝利パターンにほぼ寄せられるため効果を最大化で きる