アプリ内課金 (IAP) について

アプリ内課金 (IAP) の概要

アプリ内課金 (IAP) APIを使用すると、デジタルコンテンツや定期購入型アイテムの購入の表示、処理、アイテム付与までをアプリ内で行うことができます。Amazonでは、AndroidアプリとWebアプリ両方のアプリ内課金APIをサポートしています。このページでは、アプリ内課金APIの概要を紹介します。

アプリ内課金 (IAP) とは

アプリ内課金(IAP)を使用すると、アプリのユーザーは、各種デジタルアイテム(追加ライフ、プレミアムコンテンツの定期購入サービスなど)を購入できます。

たとえば、IAPの使用ケースとしては次のようなものが考えられます。

  • アプリ自体は無料であるが、高度なサービスや機能を利用する場合には料金が課金される、「フリーミアム」モデルを作成する。
  • ゲーム体験を充実させるために、通貨、追加アクション、ライフなどのアイテムをユーザーが購入できるようにする。
  • ユーザーがコンテンツへのアクセス権限を購入したら、ボーナスステージやミニゲームの利用制限を解除し、利用できるようにする。
  • アプリ内で提供されるコンテンツをユーザーが定期購入できるようにする。

購入フロー、支払い処理、アプリへのレシートの提供、購入可能なコンテンツの権限の管理などの詳細は、アプリ内課金APIによって処理されます。したがって、そうした処理を行うためのコードを開発者側で実装する必要はありません。

IAPでのAmazonの役割

Amazonアプリストアは、アプリ内課金APIのワークフローにおいて不可欠の役割を担っています。ユーザーがアイテムの購入を決定する時から、レシート (購入が正常に行われた場合) またはステータスコード (購入が失敗した場合) をAmazonがアプリに届けるまでの購入ワークフローをAmazonが実行します。課金ダイアログや、トランザクションのタイムアウトロジック、「ありがとうございます」ダイアログを開発者側で作成する必要はありません。これらトランザクションに関する要素の全てを、Amazonアプリストアが提供します。

ユーザーが購入手続きを開始すると、Amazonアプリストアクライアントアプリが最前面表示されてAmazonブランドのユーザーインターフェイスを表示し、トランザクションを完了できます。下記の購入ワークフローの全ての段階において、このアプリがユーザーインターフェイスを表示します。

  • 購入可能アイテムを表示するロジック
  • 購入の実行
  • 前提条件またはエラー状況の処理

購入に失敗した場合は、Amazonアプリストアからユーザーに向けて関連するメッセージが表示されます (アプリからはメッセージを表示しないで下さい)。たとえば、登録しているクレジットカードの情報が無効なユーザーは、Amazonアプリストアによって、支払い情報の変更ページにリダイレクトされます。購入フローに関連する確認画面やダイアログを、開発者が独自に割り込ませてはいけません。

次の表は、IAP実装時に必要な処理を、アプリ側で実装する必要があるものとAmazonアプリストアが提供するものに分けてまとめています。

処理
アプリ
Amazon
アプリ内アイテムのカタログをユーザーに提示し、購入を促す。
有料の機能を有効化する。
購入フローを管理する。
支払い処理を実行する。
支払い処理のセキュリティを含め、Amazonプラットフォームと安全な通信を行う。
非消費型アイテムを確認し、購入があった際のレシートを検証する。
定期購入型アイテムの自動更新による支払いを管理する。
非消費型アイテムを取り消す時の支払いを管理する。
ユーザーにコンテンツを提供する前に、定期購入型アイテムと非消費型アイテムのレシートを検証する。
リモートで配信されるコンテンツをダウンロードする。
ダウンロードされたデジタルアイテムを表示、使用する。
ユーザーによる購入と消費型アイテムの増減を追跡する。
注: Amazonでは、アプリ内アイテムの購入について返金を行いません。

IAPのコンポーネント

IAPを初めて使用する場合は、次のコンポーネントの使い方を学ぶ必要があります。これらのコンポーネントは、いずれもIAP機能の実装に関係するものです。

名前 説明 ドキュメント (Androidアプリ) ドキュメント (ウェブアプリ)
IAP SDK アプリ内課金を処理しアイテムを付与するためにIAP SDKを利用します。 IAPの実装を始める ウェブアプリのアプリ内課金APIについて
IAP SDKリファレンス In-App Purchasing API 2.0 Reference (アプリ内課金API 2.0リファレンス) ウェブアプリAPIリファレンス
Amazonアプリストア 支払い処理、警告、アイテム付与などのバックエンド機能を処理します。 N/A N/A
App Tester Amazonアプリストアでアプリを公開する前にローカル環境でテストします。 IAPのテスト IAPのテスト
Receipt Verification Service (RVS) トランザクションのレシートの有効性を検証します。サンドボックス環境および本番環境に対応しています。 アプリのレシート検証サービス (RVS) アプリのレシート検証サービス (RVS)
ライブアプリテストサービス 指定したユーザーグループに対し、本番環境でアプリのベータテストを行います。 ライブアプリテスト ライブアプリテスト

アプリ内課金の種類

IAPを実装する場合、アプリからユーザーに提供するアイテムの種類を定義する必要があります。また、購入されたアイテムの配信方法を決める必要もあります。このセクションでは、どういった購入方法がIAPでサポートされているかについて簡単に説明します。

購入可能なアイテムとして許可されているかどうかについては、Amazon Developer Services Agreementを参照してください。

購入可能アイテムの種類

IAPでは、3種類の購入可能アイテムを実装することができます。

  • 消費型アイテム: 購入後にアプリ内で使用されるもの。追加ライフ、追加アクション、ゲーム内で使用する通貨などがあります。消費型アイテムは複数回購入することが可能です。
  • 非消費型アイテム: アプリまたはゲーム内の、機能やコンテンツの使用制限をアンロック (解除) するために1回だけ購入するもの。
  • 定期購入型アイテム: プレミアムコンテンツやプレミアム機能の使用を期限付きで提供するもの。

コンテンツの種類と配信フロー

IAPは、大きく分けて2種類のコンテンツ配信フローをサポートしています。すぐに使用できるコンテンツと、配信型のコンテンツです。

  • すぐに使用できるコンテンツ
  • 配信型のコンテンツ

すぐに使用できるコンテンツ

すぐに使用できるコンテンツとは、アンロック (制限解除) されたコンテンツか、購入と同時にユーザーが使用できるようになるコンテンツを指します。この配信モデルでは、必要な要素がすべて最初からアプリに含まれているため、ユーザーがアイテムを購入すると同時に、すぐに使用できるようになります。消費型、非消費型、定期購入型の3種類の購入可能アイテムすべてにおいて、即時利用できるよう設定可能です。

購入可能アイテムそれぞれに一意の識別コード (SKU)、ユーザーにカタログを提示する機能、トランザクションに成功すると購入可能アイテムのロックが解除されるロジックが、アプリ内に含まれている必要があります。

配信型のコンテンツ

配信型のコンテンツを選ぶと、新しく使用可能になったコンテンツがユーザーに提供されます。この配信モデルでは、ユーザーが新しいコンテンツをサーバーからアプリにダウンロードすることで、そのコンテンツを使用できるようになります。定期購入型アイテムは、典型的な配信型コンテンツの例だと言えます。

購入可能アイテムそれぞれに一意の識別コード (SKU)、ユーザーにカタログを提示する機能、トランザクションに成功するとコンテンツをダウンロード・保持・利用できるロジックが、アプリ内に含まれている必要があります。

SKU

SKU (Stock Keeping Unit) は、個々の購入可能アイテムに付与された、一意の識別コードです。SKUは、開発者 (正確には、開発者ポータルに登録されている開発者アカウント) ごとに一意です。最大150文字の、任意の文字列で構成します。使用可能な文字は、a~z、A~Z、0~9、アンダースコア、ピリオド、ダッシュで、大文字と小文字は区別されます。購入可能アイテムとSKUは1対1で対応しています。PurchasingManagerというヘルパークラスを使用して、SKU値をアプリからクライアントに渡します。クライアントはSKUに基づいて、ユーザーが何を購入しようとしているか識別し、それに応じて購入フローを管理します。

定義するすべての購入可能アイテムに、それぞれ一意のSKUを指定する必要があります。SKUは開発者アカウント全体で一意となるようにしてください。複数のアプリのSKUを申請する際にも、全体で重複がないことを確認する必要があります。

SKUを使える状態にするには、開発者ポータルでの設定が必要です。SKUの設定方法については、よくある質問を参照してください。

アプリの申請プロセス

IAPを組み込んだアプリをAmazonアプリストアに申請する前に、アプリ内課金アイテムを作成、申請する必要があります。Amazonアプリストアは、アプリとアプリ内課金アイテムの両方が申請されるまでアプリのテストを行いません。

開発者コンソールから、アプリ内課金アイテムのカタログを作成・管理することができます。アプリ内課金アイテムを作成・申請するを参照してください。

一度に複数のアプリ内課金アイテムの作成や変更を行うこともできます。IAP一括申請用のCSVファイルを参照してください。

アプリの申請後にアプリ内課金アイテムの追加や編集を行った場合、新規追加もしくは変更したアイテムだけでなく、アプリ自体をAmazonアプリストアに再申請する必要があります。