アプリ内課金(IAP)は、開発者がアプリで収益を上げるための有効な手段の1つです。このため、アプリのリリース前に購入フローをテストし、すべてが適切に機能することを確認する必要があります。IAPシステムを十分にテストすることで、スムーズなユーザーエクスペリエンスを確保し、購入時のエラーを回避します。これにより、ユーザーの満足度が高まり、購入するたびに収益を上げることができます。
IAPフローのテストでは、購入機能の確認、レシートの検証、エッジケース(購入エラーや購入の中断など)への対応などを行います。現実のユーザーの操作をシミュレーションすることで、アプリの公開前に潜在的な問題を特定して解決できます。
IAPをテストするための主なツールは2つあります。 1つ目は、サンドボックスモードで単独のローカルテストを実施するApp Testerです。2つ目は、公開前に実際のテスターがライブ環境でアプリをテストするライブアプリテスト(LAT)です。
本ガイドでは、LATを使用したIAPのテストについて取り上げます。このテストにより、幅広いデバイスでスムーズなユーザーエクスペリエンスを実現し、短期間でアプリを公開して迅速にフィードバックを得ることができます。
LATには以下の機能が備わっており、アプリを一般公開に向けて準備する際に重要な役割を果たします。
LATを利用すると、アプリの安定性に対する信頼を強化し、ユーザーエクスペリエンスを改善できます。また、アプリの公開後に発生する可能性がある重大な問題を回避できます。
アプリでデジタルコンテンツを購入できるようにする場合は、Amazonアプリストアのポリシーに従い、Amazon IAP APIを使用する必要があります。
本ガイドに沿って作業を進めるには、Kotlinで開発されたアプリのこちらのGitHubリポジトリ(英語のみ)のクローンを作成してください。マガジンを簡単にIAP定期購入できるこのアプリについては、本ガイドで後述します。
アプリがIAP APIの認証を得るには、Amazonアプリストアによって生成されるパブリックキーが必要です。
1. 開発者コンソールのダッシュボードに移動します。
2. 上部のナビゲーションバーで [アプリ&サービス] をクリックします。
3. アプリを開きます。まだ作成していない場合は、[新規アプリを追加] をクリックします。
4. 必要な情報を入力し、[手順1: アプリファイルをアップロード] の下部までスクロールします。
5. [関連情報] セクションで、[パブリックキーを表示] をクリックします。
6. キー(AppstoreAuthenticationKey.pem)をローカルコンピューターにダウンロードします。
7. このキーをプロジェクトにコピーします。Kotlinプロジェクトの場合、キーはapp/src/main/assetsフォルダに入ります。
8. アプリの一意のパブリックキーを取得できたため、APKバンドルファイルを作成します。
LATで新しいテストを設定するには、開発者コンソールに戻り、[ライブアプリテスト] セクションに進みます。
1. アプリの申請画面内で、横のナビゲーションバーにある [ライブアプリテスト] をクリックします。
2. [新規ライブアプリテストを作成] をクリックします。
3. 最近作成したAPKファイルをローカルコンピューターからアップロードします。
アプリのこのバージョンには、必要なアプリ内課金機能に加えて、一意のパブリックキーが含まれている必要があります。本番リリースと同じバージョンを使用し、問題を効果的に解決できるよう、適切なロギングツールとデバッグツールを組み込んでください。
アップロードされたファイルをAmazonが確認し終えると、次のようにファイルが表示されます。
4. 必要な情報を追加します(この段階ではテスターの追加は不要です)。
5. [テストを送信] をクリックします。
アプリのLATバージョンを作成したら、テスト用のIAPアイテムを追加する必要があります。
1. 横のナビゲーションバーにある [アプリ内課金(IAP)アイテム] をクリックします。
2. ページの上部で [新しいIAPを追加] をクリックします。
購入可能なアイテムには次の3つのカテゴリーがあります。
3. [定期購入型アイテムを追加] を選択します(このチュートリアル用に選択するだけで、後から別のタイプを設定できます)。
4. タイトルとSKUを入力します。
アイテムごとにSKUが必要です。SKUは、単一のアプリ内だけでなく、開発者アカウント全体で一意である必要があります。
5. [定期購入型アイテムを追加] をクリックします。
6. 必要な情報を追加します。
アプリと同様、[表示タイトル] はユーザーに表示されるタイトルで、内部での識別を目的とした [定期購入型アイテムのタイトル] とは異なります。
7. [新規期間を追加] をクリックします。
定期購入型アイテムが消費型アイテムおよび非消費型アイテムと異なる点は、定期購入しているユーザーへの自動課金に使用される定期購入型アイテムの期間(毎月、3か月ごとなど)を指定できることです。
8. 期間ごとに一意のSKUと定期購入型アイテムの価格を指定します。
9. [追加] をクリックします。
10. 期間を追加し終えたら、ページ上部の [IAPを申請] ドロップダウンボタンをクリックします。
次の2つのオプションが表示されます。
11. このチュートリアルでは [テスト用に申請] を選択します。
CSVファイル(スプレッドシート)を使用した一括アップロードによって、複数のアイテムをまとめて追加することもできます。この方法は、複数の購入可能アイテムがあるアプリに便利です。詳細については、CSVファイルでアプリ内課金(IAP)アイテムを一括申請する方法を参照してください。
次に、LATテストセッションにテスターを追加します。
1. 横のナビゲーションバーで [テスターの管理] をクリックします。
2. [新規テスターを追加] をクリックします。
3. 追加するテスター全員のEメールアドレスを入力します。
個々のテスターをグループにまとめると効率的に管理できます。
4. この情報を提供するために必要な権限を持っていることを確認するチェックボックスをオンにします。
5. [追加] をクリックします。
テスターをLATテストセッションに追加すると、Eメールとデバイスへのプッシュ通知の両方で、対象のテスターに招待が送信されます。招待が届くまでに数分かかる場合があります。
テスターがアプリのテストに関する招待をEメールで受け取ります。
この招待をテスターが承諾する場合は、該当するAmazonマーケットプレイスのリンクをクリックします。初めてLATテスターになる場合は、LATのサービス利用規約への同意を求められます。
続けて、テスターが [1-Clickでダウンロード] をクリックすると、テスターのAmazonデバイスにAmazonからアプリが配信されます。
テスターは即座にアプリの操作を開始できます。特に、現実のシナリオと同様にアプリ内課金を操作できる点が重要です。
または、デバイスでプッシュ通知を受け取り、LATをダウンロードすることもできます。Eメールまたはプッシュ通知からLATをダウンロードすると、LATテストセッションに参加していること、およびテスト対象のアプリが正常にインストールされたことを伝える別の通知を受け取ります。
この時点で、テスターはAmazonアプリストアからダウンロードした本番環境用のアプリと同様にアプリを操作できるようになります。ただし、IAPで購入してもテスターに課金されることはないという点が大きく異なります。
このデモでは、テスターがアプリを開き、[Buy Subscription] をクリックします。
このボタンをクリックするとIAP APIが呼び出され、IAP SKU(デモアプリコードにハードコード済み)に関連する商品データを取得します。テスターは、定期購入のIAPに関する情報と定期購入型アイテムの期間を確認します。
テスターが期間を選択して [Subscribe] をクリックすると、アプリから定期購入の確認メッセージが表示されます。
開発者は、LATを使用して、IAPトランザクションフロー全体のアプリの動作と、IAP API呼び出しが適切に行われたことを確認できます。
定期購入を行うと、購入確認のEメールがテスターに届きます(価格を見れば、課金されていないことがわかります)。
テスターは、定期購入したIAPアイテムについて、Amazonアプリストアアプリで定期購入の確認と管理を行うことができます。
LATセッションを終了する準備が整ったら、開発者コンソールでアプリの [ライブアプリテスト] ページに戻り、テストを終了します。また、このページで新しいテストを開始したり、テストを公開用の申請に昇格したりすることもできます。
作成するIAPアイテムはすべて、その後の全LATテストセッションと、([テスト・公開用に申請] を選択した場合は)ライブの本番環境への昇格に利用できます。
LATテスターが非消費型アイテムまたは定期購入型アイテムのIAP購入を行うと、テストセッションの期間中はそれらがアカウントに残ります。テスターが購入した非消費型アイテムまたは定期購入型アイテムは、アプリの [テスターの管理] ページでリセットできます。対象のテスターを選択し、[アクションを選択] をクリックして、リセットするIAPの種類を選択してください。
開発者は、テストセッション全体でテストログのモニタリング、パフォーマンス指標の分析、テスターのフィードバックからの分析データの収集を行う必要があります。最終リリースの前にすべての問題に対処しておけば、アプリ公開時にユーザーにシームレスな購入エクスペリエンスを確実に提供することができます。
現実に即したテストの実施は、リリース前に潜在的な問題を特定するうえで不可欠です。アプリでIAPを使用するアプリ開発者は、商品データの取得、定期購入の確認、正常な購入など、さまざまな状況をシミュレーションする必要があります。
LATの結果を徹底的に見直すことで、すべての購入フローが想定の範囲内となります。ログとテスターからのフィードバックは、改善の必要がある領域を判断するための貴重な材料です。たとえば、遅延の問題やエラー処理に関して改善の必要がある可能性があります。さらに、購入時のネットワーク中断といったエッジケースに対処することで、より強固なアプリ内課金エクスペリエンスを実現できます。
アプリのIAPフローを徹底的にテストすることで、シームレスなユーザーエクスペリエンスを実現し、収益を最大限に高めることができます。現実の状況をシミュレーションしておけば、公開前にアプリのIAPフローが想定どおりに動作することを確認できます。
その他の分析データや詳細なテスト用リソースについては、以下を参照してください。