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

0ed400174f90a4bcee05f3455597932f?s=47 Masato Ohba
September 01, 2018

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

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

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

0ed400174f90a4bcee05f3455597932f?s=128

Masato Ohba

September 01, 2018
Tweet

Transcript

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

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

  3. #iosdc サブスクリプションサービスにおける In-App Purchase再考 用語の定義 ➔ In-App Purchase(アプリ内課金):デバイスやコンピュータ上のアプリの中 で追加のコンテンツや定期購読コンテンツを購入できるしくみ ➔

    本セッションでは ◆ In-App PurchaseをIAPと呼称します ◆ iOSに限定します(Amazon, Android, Unity IAPなどは除く)
  4. #iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPを知っている Webサービスにおける 一般的な決済を知っている 想定する聴衆 ココ以外

  5. #iosdc サブスクリプションサービスにおける In-App Purchase再考 Agenda | 01 02 03 04

    自己紹介、どういう立場から語るのか Webサービス/IAPの決済基礎 IAPと他決済手段の比較 結論
  6. #iosdc サブスクリプションサービスにおける In-App Purchase再考 お話しないこと ➔ IAPの実装方法の詳細 ◆ コードは全く出てきません ➔

    自動更新購読 (Auto-Renewable) 型以外のIAP ◆ 消耗型、非消耗型、非更新購読 ◆ サブスクリプションサービスの実現とはあまり関係ないため
  7. #iosdc サブスクリプションサービスにおける In-App Purchase再考 自己紹介、どういう立場から語るのか 01

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

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

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

  11. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 主に中高生向けの動画視聴サブスクリプションサービス ➔ 月額1,058円(税込) ◆ クレカ・コンビニ・キャリア

    ➔ または月額1,200円(税込) ◆ IAP スタディサプリ この辺+αを 運用しています
  12. #iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPを知っている Webサービスにおける 一般的な決済を知っている 真ん中から語ります

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

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

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

    ➔ IAPの場合
  16. #iosdc サブスクリプションサービスにおける In-App Purchase再考 立替払契約 参考 http://blog.kyash.co/entry/2018/05/14/102255 加盟店 登場人物 簡略図(クレカ決済の一例)

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

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

    高校生・保護者 SBPS (ソフトバンク ペイメントサービス) セブンイレブン スタディサプリ 支払
  19. #iosdc サブスクリプションサービスにおける In-App Purchase再考 決済ゲートウェイ?

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

    ➔ IAPの場合
  21. #iosdc サブスクリプションサービスにおける In-App Purchase再考 決済ゲートウェイとは ➔ 多種の決済を一括の契約とシステムで導入できるサービス ➔ カード会社・コンビニ各社の締日や入金タイミングの差分を吸収 ◆

    経理上も嬉しい ➔ デザインパターンでいうFacade pattern SBPS GMOペイメント ベリトランス MF KESSAI etc.
  22. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Webサービスの決済基礎 ◆ 登場人物の整理 ◆ 決済ゲートウェイとは

    ➔ IAPの場合
  23. #iosdc サブスクリプションサービスにおける In-App Purchase再考 加盟店 IAPの場合 Apple 売買契約 高校生・保護者 スタディサプリ

    カード会社 キャリア各社 Apple ID コンビニ各社
  24. #iosdc サブスクリプションサービスにおける In-App Purchase再考 Appleが 決済ゲートウェイにあたる つまり…

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

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

  27. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート

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

    ➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
  29. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ コードレベルの実装コストはややIAPが高い ◆ IAPの場合iOSがわかるエンジニアが必須 ◆ クライアントサイドUIとサーバサイド、定期実行ジョブの3つの実装が必

    要になるのは同じ ➔ トランザクション管理の問題が一番やっかい ◆ 特にIAPは通信のシーケンスが複雑 開発の比較
  30. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 決済の実装ではステージング環境でのテスト容易性が大事 ➔ AppStoreのsandbox (通称 ”精神と時の部屋”)

    には幾つか問題点がある ◆ 不安定、App Storeに接続できず失敗することがある ◆ App Store側での購読状態をこちらでコントロールできない ➔ リリースクオリティを満たせるか不安になることがしばしばある… テストの比較(IAPの問題)
  31. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 任意のタイミングで任意のレスポンスを返せる仕組みがある ◆ ソフトバンクペイメントサービスではGUIでレスポンスを操作可能 ◆ Stripeはmock

    serverの実装を公開しており、自前で立てられる ➔ テストが容易、想定ケースを網羅することで安心してリリースできる テストの比較(他の決済ゲートウェイ)
  32. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート

    ➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
  33. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ どんなに堅牢に作っても障害は絶対に起きる ➔ 決済ゲートウェイに求めるもの 障害対応の観点

  34. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 加盟店側サーバがDown ◆ 決済ゲートウェイへ支払い確定を送ったがこちらのサーバが死んでいる 場合「お金を払っているのに閲覧できない」という問題に ➔

    決済ゲートウェイ側サーバがDown ◆ 例外をこちらでハンドル可能なのでマシ ◆ どのタイミングでダウンしたかによってデータの一貫性を保つのが困難 なこともある 障害の例
  35. #iosdc サブスクリプションサービスにおける In-App Purchase再考 こうした問題に対して ➔ SBPS (ソフトバンクペイメントサービス) ◆ 決済ゲートウェイ側の障害発生時間通知がある

    ◆ どちらかが正常に処理を完了できなかった場合の通知がある ◆ => 障害に付随する問題を検知できる ➔ App Store ◆ 特になし (知ってたら教えてください)
  36. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ サブスクリプションサービスでは決済に関する問い合わせは必ず来る ◆ 「払ったのに使えない」 ◆ 「退会手続きをしたい」「返金してほしい」

    カスタマーサポートの観点
  37. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ SBPS (ソフトバンクペイメントサービス) ◆ 決済ゲートウェイ側の管理画面と呼ばれるWebサイトで決済履歴を照 会できる

    ➔ App Store ◆ iTunes Connect からは特定のユーザーの情報を閲覧できない 「払ったのに使えない」
  38. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ SBPS (ソフトバンクペイメントサービス) ◆ 一部決済手段を除いて可能 ➔

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

    ◆ 加盟店ごとの個別対応にかなり柔軟 ◆ 不整合を検知した時は異常データの修正までやってくれる ➔ App Store ◆ 問い合わせることはできるが加盟店個別の対応は基本的に無い
  40. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート

    ➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
  41. #iosdc サブスクリプションサービスにおける In-App Purchase再考 30%

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

  43. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 30%: 自動更新型IAPの手数料 ◆ 2年目から15%(※ユーザー単位) ➔

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

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

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

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

    初手IAPは考えもの ◆ スタディサプリもApple以外の決済ゲートウェイを介した決済手段を実 装し、後からIAPを追加した YESなら以下に留意
  48. #iosdc サブスクリプションサービスにおける In-App Purchase再考 iOSから撤退して 別プラットフォームに移る 可能性はありますか

  49. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ IAPに限らずサブスクリプションモデルの決済をやめるのは難しい ◆ 新規申し込みを止めることはできる ◆ 既存ユーザーが使い続ける限りコードやチーム体制は残り続ける

    ➔ マルチプラットフォーム対応や手数料差を考えて他の決済手段に移ろうにも 運用コストのためになかなか離れられない…という事態を招く可能性 YESなら以下に留意
  50. #iosdc サブスクリプションサービスにおける In-App Purchase再考 そろそろIAPの 良いところが聞きたい

  51. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ iOSプラットフォームとインテグレートされたスムーズな決済の流れ ◆ クレカ情報などを入れることなく、ログイン済のAppleアカウントに紐づく 情報で決済 ◆

    登録後に別サイトに飛んで決済するより遥かに良いユーザー体験 ➔ クレカを持たない高校生がメインターゲットとなるスタディサプリではユーザー がプリペイドで使うケースも多くて人気 IAPの優位性
  52. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ シームレスな決済体験は必ずしもIAPの独壇場ともいえないかも ➔ アプリ内では ◆ 後述の一部のケースでiOSアプリ内にStripeの決済導入が可能

    ➔ Webでもモバイルでの決済体験向上が進んでいる ◆ Payment Request API ◆ Apple Pay on Safari とはいえ
  53. #iosdc サブスクリプションサービスにおける In-App Purchase再考 結論 04

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

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

  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
  57. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ アプリ外部で使用する商品(実物、チューターサービス)を販売する場合はむ しろIAPは使えない ◆ 参考: BOOTH

    iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? https://inside.pixiv.blog/danbo-tanak/4749 ➔ コーチによる学習サポートを提供するスタディサプリ合格特訓コースではクレ カ決済で申し込める ※ 審査リジェクトリスクは常にあります。選択は自己責任でお願いします。 IAP以外の決済手段提供ができるとき
  58. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 「iOSのサブスクリプションサービスならIAPだ」と安易に選択する前に再考し てほしい ◆ 決済ゲートウェイとしてのクオリティに着目すると良い ◆

    その選択で御社のサーバサイドエンジニアが苦しむかもしれない ➔ 決済手段の導入はビジネス上の戦略も含めた重大な意思決定になる ◆ エンジニアとしてリスク洗い出し・代替手段検討をしっかりやる 改めて結論
  59. #iosdc サブスクリプションサービスにおける In-App Purchase再考 Thank you!

  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 参考資料
  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
  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