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
430
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ABテストやってる?という問いかけと事例
cocoiti
March 30, 2017
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
So, you think you're a good person
axbom
PRO
2
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
A designer walks into a library…
pauljervisheath
211
24k
The Curse of the Amulet
leimatthew05
1
13k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Building the Perfect Custom Keyboard
takai
2
790
Are puppies a ranking factor?
jonoalderson
1
3.5k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Site-Speed That Sticks
csswizardry
13
1.2k
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ͬͨΓ