App内課金

すべてのAppleプラットフォームで利用可能なApp内課金を使って、デジタル商品、サブスクリプション、プレミアムコンテンツなどの追加のコンテンツや機能をApp内で直接提供しましょう。また、App Store上で直接App内課金をプロモーションしたり提供したりすることもできます。

App内課金のタイプ

App内課金には4つのタイプがあり、App内で複数のタイプを提供できます。App内課金は、Appを利用できるプラットフォームであれば、複数のAppleプラットフォームからアクセスできます。

消耗型

ユーザーは、さまざまな種類の消耗型アイテムを購入することができます。たとえば、ゲーム内での進捗を促すライフや宝石などを購入したり、デートAppでの自分のプロフィールの表示頻度を向上するためのブーストを購入したりできます。消耗型のApp内課金は一度使うとなくなり、再度購入することが可能です。フリーミアムビジネスモデルを使うAppやゲームでよく提供されています。

非消耗型

ユーザーは、非消耗型のプレミアム機能を購入することができます。こうした機能は一度購入すれば無期限に使用できます。たとえば、写真Appの追加フィルタやゲームのコスメティックアイテムなどがあります。

自動更新サブスクリプション

ユーザーはAppのコンテンツ、サービス、プレミアム機能への継続的なアクセスを購入できます。自動更新サブスクリプションでは、ユーザーがキャンセルするまで定期的に課金が行われます。自動更新サブスクリプションを提供する一般的なカテゴリには、メディアやコンテンツのライブラリ(ビデオ、音楽、記事など)、サービスとしてのソフトウェア(クラウドストレージ、仕事効率化、グラフィックス、デザインなど)、教育コンテンツなどへのアクセスを提供するものがあります。

サブスクリプションについてさらに詳しく

非自動更新サブスクリプション

ユーザーは、ゲーム内コンテンツのシーズンパスなど、期間限定のサービスやコンテンツを購入することができます。このタイプのサブスクリプションは自動的に更新されないため、アクセスの継続を希望する場合は、ユーザー自身が都度購入する必要があります。

ファミリー共有 New

非消耗型のApp内課金または自動更新サブスクリプションを提供するAppでは、App Store Connectでファミリー共有を有効にして、ユーザーが最大5人のファミリーメンバーとアクセスを共有できるようにすることが可能です。スムーズで便利なユーザー体験を提供するファミリー共有は、サブスクリプション利用者の獲得、有料サブスクリプションの促進、ユーザーエンゲージメントやリテンションの向上に役立ちます。

App内課金のファミリー共有をオンにする

地域別の価格

自動更新サブスクリプションを実装したAppでは、地域別の価格を提供できます。利用可能な全通貨で200のプライスポイントと価格帯から選択でき、各地域に適切な価格を提供できます。

サブスクリプションの提供について詳しく

App内課金の提供

App内課金の提供を開始するには、有料App契約に署名し、税金および銀行口座に関する情報を設定する必要があります。

App Store Connectヘルプ:契約/税金/口座情報の概要

Xcodeの設定

Xcodeを使って、AppのApp内課金サービスを実装します。

Xcodeヘルプ:ターゲットに機能を追加する(英語)

App Store ConnectでのApp内課金の設定

App Store Connectで、詳細情報(製品名、説明、価格、配信状況など)を追加して、App内課金を設定します。ローカリゼーションを追加すれば、Appが利用可能な各地域のユーザーに、それぞれの希望言語でシームレスな体験を提供できるようになります。

App Store Connectヘルプ:App内課金を設定するためのワークフロー App Store Connectヘルプ:App内課金の情報の表示と編集

設計と実装

App内課金体験の設計

App内課金のユーザーインターフェイスは、Appのその他の要素と調和するようにし、製品を魅力的に紹介するものにしてください。

「Human Interface Guidelines」を見る(英語)


App内課金の実装

StoreKitフレームワークを使えば、あらゆるAppleプラットフォームのユーザーが安心して利用できる安全な購入体験を実現できます。StoreKit APIは、プロダクト情報の取得、トランザクションの処理、製品のエンタイトルメントの決定、ユーザーのステータスの特定、オファーの提供などに役立ちます。

欧州連合の強力な顧客認証(SCA)要件の導入に伴い、欧州経済領域(EEA)のユーザーのオンラインでの購入方法に影響が及ぶ可能性があります。App Storeは、強力な顧客認証に対応します。購入を正しく処理できるよう、AppにStoreKitが実装されていることを確認してください。

StoreKitに関するドキュメントを見る


ユーザーステータスの特定

App Storeのサーバ通知は、返金やサブスクリプションステータスの変更といった、App内課金に関するユーザーのステータスや重要なイベントのアップデートをリアルタイムで提供します。この情報を活用して、Appの体験をカスタマイズできます。たとえば、サブスクリプション利用者が自動更新をオフにした場合は、再登録を促すプロモーションオファーを表示することができます。App Storeのサーバ通知を有効にするには、App Store Connectで、AppのサーバにリンクするURLを提供する必要があります。

App StoreサーバAPIを使うと、製品のエンタイトルメントとユーザーのステータスを特定できます。App外やユーザーのデバイスのオフライン時に行われたステータス変更を含めて、App内課金の購入トランザクションの最新ステータスと履歴を取得することができます。

App Storeのサーバ通知に関するドキュメント(英語)

テスト

トランザクションのテスト

開発プロセス全体でApp内課金をテストして、サブスクリプションオファーや返金といった一般的な購入シナリオがAppとサーバで正常に処理されることを確認してください。初期開発の段階で、Xcodeを使用してApp内課金のシミュレーションとテストを実行することができます。App Store ConnectでApp内課金を設定すると、Sandbox環境で実際のプロダクト情報を使ったテストが可能になります。

開発の全段階におけるテスト Xcodeでのテスト(英語) Sandbox環境でのテスト

ユーザー体験全体のテスト

テストの準備ができたら、TestFlightを使って、内部および外部のテスターからApp本体やApp内課金に対する有益なフィードバックを受けることができます。テスターのメールアドレスを使うか、パブリックリンクを共有することで、最大10,000人の外部テスターを招待できます。TestFlightでのApp内課金はSandbox環境を使用するため、テスターはApp内課金を無料で入手できます。ただし、AppがApp Storeでリリースされた後の本番環境では使えなくなります。

TestFlightを利用したテスト

公開プロセス

App内課金の審査への提出

テストが完了したら、「App Reviewガイドライン」および「実装におけるチェックリスト」に準拠していることを確認し、App Store Connectを通して審査に提出します。

App Store Reviewガイドライン App Store Connectヘルプ:App内課金の提出

App Store上でのApp内課金のプロモーション

以前はApp内課金の表示はApp内に限定されていましたが、プロダクトページ上でも同時に最大20個のApp内課金をプロモーションできるようになり、App内課金の内容をより多くの人に周知できます。ユーザーはApp Storeで直接App内課金を閲覧でき、App本体をダウンロードする前にApp内課金を購入することもできます。

App内課金のプロモーション

プロモーションコードの発行

報道関係者やインフルエンサーがAppのApp内課金をいち早く利用できるようにするためのプロモーションコードを、App Store Connectで発行することができます。プロモーションコードはApp内課金アイテム1つにつき100個まで、App1つにつき最大1,000個まで発行可能です。

App Store Connectヘルプ:プロモーションコードの概要
ユーザーの支払い方法

支払いの処理、60を超える地域での納税義務についての支援など、App Storeが販売のあらゆる側面でサポートを提供するため、デベロッパはコンテンツを簡単に世界中のユーザーに届けることができます。ユーザーは、クレジットカード、デビットカード、キャリア決済、Apple Payなどの支払いサービス、またはApple IDの残高(ギフトカードまたは入金によるもの)を使用して、AppやApp内課金の支払いができます。

さらに詳しく

カスタマーサポートの提供

配慮の行き届いたサポートを提供することは、ユーザーとの関係維持に役立つほか、エンゲージメントやリテンション率の改善、評価とレビューの向上にもつながります。StoreKitとApp StoreサーバAPIを使って、よりシームレスなサポートオプションを提供し、App内課金に関する問題をすばやく効率的に解決しましょう。

返金の処理

Request Refund StoreKit API(英語)を使って、App内に返金リクエスト専用の場所を設けることで、ユーザーがApp内で直接返金をリクエストできるようになります。また、返金をリクエストするオプションの前に、テクニカルサポートやゲーム内での無償アイテムなど、他のオプションを提供することもできます。

App Storeのサーバ通知を有効にすると、ユーザーが返金をリクエストした後、リクエストが承認されたかどうかについての通知が届きます。この情報をもとに、返金に応じてアカウント残高を更新する、App内課金でロック解除されたコンテンツへのアクセスを制限するなど、適切な措置を取ることができます。こうした措置を取る場合は、ユーザーに変更内容を知らせ、ユーザーによる対応が必要な場合はその旨を伝えるようにしましょう。年内には、Refunded Purchases APIを使って、ユーザーがApp内で行ったApp内課金の購入について過去に返金を受けたことがあるかどうかも特定できるようになります。

Appleはさまざまな要素を用いて、返金リクエストが承認/拒否されるかどうかを判断します。返金プロセスに関する情報をAppleに送信しプロセス改善を図るため、ユーザーから返金リクエストを受けた場合は、ユーザーのApp内課金に関する情報をAppleに送信(英語)できます。これには、App内課金アイテムが利用済みで消耗されているかどうか、App内課金アイテムが適切に配信されなかった場合があるか、といった情報が含まれます。

返金リクエストに関するUIのベストプラクティスを見る(英語)

App Storeサーバ通知の有効化(英語)

返金通知の処理

サブスクリプション利用者へのサポート

購入の管理

ユーザーがApp本体を再ダウンロードした場合や、別のデバイスに切り替えた場合は、ユーザーが購入したApp内課金のコンテンツや機能にすぐにアクセスできるようにしてください。また、「App Store Reviewガイドライン3.1.1」に従って、返還可能なApp内課金に対する返還メカニズムをAppに実装する必要があります。

年内には、ユーザーからApp内課金のサポートをリクエストされた場合、Invoice Lookup APIを使って正しい購入アイテムに対応することが可能になります。Appleから受信したメールの請求書に記載された注文番号の提示をユーザーに依頼し、上記のAPIを使って、請求書と関連情報(ユーザーが購入アイテムについてすでに返金を受けたかどうかなど)を確認したり、購入の日時をデベロッパ側の記録と照合することができます。