App内プロダクトのデザイン

ここでプロダクトとは、App。App Store Connectでプロダクトを作成して設定し、SKProductクラスとSKProductsRequestクラスを使用してAppとプロダクトを連携します。

App内課金を使用して販売可能なもの

App内課金では、コンテンツ、Appの機能、およびサービスを販売できます。

App内課金を使用して、実物の商品やサービス、あるいは不適切なコンテンツを販売することはできません

App内課金を使用して提供できるものの詳細については、ライセンス契約およびApp Review Guidelineを参照してください。コーディングを始める前にこのガイドラインを注意深く検討しておくと、審査期間中の遅れや拒否を回避できることがあります。特定のケースにおいてガイドラインの説明が不十分である場合は、オンライン連絡フォームを使用して、App Reviewチームに具体的な質問を行うことができます。

Appで販売するプロダクトにどのような物があるのかを知ったうえで、App内課金でそのプロダクトを販売するのが適切であると判断した場合は、App Store Connectでプロダクトを作成する必要があります。

App Store Connectでのプロダクトの作成

コーディングを始める前に、Appと連携するプロダクトについて、App Store Connectで設定する必要があります。Appの開発状況に応じて、プロダクトを追加したり削除したりすることができ、また既存のプロダクトの改善や再設定を行うことができます。

各プロダクトは特定のAppに関連づけられています。あるAppのために開発されたプロダクトを、他のAppから使うことはできません。別のプラットフォームで動作するコンパニオンAppは、独立した(別個の)Appと考えます。したがって、Mac App用のプロダクトをiOS Appから使う(あるいはその逆)、といったこともできません。

プロダクトはAppを登録するときに、App Reviewプロセスの一部として審査されます。ユーザーがプロダクトを購入できるようになるには、プロダクトがあらかじめ審査者によって承認されている必要があり、またApp Store Connectでプロダクトを“cleared for sale”(購入可能)としてマークしておく必要があります。

App Store Connectでプロダクトを取り扱う具体的な手順については、『App内課金の作成』を参照してください。

プロダクトのタイプ

プロダクトタイプごとに異なるプロダクト動作を提供することで、Appの範囲でApp内課金を使用できます。App Store Connectでは、次のプロダクトのタイプから1つを選択します。

プロダクトのタイプによる違い

プロダクトの各タイプは、特定の用途に合わせてデザインされています。次の表 1-1および表 1-2にまとめているように、プロダクトタイプの動作はそれぞれ異なります。

表 1-1 プロダクトのタイプによる比較

プロダクトのタイプ

非消耗型

消耗型

購入できる回数

1回

複数回

レシートへの表示

常に

1回

デバイス間での同期

システムにより同期

同期なし

復元

システムにより同期

復元されない

表 1-2 サブスクリプションのタイプによる比較

サブスクリプションのタイプ

自動更新

非更新

購入できる回数

複数回

複数回

レシートへの表示

常に

常に

デバイス間での同期

システムにより同期

Appにより同期

復元

システムにより同期

Appにより同期

期限のあるプロダクトまたは使用すると消耗するプロダクト(消耗型プロダクト、自動更新サブスクリプション、非更新サブスクリプション)は、消耗される項目を再度手に入れるため、またはサブスクリプションの期間を延長するために、複数回購入することができます。非消耗型プロダクトは、コンテンツに対するロックを解除してユーザーが無制限に使用できるようになるため、購入できるのは1回限りになります。

消耗型プロダクトのサブスクリプションは、購入後レシートに表示されますが、「Appレシートを使用した持続」で詳しく説明されているように、レシートが次に更新されると削除されます。これ以外のタイプのプロダクトには、レシートに削除されないエントリがあります。

消耗型プロダクトは、その性質上、同期されたり復元されたりすることはありません。たとえば、iPhoneでバブル(bubble)を10個購入しても、iPadのバブルが10個増えるわけではないことをユーザーは理解しています。これ以外のタイプのプロダクトでは、ユーザーのすべてのデバイスで使用できるようになります。これらのタイプのプロダクトについては復元も行われるので、デバイスを新しく購入した後でも、以前に購入したコンテンツに引き続きアクセスできます。StoreKitでは、自動更新サブスクリプションおよび非消耗型プロダクトについて、同期と復元の処理を行います。

非更新サブスクリプションは、自動更新サブスクリプションとは次のいくつかの重要な点で異なります。この違いにより、次のようにAppに必要な正しい動作を実装する柔軟性が実現されています。