Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サブスクリプションサービスにおけるIn-App Purchase再考 / Rethink In...
Search
Masato Ohba
September 01, 2018
Technology
8.3k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サブスクリプションサービスにおけるIn-App Purchase再考 / Rethink In-App Purchase on subscription services
iOSDC2018「サブスクリプションサービスにおけるIn-App Purchase再考」
リアルタイムでの反応はこちら
https://togetter.com/li/1262366
Masato Ohba
September 01, 2018
More Decks by Masato Ohba
See All by Masato Ohba
From Formal Specification to Property Based Test
ohbarye
0
5.5k
5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム / 5 Years Fintech Rails Retrospective
ohbarye
9
14k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
13k
組織のスケールを見据えたプロジェクトリードエンジニア制度の実践 / Project Lead Engineer for Scaling Engineering Organization
ohbarye
14
4k
Two Blades, One Journey: Engineering While Managing
ohbarye
9
14k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
3.1k
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
7
2.7k
Data Migration on Rails
ohbarye
8
17k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
3
22k
Other Decks in Technology
See All in Technology
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
CLIライブラリ開発を支える技術
htnabe
0
140
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
380
AI時代、データエンジニアが一番おもろい
genshun9
0
680
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.5k
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
190
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
120
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.5k
`t*(42&t>>10)`だけで音楽が鳴る、Swiftで実装するBytebeat / iOSDC Japan 2026
yutailang0119
0
120
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
Genieを崇めよ
kameitomohiro
0
170
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
140
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
The Curious Case for Waylosing
cassininazir
1
520
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Ethics towards AI in product and experience design
skipperchong
2
380
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Code Reviewing Like a Champion
maltzj
528
40k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
530
Faster Mobile Websites
deanohume
310
32k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Transcript
#iosdc サブスクリプションサービスにおける In-App Purchase再考 サブスクリプションサービスにおける In-App Purchase再考 @ohbarye iOSDC Japan
2018
#iosdc サブスクリプションサービスにおける In-App Purchase再考 言いたいこと WAIT In-App Purchaseがベストな選択肢か、もう一度考えてみましょう
#iosdc サブスクリプションサービスにおける In-App Purchase再考 用語の定義 ➔ In-App Purchase(アプリ内課金):デバイスやコンピュータ上のアプリの中 で追加のコンテンツや定期購読コンテンツを購入できるしくみ ➔
本セッションでは ◆ In-App PurchaseをIAPと呼称します ◆ iOSに限定します(Amazon, Android, Unity IAPなどは除く)
#iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPを知っている Webサービスにおける 一般的な決済を知っている 想定する聴衆 ココ以外
#iosdc サブスクリプションサービスにおける In-App Purchase再考 Agenda | 01 02 03 04
自己紹介、どういう立場から語るのか Webサービス/IAPの決済基礎 IAPと他決済手段の比較 結論
#iosdc サブスクリプションサービスにおける In-App Purchase再考 お話しないこと ➔ IAPの実装方法の詳細 ◆ コードは全く出てきません ➔
自動更新購読 (Auto-Renewable) 型以外のIAP ◆ 消耗型、非消耗型、非更新購読 ◆ サブスクリプションサービスの実現とはあまり関係ないため
#iosdc サブスクリプションサービスにおける In-App Purchase再考 自己紹介、どういう立場から語るのか 01
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Engineering Manager in ➔ 決済開発・運用を3年弱
@ohbarye
#iosdc サブスクリプションサービスにおける In-App Purchase再考 #1 on 2018-09-27 https://connpass.com/event/97627/
#iosdc サブスクリプションサービスにおける In-App Purchase再考
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 主に中高生向けの動画視聴サブスクリプションサービス ➔ 月額1,058円(税込) ◆ クレカ・コンビニ・キャリア
➔ または月額1,200円(税込) ◆ IAP スタディサプリ この辺+αを 運用しています
#iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPを知っている Webサービスにおける 一般的な決済を知っている 真ん中から語ります
#iosdc サブスクリプションサービスにおける In-App Purchase再考 Webサービス/IAPの決済基礎 02
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Webサービスの決済基礎 ◆ 登場人物の整理 ◆ 決済ゲートウェイとは
➔ IAPの場合
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Webサービスの決済基礎 ◆ 登場人物の整理 ◆ 決済ゲートウェイとは
➔ IAPの場合
#iosdc サブスクリプションサービスにおける In-App Purchase再考 立替払契約 参考 http://blog.kyash.co/entry/2018/05/14/102255 加盟店 登場人物 簡略図(クレカ決済の一例)
決済ゲートウェイ カード会社 イシュア・ アクワイアラ 売買契約 高校生・保護者 SBPS (ソフトバンク ペイメントサービス) スタディサプリ 三井住友カード
#iosdc サブスクリプションサービスにおける In-App Purchase再考 加盟店 登場人物 簡略図(キャリア決済の一例) 決済ゲートウェイ キャリア各社 売買契約
高校生・保護者 SBPS (ソフトバンク ペイメントサービス) ソフトバンク スタディサプリ 立替払契約
#iosdc サブスクリプションサービスにおける In-App Purchase再考 加盟店 登場人物 簡略図(コンビニ決済の一例) 決済ゲートウェイ コンビニ各社 売買契約
高校生・保護者 SBPS (ソフトバンク ペイメントサービス) セブンイレブン スタディサプリ 支払
#iosdc サブスクリプションサービスにおける In-App Purchase再考 決済ゲートウェイ?
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Webサービスの決済基礎 ◆ 登場人物の整理 ◆ 決済ゲートウェイとは
➔ IAPの場合
#iosdc サブスクリプションサービスにおける In-App Purchase再考 決済ゲートウェイとは ➔ 多種の決済を一括の契約とシステムで導入できるサービス ➔ カード会社・コンビニ各社の締日や入金タイミングの差分を吸収 ◆
経理上も嬉しい ➔ デザインパターンでいうFacade pattern SBPS GMOペイメント ベリトランス MF KESSAI etc.
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ Webサービスの決済基礎 ◆ 登場人物の整理 ◆ 決済ゲートウェイとは
➔ IAPの場合
#iosdc サブスクリプションサービスにおける In-App Purchase再考 加盟店 IAPの場合 Apple 売買契約 高校生・保護者 スタディサプリ
カード会社 キャリア各社 Apple ID コンビニ各社
#iosdc サブスクリプションサービスにおける In-App Purchase再考 Appleが 決済ゲートウェイにあたる つまり…
#iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPを再考するには 決済ゲートウェイとして 比較してみるのも一案
#iosdc サブスクリプションサービスにおける In-App Purchase再考 IAPと他決済手段の比較 03
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート
➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退 以下の3つの観点で比較
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート
➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ コードレベルの実装コストはややIAPが高い ◆ IAPの場合iOSがわかるエンジニアが必須 ◆ クライアントサイドUIとサーバサイド、定期実行ジョブの3つの実装が必
要になるのは同じ ➔ トランザクション管理の問題が一番やっかい ◆ 特にIAPは通信のシーケンスが複雑 開発の比較
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 決済の実装ではステージング環境でのテスト容易性が大事 ➔ AppStoreのsandbox (通称 ”精神と時の部屋”)
には幾つか問題点がある ◆ 不安定、App Storeに接続できず失敗することがある ◆ App Store側での購読状態をこちらでコントロールできない ➔ リリースクオリティを満たせるか不安になることがしばしばある… テストの比較(IAPの問題)
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 任意のタイミングで任意のレスポンスを返せる仕組みがある ◆ ソフトバンクペイメントサービスではGUIでレスポンスを操作可能 ◆ Stripeはmock
serverの実装を公開しており、自前で立てられる ➔ テストが容易、想定ケースを網羅することで安心してリリースできる テストの比較(他の決済ゲートウェイ)
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート
➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ どんなに堅牢に作っても障害は絶対に起きる ➔ 決済ゲートウェイに求めるもの 障害対応の観点
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 加盟店側サーバがDown ◆ 決済ゲートウェイへ支払い確定を送ったがこちらのサーバが死んでいる 場合「お金を払っているのに閲覧できない」という問題に ➔
決済ゲートウェイ側サーバがDown ◆ 例外をこちらでハンドル可能なのでマシ ◆ どのタイミングでダウンしたかによってデータの一貫性を保つのが困難 なこともある 障害の例
#iosdc サブスクリプションサービスにおける In-App Purchase再考 こうした問題に対して ➔ SBPS (ソフトバンクペイメントサービス) ◆ 決済ゲートウェイ側の障害発生時間通知がある
◆ どちらかが正常に処理を完了できなかった場合の通知がある ◆ => 障害に付随する問題を検知できる ➔ App Store ◆ 特になし (知ってたら教えてください)
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ サブスクリプションサービスでは決済に関する問い合わせは必ず来る ◆ 「払ったのに使えない」 ◆ 「退会手続きをしたい」「返金してほしい」
カスタマーサポートの観点
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ SBPS (ソフトバンクペイメントサービス) ◆ 決済ゲートウェイ側の管理画面と呼ばれるWebサイトで決済履歴を照 会できる
➔ App Store ◆ iTunes Connect からは特定のユーザーの情報を閲覧できない 「払ったのに使えない」
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ SBPS (ソフトバンクペイメントサービス) ◆ 一部決済手段を除いて可能 ➔
IAPの自動更新では ◆ 加盟店側で強制的に解約することや返金することはできない ◆ 期間内の返金はユーザーからAppleへ問い合わせしてもらう 「退会手続きをしたい」「返金してほしい」
#iosdc サブスクリプションサービスにおける In-App Purchase再考 加盟店サポートの観点 ➔ SBPS (ソフトバンクペイメントサービス) ◆ 加盟店サポートヘルプデスクがある
◆ 加盟店ごとの個別対応にかなり柔軟 ◆ 不整合を検知した時は異常データの修正までやってくれる ➔ App Store ◆ 問い合わせることはできるが加盟店個別の対応は基本的に無い
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 開発〜テスト ➔ 運用 ◆ 障害対応、カスタマーサポート、加盟店サポート
➔ ビジネス ◆ 手数料、マルチプラットフォーム、撤退
#iosdc サブスクリプションサービスにおける In-App Purchase再考 30%
#iosdc サブスクリプションサービスにおける In-App Purchase再考 3~4%
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 30%: 自動更新型IAPの手数料 ◆ 2年目から15%(※ユーザー単位) ➔
3~4%: 日本の主流な決済の手数料 ◆ (『銀行が「LINEペイ」に到底勝てない根本理由』より) ➔ 販売価格が同じだと純粋に利益率に響く ◆ IAPによる購入だけ単価を上げることもできるが… ビジネス観点の比較(手数料)
#iosdc サブスクリプションサービスにおける In-App Purchase再考 混乱
#iosdc サブスクリプションサービスにおける In-App Purchase再考 マルチプラットフォーム
#iosdc サブスクリプションサービスにおける In-App Purchase再考 iOSだけでなくAndroidや Webでサービス提供する 予定ありますか
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ IAPはiOSにしか適用できない ◆ ビジネスが成長してマルチプラットフォーム対応する場合、大きな足か せ ➔
初手IAPは考えもの ◆ スタディサプリもApple以外の決済ゲートウェイを介した決済手段を実 装し、後からIAPを追加した YESなら以下に留意
#iosdc サブスクリプションサービスにおける In-App Purchase再考 iOSから撤退して 別プラットフォームに移る 可能性はありますか
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ IAPに限らずサブスクリプションモデルの決済をやめるのは難しい ◆ 新規申し込みを止めることはできる ◆ 既存ユーザーが使い続ける限りコードやチーム体制は残り続ける
➔ マルチプラットフォーム対応や手数料差を考えて他の決済手段に移ろうにも 運用コストのためになかなか離れられない…という事態を招く可能性 YESなら以下に留意
#iosdc サブスクリプションサービスにおける In-App Purchase再考 そろそろIAPの 良いところが聞きたい
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ iOSプラットフォームとインテグレートされたスムーズな決済の流れ ◆ クレカ情報などを入れることなく、ログイン済のAppleアカウントに紐づく 情報で決済 ◆
登録後に別サイトに飛んで決済するより遥かに良いユーザー体験 ➔ クレカを持たない高校生がメインターゲットとなるスタディサプリではユーザー がプリペイドで使うケースも多くて人気 IAPの優位性
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ シームレスな決済体験は必ずしもIAPの独壇場ともいえないかも ➔ アプリ内では ◆ 後述の一部のケースでiOSアプリ内にStripeの決済導入が可能
➔ Webでもモバイルでの決済体験向上が進んでいる ◆ Payment Request API ◆ Apple Pay on Safari とはいえ
#iosdc サブスクリプションサービスにおける In-App Purchase再考 結論 04
#iosdc サブスクリプションサービスにおける In-App Purchase再考 言いたいこと again WAIT In-App Purchaseがベストな選択肢か、もう一度考えてみましょう
#iosdc サブスクリプションサービスにおける In-App Purchase再考 とはいえIAPでないと 審査通らないのでは…?
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ガイドラインを読む > 3.1.5(a)アプリケーションの外部で使用する商品やサービス: ユーザーが アプリケーションの外部で使用する商品やサービスをアプリケーションで購入 できるようにする場合、そうした商品の支払いにはApp内課金以外(Apple
Payや クレジットカードなど)の方法を使用する必要があります。 https://developer.apple.com/jp/app-store/review/guidelines/#in-ap p-purchase
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ アプリ外部で使用する商品(実物、チューターサービス)を販売する場合はむ しろIAPは使えない ◆ 参考: BOOTH
iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? https://inside.pixiv.blog/danbo-tanak/4749 ➔ コーチによる学習サポートを提供するスタディサプリ合格特訓コースではクレ カ決済で申し込める ※ 審査リジェクトリスクは常にあります。選択は自己責任でお願いします。 IAP以外の決済手段提供ができるとき
#iosdc サブスクリプションサービスにおける In-App Purchase再考 ➔ 「iOSのサブスクリプションサービスならIAPだ」と安易に選択する前に再考し てほしい ◆ 決済ゲートウェイとしてのクオリティに着目すると良い ◆
その選択で御社のサーバサイドエンジニアが苦しむかもしれない ➔ 決済手段の導入はビジネス上の戦略も含めた重大な意思決定になる ◆ エンジニアとしてリスク洗い出し・代替手段検討をしっかりやる 改めて結論
#iosdc サブスクリプションサービスにおける In-App Purchase再考 Thank you!
#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 参考資料
#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
#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