Slide 1

Slide 1 text

アプリ内課金 リジェクトとAppleとのやり取りのお話 2021/12/15 DMM iOS meetup #2

Slide 2

Slide 2 text

About me 大門 弘明(だいもん ひろあき) DMM.com のiOSエンジニア。 現在はオンラインサロン事業部に所属し、 直近だと ReactNative → Swift 移行や、 アプリ内課金の提供などに携わる。 趣味はゲーム、FFXIV。 最近星を救うために月に行きました。

Slide 3

Slide 3 text

今日お話すること ● AppStoreリジェクトの経緯 ○ アプリ内課金を実装してください!のリジェクト ● わたしたちがとった対応 ● Appleとどのようなやり取りを行ったのか ● コードは一切出てきません

Slide 4

Slide 4 text

DMMオンラインサロンアプリについて オンラインサロンに特化したクローズド SNS 機能 ● テキスト・画像・動画の投稿 ● 投稿に対するコメントや返信 ● ライブ配信の視聴 特徴 ● オンラインサロンオーナー /会員専用 ● 入会手続きはWebから ● 以前はアプリからは入会導線なし ○ 最近アプリ内課金リリースで対応! 入 会 会 員 管 理 ・集 客 会員限定の交流 DMMオンライン サロンアプリ

Slide 5

Slide 5 text

AppStoreリジェクトの経緯

Slide 6

Slide 6 text

リジェクト 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以外のメカニズムで サブスクリプションを提供していることに気付きました。

Slide 7

Slide 7 text

Why? ● 3.1.1 App内課金 ○ 結構長い ■ Apple以外の決済手段で課金させることは NGと解釈 ● 当時誤って入会導線(Webでの課金)をつけてしまった ○ 修正しても覆ることはなかった

Slide 8

Slide 8 text

わたしたちの言い分 サブスクリプション方式App内課金を導入できない & する必要はない

Slide 9

Slide 9 text

わたしたちの言い分 ● オンラインサロンはApp外部のオフラインのサービス提供も含む ○ オフラインイベントの参加権など ○ ガイドライン3.1.3(e)「ユーザーがAppの外部で使用する物理的な商品やサービス」にあたるので は? ● デジタルジタルデータのみで完結しないサービス ○ オーナーや会員が、自発的かつ人為的に起こした コミュニケーションに関するアクションが対価 ● 価格あたりのサービス内容が保証できない ○ 多様な価格設定 ○ そもそもAppleのサブスクにのせられない

Slide 10

Slide 10 text

レビューガイドライン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

Slide 11

Slide 11 text

一度目の対戦 このタイミングで1度目の Apple担当者との電話 (この当時はまだ自分はオンラインサロンにいない) やはりだめです。 対応して再申請してください。 フィードバックに同意できない場合があることは理解している。 しかし、だめものはだめ。 サブスクリプション方式 App内課金を導入できないし する必要はないのでは?

Slide 12

Slide 12 text

Appleとの対戦結果 ● DMMオンラインサロンはデジタルコンテンツであり、 リジェクトは覆らなさそう。

Slide 13

Slide 13 text

対応

Slide 14

Slide 14 text

対応策の検討 ● ブラウザ版に移行する ● アプリ内課金を実装する ○ アプリ内通貨を買ってもらい支払う形式にする ○ サブスクリプションを導入する

Slide 15

Slide 15 text

対応策の検討 ● ブラウザ版に移行する ○ 先にこちらから対応 ● アプリ内課金を実装する ○ 一旦保留

Slide 16

Slide 16 text

ブラウザ版に移行 ● 万が一アプリが削除されてしまったときに備えて対応 ● 一旦ブラウザ版の改修に注力 ○ iOSでWebPushを実現するためのPush7の導入 ○ 機能改善・UI改善等 ● このときはまだiOSエンジニアがいない

Slide 17

Slide 17 text

iOS課金導入・・・?

Slide 18

Slide 18 text

どのようにアプリ内課金を実現するか このあたりでオンラインサロンの開発にJOIN

Slide 19

Slide 19 text

どのようにアプリ内課金を実現するか ● アプリ内課金でアプリ内通貨を買ってもらい支払う形式にする ○ 前払式決済手段の導入 ○ 自由な価格設定ができる ○ 自動更新(サブスク)ができない ● アプリ内課金でサブスクリプションを導入する ○ サロンごとに価格が違うのでサロンごとに課金アイテムを作成? ○ 自由な価格設定ができない ○ 課金アイテム数の上限 ○ 課金アイテムの追加は手動 アプリ内通貨だと自動更新できないけど、 サブスクも難しそう・・・

Slide 20

Slide 20 text

言い分を変えてみる

Slide 21

Slide 21 text

レビューガイドライン3.1.3(a)「リーダー」App 以前に購入したコンテンツまたはコンテンツのサブスクリプション(具体的には、雑誌、新 聞、書籍、オーディオ、音楽、ビデオ)に、ユーザーがアクセスできるようにすることは許 可されています。「リーダー」Appは、無料ユーザー層向けにアカウント作成の機能や、 既存ユーザー向けにアカウント管理の機能を含めることができます。 ワンチャンあるのでは・・・?

Slide 22

Slide 22 text

Appleと二度目の対戦

Slide 23

Slide 23 text

Appleと二度目の対戦 だめ。 これはAppStoreには適していない。 3.1.3(a) 「リーダー」App に該当するように修正しました。

Slide 24

Slide 24 text

Appleと二度目の対戦 続き このコンテンツはガイドライン 3.1.3「その他の購入方法」には当てはまらない。 ガイドライン3.1.3(b)マルチプラットフォームサービスも読んでね。

Slide 25

Slide 25 text

レビューガイドライン3.1.3(b) 複数のプラットフォームで動作するAppでは、マルチプラットフォームのゲームにおける 消耗アイテムなどを含め、別のプラットフォーム上のAppやデベロッパのWebサイトで ユーザーが入手したコンテンツ、サブスクリプション、機能へのアクセスを許可すること が可能です。ただし、そうしたアイテムは、App内のApp内課金アイテムとしても購入可 能でなければなりません。 https://developer.apple.com/jp/app-store/review/guidelines/#multiplatform-services

Slide 26

Slide 26 text

Appleと二度目の対戦 続き フィードバックに同意できない場合があることは理解している。 でもだめ。 明確にリーダーAppに関する言及がないが、なにが理由か? ビジネスモデル的に Appleの課金に当てはめることが難しいのだがどうすればいい?

Slide 27

Slide 27 text

Appleと二度目の対戦結果 ● 「リーダー」Appかどうかの追求はなし ● ガイドライン3.1.3(b) ○ 確かにWebでもアプリと同様のことはでき、マルチプラットフォームに当たりそう ● Kindleなどの電子書籍アプリとの違いは? ○ Kindleなどはマルチプラットフォームだけど課金はない ○ おそらく「リーダー」App として審査に通っている

Slide 28

Slide 28 text

異議申し立て

Slide 29

Slide 29 text

異議申し立て フォームから異議申し立てを行うことができる https://developer.apple.com/contact/app-store/?topic=appeal

Slide 30

Slide 30 text

異議申し立て内容 ● アプリ内課金を適応するのには課金モデルが合わず難しい ● だからReaderとして該当するように機能を絞っている ● それでもReaderに該当しないのはコンテンツの種類が問題なの? そして送信から2日後、 「異議申し立ての結果について話したいから電話する」 とAppleから返信が来る

Slide 31

Slide 31 text

電話でのやり取り

Slide 32

Slide 32 text

電話で話す目的 ● リーダーAppに該当しない理由を聞く ● 次にこちらが取るべき手段を知る

Slide 33

Slide 33 text

電話を受ける体制 ● できれば営業時間にかけてほしい旨を返信 ○ 対応できない日も明記 ● こちらはEM(電話もってる)+ エンジニア2人 ○ 電話がかかってきたら Zoom越しに会話できる体制を整える ● シミュレーションを完璧に ○ Appleに聞かれそうなこと、聞きたいことをまとめる ○ オンラインサロンのビジネスに関する説明なども 指定した時間帯で電話がかかってきた 日本語で対応してくれた

Slide 34

Slide 34 text

電話でのやり取り DMMオンラインサロンアプリは 3.1.1の却下となっています。 これに関してご質問・懸念点をお持ちなのですか? 3.1.3(a) 「リーダー」App に該当すると思っている。 どうしてそうならないのかを教えてほしい。 DMMオンラインサロンのビジネスモデルでは リーダーAppとして出すことはできません。

Slide 35

Slide 35 text

リーダーAppに該当しない理由 ● 原則として有料デジタルサービスはアプリ内課金の購入が必須 ● 特例として「雑誌、新聞、書籍、オーディオ、音楽、ビデオ」 をサービスの内容として提供している場合のみリーダーAppが許可されている ● DMMオンラインサロンのビジネスモデルはこれに当てはまらない ガイドラインに具体的には・・・ と示されている

Slide 36

Slide 36 text

レビューガイドライン3.1.3(a)「リーダー」App 以前に購入したコンテンツまたはコンテンツのサブスクリプション(具体的には、雑誌、新 聞、書籍、オーディオ、音楽、ビデオ)に、ユーザーがアクセスできるようにすることは許 可されています。「リーダー」Appは、無料ユーザー層向けにアカウント作成の機能や、 既存ユーザー向けにアカウント管理の機能を含めることができます。 https://developer.apple.com/jp/app-store/review/guidelines/#reader-apps ワンチャンなかった

Slide 37

Slide 37 text

電話でのやり取り アプリ内課金は実現したいとも考えている。 しかし、我々のビジネスモデルでは、 AppleのAPIでサブスクリプションを実現す ることは難しいので相談したい。 結論から言うとAppStoreのアプリ内課金では、 DMMオンラインサロンのようなモデルをサポートしていない。

Slide 38

Slide 38 text

AppStoreで実現が難しい理由 ● サブスク型のアプリ内課金が必要 ● サロン毎に App Store Connect でアイテムを作成し審査に出す必要がある ● これをデベロッパー側で管理することは難易度が高い ● 消耗型コンテンツとして購入させた場合期限がなくアクセスできるようにする必要が ある ○ これに関しては、このあとかかってくる 2回目の電話でアップデート情報あり。 一体どうすれば・・・

Slide 39

Slide 39 text

再びAppleから電話がかかってくる

Slide 40

Slide 40 text

電話でのやり取り(2回目) 先程の会話に、いくつか訂正・アップデートがある。 アプリ内通貨を利用して、 時間制限のあるアイテムを販売することは可能である。 この方法を推奨する。 自動更新サブスクリプションの場合は、特に審査が厳しく、 追加されるコンテンツの量なども審査の対象となる。

Slide 41

Slide 41 text

アプリ内通貨について ● 時間制限のあるアイテムを販売することは可能。 ● この方法で販売することが自由度も高く現実的であると提案する。 ● ただし、自動更新したい場合は、自動更新サブスクリプション型のApp内課金を実 装する必要がある。 ○ 自動更新にせずユーザーに更新を促す機能を作成するのは OK

Slide 42

Slide 42 text

自動更新サブスクリプションについて ● 自動更新型の場合は、審査が厳しくなる。 ○ サービスそのものがダイナミックなコンテンツ( Netflix, Hulu など毎日コンテンツが 1000件単位で追 加される)が対象。 ○ サービスの内容、コンテンツの量なども審査の対象となる。 ○ 1日1回ブログを更新するようなコンテンツでは却下の可能性がある。 ● 有料のオンラインサロンに無制限にアクセスできるような形の場合は自動更新サブ スクリプションでも審査が通る可能性が高い

Slide 43

Slide 43 text

2度の電話を終えて ● リーダーAppには該当しない ● サブスクリプションは現実的ではない ● アプリ内通貨を販売することが現実的だとの提案 ● 意外とちゃんと話を聞いてもらえて、答えてくれた

Slide 44

Slide 44 text

対ありでした!

Slide 45

Slide 45 text

どのようにiOS課金を実現するか ● アプリ内課金でアプリ内通貨を買ってもらい支払う形式にする ○ 前払式決済手段の導入 ○ 自由な価格設定ができる ○ 自動更新(サブスク)ができない ○ Appleの担当者も推奨 ● アプリ内課金でサブスクリプションを導入する ○ サロンごとに価格が違うのでサロンごとに課金アイテムを作成? ○ 自由な価格設定ができない ○ 課金アイテム数の上限 ○ 課金アイテムの追加は手動 方針が定まってきた・・・!

Slide 46

Slide 46 text

どのようにiOS課金を実現するか ● アプリ内通貨「サロネン(SLN)」を実装 ● ユーザーにはサロネンを購入してもらって、サロネンを消費して入会する ● iOSから入会した場合は、自動更新されない 先日リリースしました! 開発に関する詳しいお話はまた別の機会に!

Slide 47

Slide 47 text

まとめ ● リーダーAppとして出せるコンテンツは決まっている ○ 特例として「雑誌、新聞、書籍、オーディオ、音楽、ビデオ」のみ ● サブスクリプションは現実的ではない ● 今回の場合 Apple のおすすめはアプリ内通貨 ○ アプリ内通貨でサブスクをするのはダメ ○ Apple担当者は結構いい人だった ● アプリ内通貨「サロネン(SLN)」をリリース