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

サブスクリプションサービスにおけるIn-App Purchase再考 / Rethink In-App Purchase on subscription services

Masato Ohba
September 01, 2018

サブスクリプションサービスにおけるIn-App Purchase再考 / Rethink In-App Purchase on subscription services

iOSDC2018「サブスクリプションサービスにおけるIn-App Purchase再考」

リアルタイムでの反応はこちら https://togetter.com/li/1262366

Masato Ohba

September 01, 2018
Tweet

More Decks by Masato Ohba

Other Decks in Technology

Transcript

  1. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    サブスクリプションサービスにおける
    In-App Purchase再考
    @ohbarye
    iOSDC Japan 2018

    View Slide

  2. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    言いたいこと
    WAIT
    In-App Purchaseがベストな選択肢か、もう一度考えてみましょう

    View Slide

  3. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    用語の定義
    ➔ In-App Purchase(アプリ内課金):デバイスやコンピュータ上のアプリの中
    で追加のコンテンツや定期購読コンテンツを購入できるしくみ
    ➔ 本セッションでは
    ◆ In-App PurchaseをIAPと呼称します
    ◆ iOSに限定します(Amazon, Android, Unity IAPなどは除く)

    View Slide

  4. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    IAPを知っている
    Webサービスにおける
    一般的な決済を知っている
    想定する聴衆
    ココ以外

    View Slide

  5. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    Agenda | 01
    02
    03
    04
    自己紹介、どういう立場から語るのか
    Webサービス/IAPの決済基礎
    IAPと他決済手段の比較
    結論

    View Slide

  6. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    お話しないこと
    ➔ IAPの実装方法の詳細
    ◆ コードは全く出てきません
    ➔ 自動更新購読 (Auto-Renewable) 型以外のIAP
    ◆ 消耗型、非消耗型、非更新購読
    ◆ サブスクリプションサービスの実現とはあまり関係ないため

    View Slide

  7. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    自己紹介、どういう立場から語るのか
    01

    View Slide

  8. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Engineering Manager in
    ➔ 決済開発・運用を3年弱
    @ohbarye

    View Slide

  9. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    #1 on 2018-09-27
    https://connpass.com/event/97627/

    View Slide

  10. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考

    View Slide

  11. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 主に中高生向けの動画視聴サブスクリプションサービス
    ➔ 月額1,058円(税込)
    ◆ クレカ・コンビニ・キャリア
    ➔ または月額1,200円(税込)
    ◆ IAP
    スタディサプリ
    この辺+αを
    運用しています

    View Slide

  12. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    IAPを知っている
    Webサービスにおける
    一般的な決済を知っている
    真ん中から語ります

    View Slide

  13. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    Webサービス/IAPの決済基礎
    02

    View Slide

  14. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Webサービスの決済基礎
    ◆ 登場人物の整理
    ◆ 決済ゲートウェイとは
    ➔ IAPの場合

    View Slide

  15. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Webサービスの決済基礎
    ◆ 登場人物の整理
    ◆ 決済ゲートウェイとは
    ➔ IAPの場合

    View Slide

  16. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    立替払契約
    参考 http://blog.kyash.co/entry/2018/05/14/102255
    加盟店
    登場人物 簡略図(クレカ決済の一例)
    決済ゲートウェイ
    カード会社
    イシュア・
    アクワイアラ
    売買契約
    高校生・保護者
    SBPS (ソフトバンク
    ペイメントサービス)
    スタディサプリ
    三井住友カード

    View Slide

  17. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    加盟店
    登場人物 簡略図(キャリア決済の一例)
    決済ゲートウェイ
    キャリア各社
    売買契約
    高校生・保護者
    SBPS (ソフトバンク
    ペイメントサービス)
    ソフトバンク
    スタディサプリ
    立替払契約

    View Slide

  18. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    加盟店
    登場人物 簡略図(コンビニ決済の一例)
    決済ゲートウェイ
    コンビニ各社
    売買契約
    高校生・保護者
    SBPS (ソフトバンク
    ペイメントサービス)
    セブンイレブン
    スタディサプリ
    支払

    View Slide

  19. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    決済ゲートウェイ?

    View Slide

  20. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Webサービスの決済基礎
    ◆ 登場人物の整理
    ◆ 決済ゲートウェイとは
    ➔ IAPの場合

    View Slide

  21. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    決済ゲートウェイとは
    ➔ 多種の決済を一括の契約とシステムで導入できるサービス
    ➔ カード会社・コンビニ各社の締日や入金タイミングの差分を吸収
    ◆ 経理上も嬉しい
    ➔ デザインパターンでいうFacade pattern SBPS
    GMOペイメント
    ベリトランス
    MF KESSAI etc.

    View Slide

  22. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Webサービスの決済基礎
    ◆ 登場人物の整理
    ◆ 決済ゲートウェイとは
    ➔ IAPの場合

    View Slide

  23. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    加盟店
    IAPの場合
    Apple
    売買契約
    高校生・保護者
    スタディサプリ
    カード会社
    キャリア各社
    Apple ID
    コンビニ各社

    View Slide

  24. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    Appleが
    決済ゲートウェイにあたる
    つまり…

    View Slide

  25. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    IAPを再考するには
    決済ゲートウェイとして
    比較してみるのも一案

    View Slide

  26. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    IAPと他決済手段の比較
    03

    View Slide

  27. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 開発〜テスト
    ➔ 運用
    ◆ 障害対応、カスタマーサポート、加盟店サポート
    ➔ ビジネス
    ◆ 手数料、マルチプラットフォーム、撤退
    以下の3つの観点で比較

    View Slide

  28. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 開発〜テスト
    ➔ 運用
    ◆ 障害対応、カスタマーサポート、加盟店サポート
    ➔ ビジネス
    ◆ 手数料、マルチプラットフォーム、撤退

    View Slide

  29. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ コードレベルの実装コストはややIAPが高い
    ◆ IAPの場合iOSがわかるエンジニアが必須
    ◆ クライアントサイドUIとサーバサイド、定期実行ジョブの3つの実装が必
    要になるのは同じ
    ➔ トランザクション管理の問題が一番やっかい
    ◆ 特にIAPは通信のシーケンスが複雑
    開発の比較

    View Slide

  30. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 決済の実装ではステージング環境でのテスト容易性が大事
    ➔ AppStoreのsandbox (通称 ”精神と時の部屋”) には幾つか問題点がある
    ◆ 不安定、App Storeに接続できず失敗することがある
    ◆ App Store側での購読状態をこちらでコントロールできない
    ➔ リリースクオリティを満たせるか不安になることがしばしばある…
    テストの比較(IAPの問題)

    View Slide

  31. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 任意のタイミングで任意のレスポンスを返せる仕組みがある
    ◆ ソフトバンクペイメントサービスではGUIでレスポンスを操作可能
    ◆ Stripeはmock serverの実装を公開しており、自前で立てられる
    ➔ テストが容易、想定ケースを網羅することで安心してリリースできる
    テストの比較(他の決済ゲートウェイ)

    View Slide

  32. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 開発〜テスト
    ➔ 運用
    ◆ 障害対応、カスタマーサポート、加盟店サポート
    ➔ ビジネス
    ◆ 手数料、マルチプラットフォーム、撤退

    View Slide

  33. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ どんなに堅牢に作っても障害は絶対に起きる
    ➔ 決済ゲートウェイに求めるもの
    障害対応の観点

    View Slide

  34. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 加盟店側サーバがDown
    ◆ 決済ゲートウェイへ支払い確定を送ったがこちらのサーバが死んでいる
    場合「お金を払っているのに閲覧できない」という問題に
    ➔ 決済ゲートウェイ側サーバがDown
    ◆ 例外をこちらでハンドル可能なのでマシ
    ◆ どのタイミングでダウンしたかによってデータの一貫性を保つのが困難
    なこともある
    障害の例

    View Slide

  35. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    こうした問題に対して
    ➔ SBPS (ソフトバンクペイメントサービス)
    ◆ 決済ゲートウェイ側の障害発生時間通知がある
    ◆ どちらかが正常に処理を完了できなかった場合の通知がある
    ◆ => 障害に付随する問題を検知できる
    ➔ App Store
    ◆ 特になし (知ってたら教えてください)

    View Slide

  36. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ サブスクリプションサービスでは決済に関する問い合わせは必ず来る
    ◆ 「払ったのに使えない」
    ◆ 「退会手続きをしたい」「返金してほしい」
    カスタマーサポートの観点

    View Slide

  37. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ SBPS (ソフトバンクペイメントサービス)
    ◆ 決済ゲートウェイ側の管理画面と呼ばれるWebサイトで決済履歴を照
    会できる
    ➔ App Store
    ◆ iTunes Connect からは特定のユーザーの情報を閲覧できない
    「払ったのに使えない」

    View Slide

  38. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ SBPS (ソフトバンクペイメントサービス)
    ◆ 一部決済手段を除いて可能
    ➔ IAPの自動更新では
    ◆ 加盟店側で強制的に解約することや返金することはできない
    ◆ 期間内の返金はユーザーからAppleへ問い合わせしてもらう
    「退会手続きをしたい」「返金してほしい」

    View Slide

  39. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    加盟店サポートの観点
    ➔ SBPS (ソフトバンクペイメントサービス)
    ◆ 加盟店サポートヘルプデスクがある
    ◆ 加盟店ごとの個別対応にかなり柔軟
    ◆ 不整合を検知した時は異常データの修正までやってくれる
    ➔ App Store
    ◆ 問い合わせることはできるが加盟店個別の対応は基本的に無い

    View Slide

  40. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 開発〜テスト
    ➔ 運用
    ◆ 障害対応、カスタマーサポート、加盟店サポート
    ➔ ビジネス
    ◆ 手数料、マルチプラットフォーム、撤退

    View Slide

  41. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    30%

    View Slide

  42. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    3~4%

    View Slide

  43. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 30%: 自動更新型IAPの手数料
    ◆ 2年目から15%(※ユーザー単位)
    ➔ 3~4%: 日本の主流な決済の手数料
    ◆ (『銀行が「LINEペイ」に到底勝てない根本理由』より)
    ➔ 販売価格が同じだと純粋に利益率に響く
    ◆ IAPによる購入だけ単価を上げることもできるが…
    ビジネス観点の比較(手数料)

    View Slide

  44. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    混乱

    View Slide

  45. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    マルチプラットフォーム

    View Slide

  46. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    iOSだけでなくAndroidや
    Webでサービス提供する
    予定ありますか

    View Slide

  47. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ IAPはiOSにしか適用できない
    ◆ ビジネスが成長してマルチプラットフォーム対応する場合、大きな足か

    ➔ 初手IAPは考えもの
    ◆ スタディサプリもApple以外の決済ゲートウェイを介した決済手段を実
    装し、後からIAPを追加した
    YESなら以下に留意

    View Slide

  48. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    iOSから撤退して
    別プラットフォームに移る
    可能性はありますか

    View Slide

  49. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ IAPに限らずサブスクリプションモデルの決済をやめるのは難しい
    ◆ 新規申し込みを止めることはできる
    ◆ 既存ユーザーが使い続ける限りコードやチーム体制は残り続ける
    ➔ マルチプラットフォーム対応や手数料差を考えて他の決済手段に移ろうにも
    運用コストのためになかなか離れられない…という事態を招く可能性
    YESなら以下に留意

    View Slide

  50. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    そろそろIAPの
    良いところが聞きたい

    View Slide

  51. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ iOSプラットフォームとインテグレートされたスムーズな決済の流れ
    ◆ クレカ情報などを入れることなく、ログイン済のAppleアカウントに紐づく
    情報で決済
    ◆ 登録後に別サイトに飛んで決済するより遥かに良いユーザー体験
    ➔ クレカを持たない高校生がメインターゲットとなるスタディサプリではユーザー
    がプリペイドで使うケースも多くて人気
    IAPの優位性

    View Slide

  52. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ シームレスな決済体験は必ずしもIAPの独壇場ともいえないかも
    ➔ アプリ内では
    ◆ 後述の一部のケースでiOSアプリ内にStripeの決済導入が可能
    ➔ Webでもモバイルでの決済体験向上が進んでいる
    ◆ Payment Request API
    ◆ Apple Pay on Safari
    とはいえ

    View Slide

  53. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    結論
    04

    View Slide

  54. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    言いたいこと again
    WAIT
    In-App Purchaseがベストな選択肢か、もう一度考えてみましょう

    View Slide

  55. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    とはいえIAPでないと
    審査通らないのでは…?

    View Slide

  56. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ガイドラインを読む
    > 3.1.5(a)アプリケーションの外部で使用する商品やサービス: ユーザーが
    アプリケーションの外部で使用する商品やサービスをアプリケーションで購入
    できるようにする場合、そうした商品の支払いにはApp内課金以外(Apple
    Payや クレジットカードなど)の方法を使用する必要があります。
    https://developer.apple.com/jp/app-store/review/guidelines/#in-ap
    p-purchase

    View Slide

  57. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ アプリ外部で使用する商品(実物、チューターサービス)を販売する場合はむ
    しろIAPは使えない
    ◆ 参考: BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか?
    https://inside.pixiv.blog/danbo-tanak/4749
    ➔ コーチによる学習サポートを提供するスタディサプリ合格特訓コースではクレ
    カ決済で申し込める
    ※ 審査リジェクトリスクは常にあります。選択は自己責任でお願いします。
    IAP以外の決済手段提供ができるとき

    View Slide

  58. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 「iOSのサブスクリプションサービスならIAPだ」と安易に選択する前に再考し
    てほしい
    ◆ 決済ゲートウェイとしてのクオリティに着目すると良い
    ◆ その選択で御社のサーバサイドエンジニアが苦しむかもしれない
    ➔ 決済手段の導入はビジネス上の戦略も含めた重大な意思決定になる
    ◆ エンジニアとしてリスク洗い出し・代替手段検討をしっかりやる
    改めて結論

    View Slide

  59. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    Thank you!

    View Slide

  60. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ 決済業界
    ◆ http://finance-startups.jp/2017/04/smartpayment-competitionarea/
    ◆ http://blog.kyash.co/entry/2018/05/14/102255
    ➔ 手数料
    ◆ https://developer.apple.com/jp/app-store/subscriptions/
    ◆ https://toyokeizai.net/articles/-/233362
    ➔ 審査
    ◆ https://inside.pixiv.blog/danbo-tanak/4749
    参考資料

    View Slide

  61. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Apple関連
    ◆ https://developer.apple.com/jp/app-store/Receipt-Validation-Programming-Guide-JP.pdf
    ◆ https://developer.apple.com/jp/app-store/review/guidelines/#in-app-purchase
    ◆ https://developer.apple.com/jp/documentation/NetworkingInternet/Conceptual/StoreKitGuide/I
    ntroduction.html
    ◆ https://developer.apple.com/jp/documentation/General/ValidateAppStoreReceipt/Introduction.
    html
    ➔ Stripe関連
    ◆ https://github.com/stripe/stripe-mock
    ◆ https://stripe.com/docs/mobile/ios

    View Slide

  62. #iosdc サブスクリプションサービスにおける
    In-App Purchase再考
    ➔ Apple Pay on Safari
    ◆ https://www.ipodwave.com/iphone/howto/apple-pay-web-pay.html
    ➔ Payment Request API
    ◆ https://developers.google.com/web/updates/2016/07/payment-request

    View Slide