Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

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

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再考 Agenda | 01 02 03 04

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

    自動更新購読 (Auto-Renewable) 型以外のIAP ◆ 消耗型、非消耗型、非更新購読 ◆ サブスクリプションサービスの実現とはあまり関係ないため
  3. #iosdc サブスクリプションサービスにおける In-App Purchase再考 立替払契約 参考 http://blog.kyash.co/entry/2018/05/14/102255 加盟店 登場人物 簡略図(クレカ決済の一例)

    決済ゲートウェイ カード会社 イシュア・ アクワイアラ 売買契約 高校生・保護者 SBPS (ソフトバンク ペイメントサービス) スタディサプリ 三井住友カード
  4. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 決済の実装ではステージング環境でのテスト容易性が大事 ➔ AppStoreのsandbox (通称 ”精神と時の部屋”)

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

    serverの実装を公開しており、自前で立てられる ➔ テストが容易、想定ケースを網羅することで安心してリリースできる テストの比較(他の決済ゲートウェイ)
  6. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 加盟店側サーバがDown ◆ 決済ゲートウェイへ支払い確定を送ったがこちらのサーバが死んでいる 場合「お金を払っているのに閲覧できない」という問題に ➔

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

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

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

    ◆ 加盟店ごとの個別対応にかなり柔軟 ◆ 不整合を検知した時は異常データの修正までやってくれる ➔ App Store ◆ 問い合わせることはできるが加盟店個別の対応は基本的に無い
  10. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 30%: 自動更新型IAPの手数料 ◆ 2年目から15%(※ユーザー単位) ➔

    3~4%: 日本の主流な決済の手数料 ◆ (『銀行が「LINEペイ」に到底勝てない根本理由』より) ➔ 販売価格が同じだと純粋に利益率に響く ◆ IAPによる購入だけ単価を上げることもできるが… ビジネス観点の比較(手数料)
  11. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ IAPはiOSにしか適用できない ◆ ビジネスが成長してマルチプラットフォーム対応する場合、大きな足か せ ➔

    初手IAPは考えもの ◆ スタディサプリもApple以外の決済ゲートウェイを介した決済手段を実 装し、後からIAPを追加した YESなら以下に留意
  12. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ IAPに限らずサブスクリプションモデルの決済をやめるのは難しい ◆ 新規申し込みを止めることはできる ◆ 既存ユーザーが使い続ける限りコードやチーム体制は残り続ける

    ➔ マルチプラットフォーム対応や手数料差を考えて他の決済手段に移ろうにも 運用コストのためになかなか離れられない…という事態を招く可能性 YESなら以下に留意
  13. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ iOSプラットフォームとインテグレートされたスムーズな決済の流れ ◆ クレカ情報などを入れることなく、ログイン済のAppleアカウントに紐づく 情報で決済 ◆

    登録後に別サイトに飛んで決済するより遥かに良いユーザー体験 ➔ クレカを持たない高校生がメインターゲットとなるスタディサプリではユーザー がプリペイドで使うケースも多くて人気 IAPの優位性
  14. #iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ アプリ外部で使用する商品(実物、チューターサービス)を販売する場合はむ しろIAPは使えない ◆ 参考: BOOTH

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

    その選択で御社のサーバサイドエンジニアが苦しむかもしれない ➔ 決済手段の導入はビジネス上の戦略も含めた重大な意思決定になる ◆ エンジニアとしてリスク洗い出し・代替手段検討をしっかりやる 改めて結論
  16. #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 参考資料
  17. #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
  18. #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