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
AB Tests in Mobile App
Search
kichikuchi
August 20, 2016
Technology
1
1.9k
AB Tests in Mobile App
iOSDC Japan 2016 発表資料
kichikuchi
August 20, 2016
Tweet
Share
More Decks by kichikuchi
See All by kichikuchi
swiftにおける遅延評価
kichikuchi
0
2.8k
tableViewとcoolectionviewのパフォーマンスチューニング
kichikuchi
1
570
GameplayKit, GKRandomSource, GKRandomDistribution
kichikuchi
1
270
Other Decks in Technology
See All in Technology
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
4.7k
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
3
830
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
740
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
200
みんなで育てるNewsPicksのSLO
troter
4
1k
EM初心者として半年間マネジャーをやってみて分かったこと
sansantech
PRO
0
190
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
400
Keynote - KCD Brazil - Platform Engineering on K8s (portuguese)
salaboy
0
110
Explainable Software Engineering in the Public Sector
avandeursen
0
270
IVRyの組織の形とSLO運用の現状
abnoumaru
0
180
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
1.5k
Engineering Managementのグローバルトレンド #emoasis / Engineering Management Global Trend
kyonmm
PRO
6
920
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
67
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
600
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Thoughts on Productivity
jonyablonski
69
4.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Navigating Team Friction
lara
183
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Why Our Code Smells
bkeepers
PRO
336
57k
The Cult of Friendly URLs
andyhume
78
6.3k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
BBQ
matthewcrist
88
9.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.4k
Transcript
kazunori kikuchi / GMO PEPABO inc. 2016.08.19 iOSDC AB Tests
in Mobile App
J04ΤϯδχΞ kazunori kikuchi @kichikuchi NJOOFࣄۀ෦ϓϩμΫτνʔϜ
ࠃ࠷େڃͷϋϯυϝΠυϚʔέοτ NJOOF
ࠃ࠷େڃͷϋϯυϝΠυϚʔέοτ NJOOF
ࠓ͢ίτ Ͳ͏ͬͯ"#ςετΛಋೖ͍ͯ͠Δ͔ "#ςετΛͬͯྑ͔ͬͨίτ "#ςετΛͬͯࠔͬͨίτ
Ͳ͏ͬͯ"#ςετΛಋೖͯ͠ ͍Δ͔
SkyLab + Google Analytics
SkyLab
SkyLab.splitTestWithName("iosdc", conditions: [ "ios" : 0.5 , "dc" : 0.5
]) { (condition) -> Void in if condition as! String == "ios" { self.sendGA(category: "iosdc", action: "ios", value: nil) } else { self.sendGA(category: "iosdc", action: "dc", value: nil) } } ͍ํ
SkyLab.splitTestWithName("iosdc", conditions: [ "ios" : 0.5 , "dc" : 0.5
]) { (condition) -> Void in if condition as! String == "ios" { self.sendGA(category: "iosdc", action: "ios", value: nil) } else { self.sendGA(category: "iosdc", action: "dc", value: nil) } } ςετͷ໊લ ͍ํ
SkyLab.splitTestWithName("iosdc", conditions: [ "ios" : 0.5 , "dc" : 0.5
]) { (condition) -> Void in if condition as! String == "ios" { self.sendGA(category: "iosdc", action: "ios", value: nil) } else { self.sendGA(category: "iosdc", action: "dc", value: nil) } } ذύλʔϯͱ֬ ͍ํ
SkyLab.splitTestWithName("iosdc", conditions: [ "ios" : 0.5 , "dc" : 0.5
]) { (condition) -> Void in if condition as! String == "ios" { self.sendGA(category: "iosdc", action: "ios", value: nil) } else { self.sendGA(category: "iosdc", action: "dc", value: nil) } } ذύλʔϯͱॲཧ ͍ํ
SkyLab.splitTestWithName("iosdc", conditions: [ "ios" : 0.5 , "dc" : 0.5
]) { (condition) -> Void in if condition as! String == "ios" { self.sendGA(category: "iosdc", action: "ios", value: nil) } else { self.sendGA(category: "iosdc", action: "dc", value: nil) } } ςετͷ໊લ ذύλʔϯ໊ ͍ํ
ಋೖͱܭଌɾݕূ w "#ςετͷಋೖ w 4LZ-BCΛར༻ w ςετͷೖΕସ͑ϦϦʔεຖ w ςετ໊ͱذύλʔϯQMJTUͰཧ w
"#ςετͷܭଌɾݕূ w (PPHMF"OBMZUJDTΛར༻ w ΧελϜηάϝϯτͰੳ
"#ςετΛͬͯྑ͔ͬͨίτ ☺
݁Ռ͕ࣈͰݟ͑Δ w ձһొϑϩʔͷมߋͰొ্͕ঢ☺ w Χʔτೖޙͷը໘ϑϩʔΛύλʔϯࢼ͠࠷ྑѱͰߪೖ ʹͷ։͖͕͋ͬͨ w ͱ͋ΔλΠϜϥΠϯͰചΓΕ࡞දࣔ͢ΔΑ͏ʹͨ͠ ͱ͜Ζ෮ؼ͕ݮগ
վળಋೖ͠ɺվѱӨڹൣғ Λ࠷খݶʹͱͲΊΒΕΔʂ
Կ͕վળʹͭͳ͕Δ͔͕Θ͔ͬͯ͘Δ w 6*ύʔπͷαΠζมߋ QY Өڹখ w ใઃܭͷมߋ ࡏݿΕදࣔඇදࣔ
Өڹத w ϑϩʔͷมߋ ը໘ը໘ Өڹେ
Ͳ͏͍ͬͨมߋ͕ΞϓϦΛΑ͘ ͢Δ͔ߟ͑ΔνʔϜશମͷྗ͕ 61
"#ςετΛͬͯࠔͬͨίτ
ςετͷઃܭ͕͍͠ w ͦͦͲͷࣈΛݟͨΒ͍͍ʁ w ͜ͷมߋߪೖʹӨڹ͕ग़ΔͣʂʂͱͳΓ͕ͪͩͬͨ w ಉ͡ࣈΛࢦඪͱ͢Δςετ͕ෳೖΔͱݕূύλʔϯ ͕Ұؾʹ૿͑Δ
ςετͷݕূ͕େม w ςετΛճ͠ଓ͚ΔͨΊʹϑϩʔͷཱ͕֬ඞཁ w ݕূʹઐ೦Ͱ͖Δਓͷ֬อ w ฐࣾͰΤϯδχΞ͕("৮ͬͯ·͢ʂ w ͨͩΤϯδχΞৗʹख͕ۭ͍ͯΔΘ͚Ͱͳ͍ɻɻɻ
࣮ίετίʔυͷՄಡੑ w 6*Λେ͖͘มߋ͢Δ߹͕ॏΊʹͳΔ͜ͱ w ςετऴྃ࣌ʹ֘ՕॴΛ֎͢࡞ۀ͋Δʂ w ࠓͷॴେ͖ͳࣦഊͳ͍͕ݹ͍ςετ͕͍ͬͯͨ͜ͱ ͕ w ςετͷͨΊͷذ͕૿͑ͯίʔυ͕ಡΈͮΒ͘ͳΔ
w Ұ࣌తͳίʔυͳͷͰଥڠ͕ͪ͠ ίϐϖରԠͳͲ
ϦϦʔεલݕূ͕େม w "#ςετ։࢝ॳΞϓϦআ࠶Πϯετʔϧ͠ͳ͍ ͱςετύλʔϯ͕มΘΒͳ͔ͬͨ w ϦϦʔεલʹϓϩϞʔγϣϯίʔυΛൃߦͯ͠ߦ͏ݕ ূͰ࠷େݸൃߦͨ͜͠ͱ͕͋Γ·͢ w ݱࡏ˓˓˓ίϚϯυతͳͷͰΞϓϦΛআͤͣʹς ετύλʔϯΛมߋͰ͖ΔΑ͏ʹͯ͠ղফʂ
w ಛఆͷςετέʔε ಛఆͷ04Ͱ͚ͩى͜Δόά͕͋ͬͨ
ࠔͬͨ͜ͱͷྔ͕ଟ͘ͳͬͯ͠ ·͍·͕ͨ͠ɻɻɻ
ಋೖͯ͠ྑ͔ͬͨ"#ςετʂʂ
ࣗͨͪͷߦͬͨػೳՃɾม ߋʹͲΕ͚ͩͷΠϯύΫτ͕͋ͬ ͔ͨΛΕΔ
͕ࣗͨͪ͜Ε͍͍ΞΠσΞͩʂ ͱࢥ͍ͬͯͨ͜ͱ͕࣮Ϣʔβʹ ͱͬͯෆརӹͩͬͨͱ͍͏ࣄ࣮ ΕΔ
͜ΕΒͷܦݧΛ௨ͯ͡Կ͕Ϣʔ βʹͱͬͯͷՁͳͷ͔Λߟ͑Δ ྗ্͕͢Δ
"#ςετΛ௨ͯ͡ϓϩμΫτͩ ͚Ͱͳ͘νʔϜͰ͖Δʂʂ
ͥͻΈͳ͞Μ͜ͷػձʹ"#ς ετͷಋೖΛߟ͑ͯΈ͍ͯͩ͘͞ʂ
͓͠·͍