Upgrade to Pro — share decks privately, control downloads, hide ads and more …

日経電子版でApp内課金を導入した話 / Nikkei uses In-App Purchase

日経電子版でApp内課金を導入した話 / Nikkei uses In-App Purchase

Avatar for Taishi Ikai

Taishi Ikai

April 10, 2019
Tweet

More Decks by Taishi Ikai

Other Decks in Technology

Transcript

  1. !2 About me ழࣂ େࢤʢ͍͔͍ ͍ͨ͠ʣ ೔ຊܦࡁ৽ฉࣾॴଐͷΤϯδχΞ
 OKRϦςϯγϣϯ୲౰ ͍ͭͬͯ͘Δ΋ͷ
 ɹiPhone

    ͷ೔ܦిࢠ൛ΞϓϦ
 ɹiPhone / iPad ͷࢴ໘ϏϡʔΞʔΞϓϦ
 ɹΞϓϦͷόοΫΤϯυܥ (w/αʔόʔϨε)
  2. !12 ࠷ۙͷχϡʔε Netflix tests a bypass of iTunes billing in

    33 markets ― Tech Crunch 2018/8/21 https://techcrunch.com/2018/08/21/netflix-itunes-2/ Apple and Google Face Growing Revolt Over App Store ‘Tax’ ― Tech Crunch 2018/8/22 https://www.bloomberg.com/news/articles/2018-08-22/apple-and-google-face-growing- revolt-over-app-store-tax Here's proof that a big source of Apple's App Store growth tanked, probably thanks to Netflixɹ ― Business Insider 2019/4/6 https://www.businessinsider.com/morgan-stanley-proof-netflix-tanked-source-apple- app-store-growth-2019-4
  3. !14 Google Play Λࢼݧಋೖ (Android ൛) KPI ͸ CVR 


    ɹCVR: ͓ࢼ͠ظؒऴྃޙɺ՝ۚ͢ΔϢʔβʔͷׂ߹
 ɹ͜ΕΛୡ੒Ͱ͖Ε͹ɺख਺ྉ෼Λ૬ࡴͰ͖Δ
  4. !16 Google Play Λࢼݧಋೖ (Android ൛) KPI ͸ CVR 


    ɹCVR: ͓ࢼ͠ظؒऴྃޙɺ՝ۚ͢ΔϢʔβʔͷׂ߹
 ɹ͜ΕΛୡ੒Ͱ͖Ε͹ɺख਺ྉ෼Λ૬ࡴͰ͖Δ → ੒ޭ → App Store Ͱ΋࣮ࢪ΁
  5. !20 App ಺՝ۚ΁ͷҹ৅ (։ൃऀ) ೔ܦిࢠ൛Ϣʔβʔ͸ iOS Ϣʔβʔ͕ଟ͍ ࢢ৔ن໛΋ App Store

    ͷ΄͏͕େ͖͍ ܖ໿͠΍͍͚͢Ͳɺղ໿͠΍͍͢ɻ
 ࣮ͷೖΓ͕Ͳͷఔ౓ʹͳΔ͔ ʢϢʔβʔ֫ಘʹ௚઀తʹߩݙͰ͖ͦ͏ʣ
  6. !23 App ಺՝ۚ (App Store) Ͱͷ௥ՃͷରԠ αʔόʔଆͷରԠ
 ɹ͢Ͱʹ͋ΔೝՄͷ࢓૊Έʹ௥Ճ͢Δܗ
 ɹߪಡΛ։࢝ͨ͠ /

    Ωϟϯηϧͨ͠ͷಉظ ͳͲ iOS ൛ͷ೔ܦిࢠ൛ΞϓϦͷઃܭɺ࣮૷ʢ͜ͷޙ࿩͠·͢ʣ
  7. !24 App ಺՝ۚͷछผ ফ໣ܕ Ұ౓࢖͏ͱͳ͘ͳΔ΋ͷɻίΠϯͱ͔ɺΞΠςϜͳͲ ඇফ໣ܕ ޿ࠂ࡟আ / ػೳ௥Ճ ͳͲ

    ࣗಈߋ৽
 αϒεΫϦϓγϣϯ ఆظతʹߋ৽͞ΕΔ΋ͷɻSaaS, ৽ฉͳͲ ඇߋ৽
 αϒεΫϦϓγϣϯ ظؒݶఆͷαʔϏεɺίϯςϯπ
  8. !25 ࣗಈߋ৽αϒεΫϦϓγϣϯΛ࢖͏ App χϡʔε
 ɹThe New York Times, WSJ, The

    Times, The Guardian, NewsPicks... ͦͷଞ
 ɹNetflix, ΫοΫύου, AbemaTV, ৯΂ϩά, MoneyTree...
  9. !26 UXͷݕ౼ Designing a Great In-App Purchase Experience (WWDC 2014)ɺ


    ଞࣾ iOS ΞϓϦɺઌൃͷ೔ܦిࢠ൛ Android ൛Λࢀߟʹ ՝ۚ·Ͱͷλοϓ਺͸ۃྗগͳ͘ ޡղ͢ΔΑ͏ͳදهΛආ͚ͯ෼͔Γ΍͘͢
 ɹҰ؏ੑͷ͋Δදݱ
 ɹղ໿ಋઢ΋ϝχϡʔͷઙ͍Ґஔʹ ϓϥΠόγʔϙϦγʔɺར༻ن໿ͳͲΛ໨ʹ৮ΕΔҐஔʹ
 ɹϦδΣΫτ͞Εͳ͍ͨΊͷඞཁ৚݅
  10. !27

  11. !29 ࣮૷͢Δ: ͬ͘͟Γͱ͋͛Δͱ ߪಡ͢Δ
 ɹطଘͷೝূػߏʹՃ͑ͯɺϨγʔτͰͷೝূΛ௥Ճ ೔ܦ ID ʹొ࿥͢Δ
 ɹΞϓϦͷத͔Β೔ܦ ID

    ΛऔಘͰ͖ΔΑ͏ʹ ೔ܦ ID ΞΧ΢ϯτΛඥ͚ͮΔ
 ɹ͢Ͱʹ೔ܦ ID Λ͍࣋ͬͯΔΞΧ΢ϯτͱϨγʔτΛඥ͚ͮ ෮ݩ͢Δʢߪಡͱಉ͡ηοτʣ
  12. !34

  13. !35 ߪಡը໘͸ WebView Ͱࠩ͠ସ͑Մೳʹ ΞϓϦ಺ʹ HTML / CSS Λอ࣋ͯ͠දࣔ
 ɹGRMustache

    Λར༻ WebϖʔδͬΆ͕͞࿐ఄ͠ͳ͍Α͏ʹ޻෉͢Δ Remote Config Ͱ URL Λࢦఆͯ͠ɺ֎෦ URL Λදࣔ͢Δ AB ςετ΋ߦ͑ΔΑ͏ʹ
 (App Store ΨΠυϥΠϯΛ९कͯ͠΋Β͏)
  14. !36

  15. !37 html { touch-action: manipulation; -webkit-touch-callout: none; } body {

    padding-top: constant(safe-area-inset-top); padding-top: env(safe-area-inset-top); padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); } .subscription { position: -webkit-sticky; bottom: 0; }
  16. !39

  17. !40 ແྉମݧΛ։࢝ extension SubscriptionViewController: WKNavigationDelegate { func webView(_ webView: WKWebView,

    decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { let request = navigationAction.request guard let requestUrl = request.url, navigationAction.navigationType == .linkActivated else { return decisionHandler(.allow) } switch (requestUrl.scheme, requestUrl.host) { case ("local", "subscribe"): self.viewModel.subscribeButtonDidTap.onNext(()) return decisionHandler(.cancel) <略> default: return decisionHandler(.allow) } } }
  18. !41

  19. !43 ϩάΠϯ ໾ׂ
 ɹ೔ܦ ID / PW ͰͷೝূʢϩάΠϯʣ
 ɹϩάΞ΢τ
 ɹϨγʔτͰͷೝূ


    ɹϨγʔτͰߪಡঢ়ଶ → ೔ܦIDΞΧ΢ϯτඥ͚ͮ
 ɹ೔ܦIDϩάΠϯঢ়ଶ → Ϩγʔτඥ͚ͮ NEW NEW NEW Ϟδϡʔϧ
  20. !45

  21. !46

  22. !47