Data-driven app development

Data-driven app development

Presented in shibuya.apk #11
https://shibuya-apk.connpass.com/event/42020/

24d86839fe9f3e3611d29c8a2cbfa6b8?s=128

Seiji Kasahara

November 22, 2016
Tweet

Transcript

  1. Data-driven app development Seiji Kasahara

  2. ελʔτΞοϓͰओʹσʔλλεΫΛѻͬͯ·͢ ▸ seijik42 ▸ ελʔτΞοϓͰΤϯδχΞʢδΣωϥϦετʣ ▸ ं಺Ͱ҆શʹศརʹεϚϗΛ࢖͏ΞϓϦΛ։ൃ͍ͯ͠·͢ ▸ σʔλΛ׆༻ͨ͠ػೳ։ൃɺ੒௕Λ๦͛ΔϘτϧωοΫ෼ੳɺ৽ػೳͷޮՌଌఆ 2

  3. ελʔτΞοϓͰͷσʔλ෼ੳϊ΢ϋ΢Λڞ༗͠·͢ ▸ ͳͥσʔλυϦϒϯͳҙࢥܾఆ͕େ੾͔ ▸ Ͳͷࢦඪʹूத͢Δ͔ ▸ ΋΍ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ ▸ ࢖༻͍ͯ͠ΔαʔϏεɾϑϨʔϜϫʔΫ ▸

    ߦ͍ͬͯΔ޻෉ ▸ ϫʔΫϑϩʔྫ 3
  4. ͳͥσʔλυϦϒϯͳҙࢥܾఆ͕େ੾ͳͷ͔ ▸ ඞཁͩͱ͓΋͔ͬͨΒػೳ௥Ճͯ͠Έͨ΋ͷͷɺػೳ͕ΞϓϦͷ੒௕ʹߩݙͯ͠ ͍Δ͔ෆ໌ɺ͔͠͠ϝϯςίετ͸૿େ ▸ => εϐʔυ໋͕Ͱ͋ΔελʔτΞοϓʹͱͬͯ͸க໋ই 4

  5. Ͳͷࢦඪʹूத͢Δ͔ ▸ ૿ՃϢʔβʔ਺ = ֫ಘϢʔβʔ਺ - ྲྀग़Ϣʔβʔ਺ ▸ ֫ಘϢʔβʔվળ =>

    ࣗવྲྀೖɺϚʔέςΟϯάʹΑΔྲྀೖ ▸ ྲྀग़Ϣʔβʔվળ => ϦςϯγϣϯϨʔτͷվળɺΞϯΠϯετʔϧ཈ࢭ 5
  6. Ͳͷࢦඪʹूத͢Δ͔ ▸ ૿ՃϢʔβʔ਺ = ֫ಘϢʔβʔ਺ - ྲྀग़Ϣʔβʔ਺ ▸ ֫ಘϢʔβʔվળ =>

    ࣗવྲྀೖɺϚʔέςΟϯάʹΑΔྲྀೖ ▸ ྲྀग़Ϣʔβʔվળ => ϦςϯγϣϯϨʔτͷվળɺΞϯΠϯετʔϧ཈ࢭ 6 ݀ͷۭ͍ͨόέπʹਫΛ஫͗ଓ͚ͯ΋ҙຯ͕ແ͍ͷͰɾɾ
  7. ςΩετ ϦςϯγϣϯͬͯͲͷʁʢܭࢉํ๏ͷҧ͍ʣ 7 Full retention Classic retention Rolling retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention

    ͳͲͳͲɾɾ
  8. ϦςϯγϣϯͬͯͲͷʁʢܭࢉํ๏ͷҧ͍ʣ 8 Classic retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention - γϯϓϧͰܭࢉ͠΍͍͢ - ଞͷαʔϏεͰ΋࢖ΘΕ͍ͯΔࣄ͕ଟ͍ͷͰൺֱ͠΍͍͢

  9. ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 9 Classic retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention 1 1Day? ͦΕͱ΋28Day?

  10. ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 10 Ҿ༻ɿhttp://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/

  11. ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 11 Ҿ༻ɿhttp://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/ - ࢒͍ͬͯΔϢʔβʔͷੑ࣭΋ɺߦಈύλʔϯ΋શ͘ҧ͏ - ୹ظͷվળ͔Β࢝Ίͯɺ࣍ୈʹ௕͍ͯ͘͘͠ͷ͕ྑ͍͔΋

  12. ΋΍ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ 12 - Ϣʔβʔͷ෼ྨํ๏ʢࣦഊྫʣ - ظؒ : ػೳϦϦʔεલʹΠϯετʔϧɺϦϦʔεޙʹΠϯετʔϧͨ͠ϢʔβʔͰൺֱ - =>

    ֎෦ཁҼ͕ଟ͘ɺ໌֬ͳҙࢥܾఆͰ͖ͳ͔ͬͨ - ྫɿ݄̓ʹ৽ػೳϦϦʔε - ̑ɾ݄̒ʹ֫ಘͨ͠Ϣʔβʔͱɺ̓ɾ݄̔ʹ֫ಘͨ͠Ϣʔβʔͷ ϦςϯγϣϯϨʔτΛൺֱͨ͠ͱ͜Ζɺ1%ͷվળ͕͋ͬͨʂ - ̓ɾ݄̔ʹυϥΠϒʹߦ͘ਓ͕ଟ͍͚ͩͰ͸ʁ - ݄̓͸Πϯυ͔Βͷྲྀೖ͕ଟ͔ͬͨɻࠃʹΑΔ܏޲ࠩͷӨڹ͸ʁ - etc.
  13. ΋΍ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ 13 - Ϣʔβʔͷ෼ྨํ๏ - ϥϯμϜ஋Ͱͷػೳग़͠෼͚ʢABςετʣ - ظؒɺσϞάϥͳͲ͋ΒΏΔόΠΞεͷӨڹΛഉআͰ͖Δ - ػೳࣗମΛABςετͰग़͠෼͚

    - ஫ҙ఺ - ࣄલʹग़͠෼͚ɾ෼ੳ͢Δ෦෼Λܭը͠ɺਖ਼࣮͘͠૷͠ͳ͚Ε͹͍͚ͳ͍ - εέδϡʔϧܭը΋େ੾ɻಉ͡KPIվળΛ໨ࢦ͢ػೳΛෳ਺ಉ࣌ʹςετ͠ ͯ͠·͏ͱɺൺֱՄೳͳϢʔβʔ਺͕ݮগͯ͠͠·͏
  14. ࢖༻͍ͯ͠ΔαʔϏε ▸ Mixpanel ▸ ϑΝωϧ෼ੳ͕ࣄલ෼ੳʹศར ▸ ૉૣ͘େ·͔ͳ਺ࣈΛ͔ͭΈ͍ͨͱ͖ʹ׆༻ ▸ BigQuery &

    Google Sheets & Google Sheet add-on(OWOX BI) ▸ ΑΓ۩ମతͳ৚݅Ͱ෼ੳՄೳ ▸ ෳ਺ͷσʔλιʔεΛ૊Έ߹Θͤͨ෼ੳʹར༻ ▸ Firebase Analytics ▸ ΞϯΠϯετʔϧΠϕϯτͷऔಘ͕Մೳ 14
  15. ಺੡ϑϨʔϜϫʔΫ ▸ ಺੡ABςετϑϨʔϜϫʔΫ 15 ॳճىಈ࣌ ϢʔβʔͷৼΓ෼͚࣌ʹαʔόʔʹΞΫηε͢Δඞཁ͕ͳ͘ ϑΝʔετεΫϦʔϯ͔ΒϥΠϑλΠϜΛ௨ͯ͠ςετՄೳ seed = hash(UUID)

    % 100; set_seed(seed); If (seed < rollout_rate)ɹ{ return FEATURE_ON; } else { return FEATURE_OFF; } ػೳग़͠෼͚ɾΠϕϯτૹ৴
  16. ߦ͍ͬͯΔ޻෉ ▸ ϓϩύςΟ໊ͷѹॖ ▸ ϩάͷΦʔόʔϨΠදࣔ 16

  17. 17 CLIENT ϓϩύςΟ໊ͷѹॖ SERVER event_name: 1 visit_from: 2 … 1:

    event_name 2: visit_from … event_name: ViewedProfileScreen visit_from: MainScreen … 1: ViewedProfileScreen 2: MainScreen … Πϕϯτσʔλ ѹॖσʔλ Event dataΛ෮ݩ
  18. 18 CLIENT ϓϩύςΟ໊ͷѹॖ SERVER event_name: 1 visit_from: 2 … 1:

    event_name 2: visit_from … event_name: ViewedProfileScreen visit_from: MainScreen … 1: ViewedProfileScreen 2: MainScreen … Πϕϯτσʔλ ѹॖσʔλ Event dataΛ෮ݩ ϐʔΫ࣌ͷτϥϑΟοΫΛ1/2 - 1/3 ఔ౓ʹ࡟ݮ
  19. 19 ϩάͷΦʔόʔϨΠදࣔ ࣾ಺ϝϯόʔͷΈදࣔ τϥοΫͰ͖͍ͯͳ͍Πϕϯτ͕ͳ͍͔ɺ ΤϯδχΞҎ֎Ͱ΋QA͕Մೳ

  20. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 20
  21. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 21 ྫɿॳ೔ͷϝοηʔδػೳͷར༻ස౓ͷ௿͍Ϣʔβʔͷ̏೔ޙϦςϯγϣϯ͕௿͍
  22. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 22 ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Ε͹վળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ఻͑ΔνϡʔτϦΞϧΛՃ͑Ε͹վળ͢ΔͩΖ͏ ྫɿॳ೔ͷϝοηʔδػೳͷར༻ස౓ͷ௿͍Ϣʔβʔͷ̏೔ޙϦςϯγϣϯ͕௿͍
  23. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 23 ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Ε͹վળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ఻͑ΔνϡʔτϦΞϧΛՃ͑Ε͹վળ͢ΔͩΖ͏ ྫɿॳ೔ͷϝοηʔδػೳͷར༻ස౓ͷ௿͍Ϣʔβʔͷ̏೔ޙϦςϯγϣϯ͕௿͍
  24. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 24 ABςετΛ࣮ࢪɺϦςϯγϣϯϨʔτΛൺֱɾݕఆ ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Ε͹վળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ఻͑ΔνϡʔτϦΞϧΛՃ͑Ε͹վળ͢ΔͩΖ͏ ྫɿॳ೔ͷϝοηʔδػೳͷར༻ස౓ͷ௿͍Ϣʔβʔͷ̏೔ޙϦςϯγϣϯ͕௿͍
  25. ϫʔΫϑϩʔྫ ▸ ໰୊ͷ೺Ѳ ▸ ͜͜Ͱ΋ࣄલͷσʔλ෼ੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ੾ ▸

    ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ࢓༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ΋໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ౴͕͑ಘΒΕΔͱ͸ݶΒͳ͍ 25 ର৅ػೳΛશϢʔβʔʹϦϦʔεɺ͋Δ͍͸࡟আ ABςετΛ࣮ࢪɺϦςϯγϣϯϨʔτΛൺֱɾݕఆ ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Ε͹վળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ఻͑ΔνϡʔτϦΞϧΛՃ͑Ε͹վળ͢ΔͩΖ͏ ྫɿॳ೔ͷϝοηʔδػೳͷར༻ස౓ͷ௿͍Ϣʔβʔͷ̏೔ޙϦςϯγϣϯ͕௿͍
  26. 26 ΤϯδχΞੵۃ࠾༻தʂ seijik@drivemode.com