Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
How STYLIGHT went responsive
nonsquared
100
6.3k
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
The Invisible Side of Design
smashingmag
301
52k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Designing Experiences People Love
moore
143
24k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
330
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
We Have a Design System, Now What?
morganepeng
55
8.4k
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ͬͨΓ