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.8k
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.6k
tableViewとcoolectionviewのパフォーマンスチューニング
kichikuchi
1
540
GameplayKit, GKRandomSource, GKRandomDistribution
kichikuchi
1
250
Other Decks in Technology
See All in Technology
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
0
2.6k
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
NgRx Signal Store
rainerhahnekamp
0
150
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
220
Oracle Cloud Infrastructure:2024年4月度サービス・アップデート
oracle4engineer
PRO
1
190
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
API Gatewayと少し仲良くなってみた!
masuchoku
0
100
20240416_devopsdaystokyo
kzkmaeda
1
220
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
490
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
380
20分で完全に理解するGrafanaダッシュボード
hamadakoji
1
190
Featured
See All Featured
Designing for Performance
lara
601
67k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.5k
How to name files
jennybc
65
93k
Scaling GitHub
holman
457
140k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
How to Ace a Technical Interview
jacobian
272
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
78
42k
GitHub's CSS Performance
jonrohan
1025
450k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
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Ͱ͚ͩى͜Δόά͕͋ͬͨ
ࠔͬͨ͜ͱͷྔ͕ଟ͘ͳͬͯ͠ ·͍·͕ͨ͠ɻɻɻ
ಋೖͯ͠ྑ͔ͬͨ"#ςετʂʂ
ࣗͨͪͷߦͬͨػೳՃɾม ߋʹͲΕ͚ͩͷΠϯύΫτ͕͋ͬ ͔ͨΛΕΔ
͕ࣗͨͪ͜Ε͍͍ΞΠσΞͩʂ ͱࢥ͍ͬͯͨ͜ͱ͕࣮Ϣʔβʹ ͱͬͯෆརӹͩͬͨͱ͍͏ࣄ࣮ ΕΔ
͜ΕΒͷܦݧΛ௨ͯ͡Կ͕Ϣʔ βʹͱͬͯͷՁͳͷ͔Λߟ͑Δ ྗ্͕͢Δ
"#ςετΛ௨ͯ͡ϓϩμΫτͩ ͚Ͱͳ͘νʔϜͰ͖Δʂʂ
ͥͻΈͳ͞Μ͜ͷػձʹ"#ς ετͷಋೖΛߟ͑ͯΈ͍ͯͩ͘͞ʂ
͓͠·͍