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
760
コネヒトマルシェ20221209.pdf
otukutun
December 09, 2022
Tweet
Share
More Decks by otukutun
See All by otukutun
年月日の入力どうしよう
otukutun
2
9k
Other Decks in Technology
See All in Technology
個人CLAUDE.md紹介と設定から学んだこと/introduce-my-claude-md
shibayu36
0
170
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
11
750
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
150
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
4
1.1k
絶対に失敗できないキャンペーンページの高速かつ安全な開発、WINTICKET × microCMS の開発事例
microcms
0
360
kubellが考える戦略と実行を繋ぐ活用ファーストのデータ分析基盤
kubell_hr
0
130
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
240
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
260
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
150
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
220
AIエージェントの活用に重要な「MCP (Model Context Protocol)」とは何か
masayamoriofficial
0
250
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
730
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Site-Speed That Sticks
csswizardry
10
800
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Gamification - CAS2011
davidbonilla
81
5.4k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Done Done
chrislema
185
16k
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テストができた - パターン実装に集中できた - 実装を伴わずに勝利パターンにほぼ寄せられるため効果を最大化で きる