Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アプリ内課金 リジェクトとAppleとのやり取りのお話
Search
hayatan
December 15, 2021
Business
1
1.4k
アプリ内課金 リジェクトとAppleとのやり取りのお話
Appleと具体的なやり取り(電話とか)のお話
hayatan
December 15, 2021
Tweet
Share
More Decks by hayatan
See All by hayatan
ReactNative のアプリを Swift に置き換えてます
hayatan
0
530
Other Decks in Business
See All in Business
SUN METALON会社紹介・採用説明資料
shindoyuto
0
180
pmconf_2024_斉藤.pdf
tomosooon
1
4.4k
SHONAIグループ_コーポレートブック
shonai9107
0
1.8k
リクルートやNRIデジタルとの成功事例に学ぶ、 IVRyのAI音声対話/音声解析ソリューションが 変革するコールセンターの未来
miyashino
1
600
署内デジタルインフォボードの開発
tokyo_metropolitan_gov_digital_hr
0
240
なぜ施策優先度を意思決定しなければならないのか? 経験から得た要因と対策
mkitahara01985
2
130
1LDK会社紹介資料
1ldkinc
1
280
【エンジニア職】中途採用向け会社説明資料(テックファーム株式会社)
techfirm
0
4.1k
LayerX AI・LLM Division Deck
layerx
PRO
0
160
Entrance Book ビジネスイノベーションサービス部
arisaiyou
0
170
KRAF Impact Report 2024(日本語版)
kraf
0
190
ダイナミックプラス株式会社 CompanyDeck20241201
plus0601
0
100
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
900
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Designing Experiences People Love
moore
138
23k
Being A Developer After 40
akosma
87
590k
Transcript
アプリ内課金 リジェクトとAppleとのやり取りのお話 2021/12/15 DMM iOS meetup #2
About me 大門 弘明(だいもん ひろあき) DMM.com のiOSエンジニア。 現在はオンラインサロン事業部に所属し、 直近だと ReactNative
→ Swift 移行や、 アプリ内課金の提供などに携わる。 趣味はゲーム、FFXIV。 最近星を救うために月に行きました。
今日お話すること • AppStoreリジェクトの経緯 ◦ アプリ内課金を実装してください!のリジェクト • わたしたちがとった対応 • Appleとどのようなやり取りを行ったのか •
コードは一切出てきません
DMMオンラインサロンアプリについて オンラインサロンに特化したクローズド SNS 機能 • テキスト・画像・動画の投稿 • 投稿に対するコメントや返信 • ライブ配信の視聴
特徴 • オンラインサロンオーナー /会員専用 • 入会手続きはWebから • 以前はアプリからは入会導線なし ◦ 最近アプリ内課金リリースで対応! 入 会 会 員 管 理 ・集 客 会員限定の交流 DMMオンライン サロンアプリ
AppStoreリジェクトの経緯
リジェクト from: Apple Guideline 3.1.1 - Business - Payments -
In-App Purchase We noticed that your app offers a subscription with a mechanism other than the in-app purchase API. アプリがアプリ内購入API以外のメカニズムで サブスクリプションを提供していることに気付きました。
Why? • 3.1.1 App内課金 ◦ 結構長い ▪ Apple以外の決済手段で課金させることは NGと解釈 •
当時誤って入会導線(Webでの課金)をつけてしまった ◦ 修正しても覆ることはなかった
わたしたちの言い分 サブスクリプション方式App内課金を導入できない & する必要はない
わたしたちの言い分 • オンラインサロンはApp外部のオフラインのサービス提供も含む ◦ オフラインイベントの参加権など ◦ ガイドライン3.1.3(e)「ユーザーがAppの外部で使用する物理的な商品やサービス」にあたるので は? • デジタルジタルデータのみで完結しないサービス
◦ オーナーや会員が、自発的かつ人為的に起こした コミュニケーションに関するアクションが対価 • 価格あたりのサービス内容が保証できない ◦ 多様な価格設定 ◦ そもそもAppleのサブスクにのせられない
レビューガイドライン3.1.3(e) 3.1.3(e)Appの外部で使用する商品やサービス:ユーザーがAppの外部で使用する物 理的な商品やサービスをAppで購入できるようにする場合、そうした商品の支払いには App内課金以外(Apple Payやクレジットカードなど)の方法を使用する必要があります。 https://developer.apple.com/jp/app-store/review/guidelines/#goods-and-services-o utside-of-the-app
一度目の対戦 このタイミングで1度目の Apple担当者との電話 (この当時はまだ自分はオンラインサロンにいない) やはりだめです。 対応して再申請してください。 フィードバックに同意できない場合があることは理解している。 しかし、だめものはだめ。 サブスクリプション方式 App内課金を導入できないし
する必要はないのでは?
Appleとの対戦結果 • DMMオンラインサロンはデジタルコンテンツであり、 リジェクトは覆らなさそう。
対応
対応策の検討 • ブラウザ版に移行する • アプリ内課金を実装する ◦ アプリ内通貨を買ってもらい支払う形式にする ◦ サブスクリプションを導入する
対応策の検討 • ブラウザ版に移行する ◦ 先にこちらから対応 • アプリ内課金を実装する ◦ 一旦保留
ブラウザ版に移行 • 万が一アプリが削除されてしまったときに備えて対応 • 一旦ブラウザ版の改修に注力 ◦ iOSでWebPushを実現するためのPush7の導入 ◦ 機能改善・UI改善等 •
このときはまだiOSエンジニアがいない
iOS課金導入・・・?
どのようにアプリ内課金を実現するか このあたりでオンラインサロンの開発にJOIN
どのようにアプリ内課金を実現するか • アプリ内課金でアプリ内通貨を買ってもらい支払う形式にする ◦ 前払式決済手段の導入 ◦ 自由な価格設定ができる ◦ 自動更新(サブスク)ができない •
アプリ内課金でサブスクリプションを導入する ◦ サロンごとに価格が違うのでサロンごとに課金アイテムを作成? ◦ 自由な価格設定ができない ◦ 課金アイテム数の上限 ◦ 課金アイテムの追加は手動 アプリ内通貨だと自動更新できないけど、 サブスクも難しそう・・・
言い分を変えてみる
レビューガイドライン3.1.3(a)「リーダー」App 以前に購入したコンテンツまたはコンテンツのサブスクリプション(具体的には、雑誌、新 聞、書籍、オーディオ、音楽、ビデオ)に、ユーザーがアクセスできるようにすることは許 可されています。「リーダー」Appは、無料ユーザー層向けにアカウント作成の機能や、 既存ユーザー向けにアカウント管理の機能を含めることができます。 ワンチャンあるのでは・・・?
Appleと二度目の対戦
Appleと二度目の対戦 だめ。 これはAppStoreには適していない。 3.1.3(a) 「リーダー」App に該当するように修正しました。
Appleと二度目の対戦 続き このコンテンツはガイドライン 3.1.3「その他の購入方法」には当てはまらない。 ガイドライン3.1.3(b)マルチプラットフォームサービスも読んでね。
レビューガイドライン3.1.3(b) 複数のプラットフォームで動作するAppでは、マルチプラットフォームのゲームにおける 消耗アイテムなどを含め、別のプラットフォーム上のAppやデベロッパのWebサイトで ユーザーが入手したコンテンツ、サブスクリプション、機能へのアクセスを許可すること が可能です。ただし、そうしたアイテムは、App内のApp内課金アイテムとしても購入可 能でなければなりません。 https://developer.apple.com/jp/app-store/review/guidelines/#multiplatform-services
Appleと二度目の対戦 続き フィードバックに同意できない場合があることは理解している。 でもだめ。 明確にリーダーAppに関する言及がないが、なにが理由か? ビジネスモデル的に Appleの課金に当てはめることが難しいのだがどうすればいい?
Appleと二度目の対戦結果 • 「リーダー」Appかどうかの追求はなし • ガイドライン3.1.3(b) ◦ 確かにWebでもアプリと同様のことはでき、マルチプラットフォームに当たりそう • Kindleなどの電子書籍アプリとの違いは? ◦
Kindleなどはマルチプラットフォームだけど課金はない ◦ おそらく「リーダー」App として審査に通っている
異議申し立て
異議申し立て フォームから異議申し立てを行うことができる https://developer.apple.com/contact/app-store/?topic=appeal
異議申し立て内容 • アプリ内課金を適応するのには課金モデルが合わず難しい • だからReaderとして該当するように機能を絞っている • それでもReaderに該当しないのはコンテンツの種類が問題なの? そして送信から2日後、 「異議申し立ての結果について話したいから電話する」 とAppleから返信が来る
電話でのやり取り
電話で話す目的 • リーダーAppに該当しない理由を聞く • 次にこちらが取るべき手段を知る
電話を受ける体制 • できれば営業時間にかけてほしい旨を返信 ◦ 対応できない日も明記 • こちらはEM(電話もってる)+ エンジニア2人 ◦ 電話がかかってきたら
Zoom越しに会話できる体制を整える • シミュレーションを完璧に ◦ Appleに聞かれそうなこと、聞きたいことをまとめる ◦ オンラインサロンのビジネスに関する説明なども 指定した時間帯で電話がかかってきた 日本語で対応してくれた
電話でのやり取り DMMオンラインサロンアプリは 3.1.1の却下となっています。 これに関してご質問・懸念点をお持ちなのですか? 3.1.3(a) 「リーダー」App に該当すると思っている。 どうしてそうならないのかを教えてほしい。 DMMオンラインサロンのビジネスモデルでは リーダーAppとして出すことはできません。
リーダーAppに該当しない理由 • 原則として有料デジタルサービスはアプリ内課金の購入が必須 • 特例として「雑誌、新聞、書籍、オーディオ、音楽、ビデオ」 をサービスの内容として提供している場合のみリーダーAppが許可されている • DMMオンラインサロンのビジネスモデルはこれに当てはまらない ガイドラインに具体的には・・・ と示されている
レビューガイドライン3.1.3(a)「リーダー」App 以前に購入したコンテンツまたはコンテンツのサブスクリプション(具体的には、雑誌、新 聞、書籍、オーディオ、音楽、ビデオ)に、ユーザーがアクセスできるようにすることは許 可されています。「リーダー」Appは、無料ユーザー層向けにアカウント作成の機能や、 既存ユーザー向けにアカウント管理の機能を含めることができます。 https://developer.apple.com/jp/app-store/review/guidelines/#reader-apps ワンチャンなかった
電話でのやり取り アプリ内課金は実現したいとも考えている。 しかし、我々のビジネスモデルでは、 AppleのAPIでサブスクリプションを実現す ることは難しいので相談したい。 結論から言うとAppStoreのアプリ内課金では、 DMMオンラインサロンのようなモデルをサポートしていない。
AppStoreで実現が難しい理由 • サブスク型のアプリ内課金が必要 • サロン毎に App Store Connect でアイテムを作成し審査に出す必要がある •
これをデベロッパー側で管理することは難易度が高い • 消耗型コンテンツとして購入させた場合期限がなくアクセスできるようにする必要が ある ◦ これに関しては、このあとかかってくる 2回目の電話でアップデート情報あり。 一体どうすれば・・・
再びAppleから電話がかかってくる
電話でのやり取り(2回目) 先程の会話に、いくつか訂正・アップデートがある。 アプリ内通貨を利用して、 時間制限のあるアイテムを販売することは可能である。 この方法を推奨する。 自動更新サブスクリプションの場合は、特に審査が厳しく、 追加されるコンテンツの量なども審査の対象となる。
アプリ内通貨について • 時間制限のあるアイテムを販売することは可能。 • この方法で販売することが自由度も高く現実的であると提案する。 • ただし、自動更新したい場合は、自動更新サブスクリプション型のApp内課金を実 装する必要がある。 ◦ 自動更新にせずユーザーに更新を促す機能を作成するのは
OK
自動更新サブスクリプションについて • 自動更新型の場合は、審査が厳しくなる。 ◦ サービスそのものがダイナミックなコンテンツ( Netflix, Hulu など毎日コンテンツが 1000件単位で追 加される)が対象。
◦ サービスの内容、コンテンツの量なども審査の対象となる。 ◦ 1日1回ブログを更新するようなコンテンツでは却下の可能性がある。 • 有料のオンラインサロンに無制限にアクセスできるような形の場合は自動更新サブ スクリプションでも審査が通る可能性が高い
2度の電話を終えて • リーダーAppには該当しない • サブスクリプションは現実的ではない • アプリ内通貨を販売することが現実的だとの提案 • 意外とちゃんと話を聞いてもらえて、答えてくれた
対ありでした!
どのようにiOS課金を実現するか • アプリ内課金でアプリ内通貨を買ってもらい支払う形式にする ◦ 前払式決済手段の導入 ◦ 自由な価格設定ができる ◦ 自動更新(サブスク)ができない ◦
Appleの担当者も推奨 • アプリ内課金でサブスクリプションを導入する ◦ サロンごとに価格が違うのでサロンごとに課金アイテムを作成? ◦ 自由な価格設定ができない ◦ 課金アイテム数の上限 ◦ 課金アイテムの追加は手動 方針が定まってきた・・・!
どのようにiOS課金を実現するか • アプリ内通貨「サロネン(SLN)」を実装 • ユーザーにはサロネンを購入してもらって、サロネンを消費して入会する • iOSから入会した場合は、自動更新されない 先日リリースしました! 開発に関する詳しいお話はまた別の機会に!
まとめ • リーダーAppとして出せるコンテンツは決まっている ◦ 特例として「雑誌、新聞、書籍、オーディオ、音楽、ビデオ」のみ • サブスクリプションは現実的ではない • 今回の場合 Apple
のおすすめはアプリ内通貨 ◦ アプリ内通貨でサブスクをするのはダメ ◦ Apple担当者は結構いい人だった • アプリ内通貨「サロネン(SLN)」をリリース