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テストやってる?という問いかけと事例
Search
cocoiti
March 30, 2017
440
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ABテストやってる?という問いかけと事例
cocoiti
March 30, 2017
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
910
It's Worth the Effort
3n
188
29k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
A Soul's Torment
seathinner
7
3.5k
Skip the Path - Find Your Career Trail
mkilby
1
200
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
670
Google's AI Overviews - The New Search
badams
0
1.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
270
Rails Girls Zürich Keynote
gr2m
96
14k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
460
Transcript
AB ςετͬͯ·͢ʁ
ࣗݾհ • ৽Ҫ ܒଠ • גࣜձࣾϝϧΧϦͰಇ͍ͯ·͢ • ձࣾͰ͍ͪ͜͜ͱݺΕ͍ͯ·͢
ࠓͷ༰ • ͠·͢ • جຊతͳαʔόαΠυͷABςετͷ࣮ • iOS/Android ͱ࿈ܞ͢ΔAPI • ϝϧΧϦͰͷ࣮ྫ
• ۤ࿑ͱ͔ • ͠·ͤΜ • ҰൠతͳπʔϧͷհʢGoogle Optimize/FireBaseͱ͔ʣ
ࠓͷ༰ • ͍͢·ͤΜ • ιʔεΛެ։ͯ͠ͳ͍ͭͳΜͰࣗͰͭ͘ Δ͔ɺ͏ͪೖͬͯɺOSSԽ͍ͯͩ͘͠͞
ײँ ABςετͷجૅ෦͜ͷ ਓ͕ͭ͘Γ·ͨ͠ https://github.com/travail
travail ͷϞδϡʔϧͩͱଞʹ͜͜ ΒΜͬͯ·͢ • https://github.com/travail/php-Parallel- Prefork • Q4MͷWorkerॻ͘ͷʹ͔ͭͬͯ·͢
࣭
Έͳ͞ΜABςετͯ͠·͢ʁ
ɾɾɾɾɾ
ͳΔ΄Ͳ
ϝϧΧϦͰͷABཱͪҐஔ
“తʹ༨ܭͳͷ3ͭɻͦΕ ʮઆಘʯʮποίϛʯʮ৺ʯ ͩɻ ʢதུʣ ࠷ޙʹɺ৺ΛݮΒͨ͢Ίʹɺͱ ʹ͔͘ABςετΛߦܾͬͯΊΔ ͱ͍͏จԽΛਁಁ͍ͤͯ͞Δɻ” http://careerhack.en-japan.com/report/detail/755
͍ͭ͝Ζʁ • ʢݸਓͷײʣٯʹ͍͑ɺʮ৺ʯ͠ͳ͘ ͯΑ͍ͳΒΒͳͯ͘Α͍͠ɺ৺ͯ͠ͳΜ ͍ͯΒΕͳ͍࣌ظʹΒͳͯ͘Α͍ͱࢥ͏ • ABςετΛཧ͢ΔਓݱΕΔλΠϛϯά • ϝϧΧϦͩͱΤϯδχΞ͕20ਓఔͷ࣌ظʹ ։͍࢝ͯ͠Δ
ɹϝϧΧϦͷΞʔΩςΫνϟ
ΞʔΩςΫνϟ • ϝϧΧϦʹPascalͱݺΜͰ͍Δϩάੳج൫ ͕͋Δ
Pascal http://tech.mercari.com/entry/2015/09/09/163007
ΞʔΩςΫνϟ • ϝϧΧϦʹPascalͱݺΜͰ͍Δϩάੳج൫ ͕͋Δ • αʔό͔Βeventͱͯ͠ABςετΛૹ৴
ΫϥΠΞϯτ্ͷUIΛมߋ͢Δ • ྫ: λΠϜϥΠϯͷݟͨͷมߋͳͲ
ABςετ(UIมߋ) .FSDBSJ"1* 1BTDBM 4FSWFS 1) ab_test_name1 2) நબ݁Ռ
ABςετ(UIมߋ) .FSDBSJ"1* 1BTDBM 4FSWFS Send Event
APIͷϨεϙϯεมߋ͢Δ • ΫϥΠΞϯτमਖ਼ͤͣʹԠΛมߋ͢Δ • ྫ: ʢ͋͘·ͰྫͰ͢ʣݕࡧ݁Ռͷมߋදࣔ ൚༻ϝοηʔδͷมߋͳͲ
ABςετ(Ԡมߋ) .FSDBSJ"1* 1BTDBM 4FSWFS 1) API Requet 4) AB ςετʹج͍ͮͨԠ
2) நબɾநબʹج͍ͮͨϨεϙϯε࡞ 3) SendEvent
ΫϥΠΞϯτ͕ແؔͷͷ • batch ॲཧͳͲ • ΫϥΠΞϯτͷϢʔβΤʔδΣϯτͳͲऔಘ Ͱ͖ͳ͍߲ͱ͔͕ͳ͍Α͏ʹҙ
ABςετ(Ԡมߋ) .FSDBSJ"1* 1BTDBM 4FSWFS 1) நબ݁Ռʹͱ͍ͮͯɺॲཧΘ͚ 2) SendEvent
ABςετͷίʔυ
$tracker = new Tracker(); $experiment_name = 'awesome_red_button'; $experiment_result = $tracker->getExperimentResult($experiment_name,
$user_id, $uuid, ExperimentEvent::CLIENT_TYPE_IOS); $variant = $experiment_result->getVariant(); // Your A/B testing. if ($variant === 0) { // Control group } elseif ($variant === 1) { // Test group 1 } elseif ($variant === 2) { // Test group 2 } elseif ($variant === null) { // Something wrong } // Create Experiment event. $experiment_event = $experiment_result->createEvent(); // Log it. $tracker->sendEvent($experiment_event);
$experiment_name = 'awesome_red_button'; $experiment_result = $tracker- >getExperimentResult($experiment_name, $user_id,ɹ ExperimentEvent::CLIENT_TYPE_IOS);
$variant = $experiment_result->getVariant(); // Your A/B testing. if ($variant ===
0) { // Control group } elseif ($variant === 1) { // Test group 1 } elseif ($variant === 2) { // Test group 2 } elseif ($variant === null) { // Something wrong }
// Create Experiment event. $experiment_event = $experiment_result->createEvent(); // Log it.
$tracker->sendEvent($experiment_event);
ϩάͷ͠ํ
ABςετͷநબͷཁ݅ • 1. AB ςετநબ݁Ռ • 2. ͦͷABςετϢʔβͷதؒͷಈ͖ • 3.
ͦͷABςετ݁Ռʹࢸ͔ͬͨ
ABςετநબ
ABςετͷநબͷཁ݅ • 1ਓͷϢʔβͱɺ1ͭͷABςετͷ༰͕ͣΕ ͍͚ͯͳ͍ • ্ཱͪ͛ͨ͢ͼʹɺϢʔβମݧ͔ΘͬͨΒς ετʹͳΒͳ͍Ͱ͠ΐ • 1ਓͷϢʔβ͕ɺෳͷABςετͰશ෦ಉ͡ɺ variantͩͱɺͪΌΜͱͨ͠ςετʹͳΒͳ͍
$user_id = 123; $ab_test_name = ‘ab_test_name’; hexdec (substr(md5($user_id . $expeliment_name
. ‘salt’), 5)); // Ϣʔβ͝ͱʹݻఆ͔ͭABςετ͝ͱʹݻఆͷ͕Ͱ ΔͷͰ͋ͱྑ͠ͳʹͬͯ͘Ε͍
ઌఔͷίʔυ • user_id ͕ͳ͍ϢʔβʹະొϢʔβ • ΞϓϦΛΠϯετʔϧͨ࣌͠ʹ۠ผ͕ͭ͘Α ͏ͳΛੜͯ͠ɺͦΕΛར༻͢Δͱ͔
ABςετ͋Δ͋Δ
ίʔυ͕IFจͩΒ͚ʹ
ίʔυ͕IFจͩΒ͚ʹ • ےͰղܾ • class ઃܭͱ͔ • https://github.com/cookpad/chanko తͳΞϓ ϩʔνͱ͔
• ظؒΛܾΊͯɺίʔυΛཧͰ͖ΔΑ͏ʹͯ͠ ͓͘ʢاըͷਓͱ͔ͱѲ͓ͬͯ͘ʣ
ABςετʹͬͯͳ͍
ABςετ͍ͬͯ͏͔ػೳͷεΠονʹͬͯΔ • ݁ߏศར • ෛՙ͕৺ͳ߹ͳͲ͢͜ʔͣͭ͠ެ։ͨ͠ ͍߹ͱ͔ • ෆ۩߹ͰΫϥΠΞϯτ͕མͪͪΌ͏߹ͱ͔ ʹଈ࠲ʹαʔό͔ΒOffͬͨΓ