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
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Deep Space Network (abreviated)
tonyrice
0
220
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Optimizing for Happiness
mojombo
378
71k
Believing is Seeing
oripsolob
1
160
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Building Applications with DynamoDB
mza
96
7.1k
Test your architecture with Archunit
thirion
1
2.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
960
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ͬͨΓ