開発プロセス全体を通して統合をテストする必要があります。開発フェーズでテストを行うには、ライセンス テスターと Play Billing Lab を利用して、このセクションで説明するシナリオを実行することをおすすめします。
ライセンス テスター
ライセンス テスターを構成するには、アプリ ライセンスを使用したアプリ内課金のテストをご覧ください。
ライセンス テスターには、次のような利点があります。
- 通常、Google Play Billing Library は、署名されておらず、Google Play にアップロードされていないアプリに対してブロックされます。ライセンス テスターはこのチェックをバイパスできます。つまり、テスト用にアプリをサイドローディングできます。デバッグ署名付きのデバッグビルドを使用するアプリでも、アプリの新しいバージョンにアップロードする必要はありません。パッケージ名は、Google Play 用に構成されたアプリのパッケージ名と一致している必要があります。また、Google アカウントは、Google Play Console アカウントのライセンス テスターである必要があります。
- ライセンス テスターは、テスト用のお支払い方法を利用できます。これにより、テスターが購入時に実際のお金を請求されることがなくなります。テスト用のお支払い方法を使用して、支払いが不承認になった場合など、特定の状況をシミュレートすることもできます。図 1 は、購入フローに表示されるテスト用のお支払い方法を示しています。
- ライセンス テスターは、定期購入の機能を迅速にテストすることができます。
テスト購入プロセスに関する追加情報:
- テスト購入では、実際の購入と同じアプリ購入フローを使用します。
- テスト購入では、税金は計算されません。
- Google Play の購入ダイアログの中央に、テスト購入であることを示す通知が表示されます。
購入に使用しているアカウントは、購入ダイアログを開いて確認できます。次の点にご注意ください。
- テストアカウントは、テスターの Android 搭載デバイスに設定されている必要があります。
- デバイスに複数のアカウントがある場合、購入はアプリをダウンロードしたアカウントで行われます。
- どのアプリもアプリをダウンロードしていない場合は、最初のアカウントで購入が行われます。
Google Play のテストトラックを使用して、QA チームが新しいリリースを認定できるようにするなど、配布前の検証を行います。テストトラックを使用すると、ライセンス テスターは Google Play から未公開バージョンのアプリをインストールして評価できます。一般ユーザーは、標準のお支払い方法を使用して実際の購入を行うことができます。
テストトラックを使用して Google Play Billing Library 統合をテストするには、次の手順を実施します。
- アプリをテストトラックに公開します。なお、アプリをテストトラックに公開してから、テスターがアプリを利用できるようになるまでに数時間かかることがあります。
- 各テスターがアプリのテストにオプトインしていることを確認します。テストのオプトイン URL には、テスターの役割に関する説明と、オプトインするためのリンクが表示されます。
Android 1.6 以降を搭載した Android 搭載ハードウェア デバイスで統合をテストできます。デバイスに最新バージョンの Google Play アプリがインストールされている必要があります。Android アプリの開発に使用するデバイスをセットアップする方法に関する一般的な情報については、ハードウェア デバイスの使用をご覧ください。
Play Billing Lab
Play Billing Lab は、Google Play の課金システムとの統合をテストするのに役立つ Android アプリです。デベロッパーは、このアプリを使用して、請求機能をテストし、迅速に統合して、安心してリリースできるようになります。Play Billing Lab は Google Play ストアからダウンロードしてインストールできます。
Play Billing Lab では、テストで次のことができます。
- Play Billing Lab 内から [Play の国] を変更し、テストに設定を適用します。これにより、テスターが実際にテストする場所に関係なく、さまざまな国や地域でカスタム ユーザー エクスペリエンスをテストできます。
- 同じアカウントで無料試用またはお試し特典をテストする
- 他の有効な定期購入者に影響を与えることなく、定期購入の価格変更をテストできます。
- [定期購入の状態の移行を加速する] を使用すると、定期購入の更新を加速できます。また、ワンクリックでテスト用の定期購入を猶予期間またはアカウントの一時停止状態に移行して、テストを高速化できます。
- 実際のお支払い方法でテストして、購入フローのリスクシグナルを回避する
- アプリ外で行われた購入をテストして、バックエンドで処理できることを確認する
1 回限りのアイテムをテストする
消費可能アイテムをテストする
消費可能アイテムをテストする場合は、次のようなさまざまな状況をテストします。
- ユーザーがアイテムを受け取った購入。ライセンス テスターでは、テスト用のお支払い方法(常に承認)を使用できます。
- お支払い方法への請求に失敗した購入。ユーザーはアイテムを受け取るべきではありません。ライセンス テスターでは、テスト用お支払い方法(常に不承認)を使用できます。
- アイテムを複数回購入できるようにする。
購入の処理の説明のとおりに、購入が適切に承認されることを確認します。ライセンス テスターからの購入の場合、アプリが購入を承認しないと、3 分後に払い戻され、キャンセルに関するメールが届きます。Google Play Console の [注文] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。
消費不可アイテムをテストする
非消費型アイテムは消費型アイテムと同じようにテストする必要がありますが、アプリ内でアイテムを再度購入できないことを確認する必要があります。2 種類の購入を処理するロジックは異なるため、非消費型アイテムと消費型アイテム(該当する場合)の両方について、購入の承認を確認してください。
保留中の購入をテストする
保留中の購入をテストします。保留中の購入は、購入ステータスが PURCHASED になり、アイテムが付与されるべきである状況です。ライセンスを持つテストユーザーは、2 つのテスト機器を利用できます。それらのテスト機器では、遅延処理されるお支払い方法(数分が経過すると支払いが自動的に完了またはキャンセルされる)をテストできます。
図 3 に示すように、遅延お支払い方法「スロー テストカード、数分後に不承認」を使用して購入します。アプリを再起動し、購入が付与されていないことを確認します。
図 3. 不承認となったスロー テストカードを使用して購入をテスト。 図 4 に示すように、遅延お支払い方法「スロー テストカード、数分後に承認」を使用して購入を行います。数分待ち、購入が許可されたことを確認します。
図 4. 承認されたスローテスト カードで購入をテストします。
詳細については、保留中の取引の処理をご覧ください。
ユーザーが開始したチャージバックをテストする
ライセンスを持つテストユーザーは、ユーザーが開始したチャージバックをシミュレートできるテスト機器を利用できます。
図 5 に示すように、テスト用お支払い方法「テストカード、承認後にチャージバック」を使用して購入を行います。その後すぐに、テスト購入が配信され、該当するサーフェスを介してチャージバックされたことがシステムに通知されます。たとえば、購入直後に PendingRefundReviewNotification が届きます。
図 5. 承認後にチャージバックされるテストカードで購入をテストします。
定期購入固有の機能をテストする
1 回限りのアイテムと定期購入の購入フローは似ていますが、定期購入の場合は、更新の承認や不承認などのシナリオが追加されます。更新をテストするには、図 1 に示すように、ライセンス テスターが利用できる「テストカード、常に承認」と「テストカード、常に不承認」のお支払い方法を使用します。2 つの支払い方法を使用することで、定期購入の購入後のシナリオをテストします。
1 回限りのアイテムと同じように、購入が購入の処理の説明のとおりに適切に承認されることを確認します。ライセンス テスターからの購入の場合、アプリが購入を承認しないと、3 分後に払い戻され、キャンセルに関するメールが届きます。Google Play Console の [注文] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。
更新期間
テスト定期購入は、実際の定期購入よりも短い間隔で更新されます。テスト定期購入は、無料試用期間とお試し期間を除いて、最大 6 回更新できます。
次の表に、さまざまな期間の定期購入のテスト更新時間を示します。表内の更新時間はおおよその値です。イベントの正確な時刻に若干の差異が生じることがあります。この変動を補うには、定期購入の有効期限が切れるたびに API を呼び出して現在のステータスを確認します。
| 本番環境用の定期購入の期間 | テスト用の定期購入の更新 |
| 1 週間 | 5 分 |
| 1 か月 | 5 分 |
| 3 か月 | 10 分 |
| 6 か月 | 15 分 |
| 1 年 | 30 分 |
無料試用などの時間ベースの定期購入機能も、テスト用に短縮されます。次の表に、時間ベースの定期購入機能に関連するテスト期間を示します。
| 機能 | テスト期間 |
| アカウントの一時停止 | 10 分 |
| 無料トライアル | 3 分 |
| 猶予期間 | 5 分 |
| お試し価格期間 | 定期購入のテスト期間と同じ |
| 一時停止(1 か月) | 5 分 |
| 一時停止(2 か月) | 10 分 |
| 一時停止(3 か月) | 15 分 |
| 価格引き上げの同意期間 (韓国(KR)地域にのみ適用) |
3 分 |
| 購入の承認 | 5 分 |
定期購入のステータス移行を加速する
また、Play Billing Lab とライセンス テスターを使用して、テスト用の定期購入の更新期間を短縮して定期購入のテストをスピードアップしたり、テスト用の定期購入を猶予期間またはアカウントの一時停止状態に移行して、次の手順で支払いの不承認シナリオをテストしたりすることもできます。
- [ダッシュボード] の [定期購入の設定] カードで [管理] をクリックします。
- テストする有効な定期購入を選択します。
- [Subscription state] プルダウン メニューをクリックします。
- ターゲットの状態をクリックして、サブスクリプションの状態を更新します。
プルダウン メニューでターゲットの定期購入の状態を選択すると、テスト用の定期購入の状態がすぐに更新されます。
次のことに注意してください。
- 定期購入のステータス移行の促進機能を使用する前に、テスト定期購入を承認する必要があります。
- テスト定期購入を猶予期間またはアカウントの一時停止状態に移行すると、お支払い方法が自動的に不承認になります。テスト定期購入を復元すると、お支払い方法は自動承認に復元されます。
- サブスクリプションの状態遷移プロセスが実行されるまでに数秒かかることがあります。
- 定期購入の状態遷移が進行中の場合、定期購入の価格変更機能は使用できません。
- 価格変更が有効になっているときにテスト用の定期購入を更新すると、ユーザーが同意している場合は、Google Play によって新しい価格が適用されます。ただし、新しい価格にユーザーの同意が必要で、ユーザーがまだ同意していない場合、Google Play は定期購入を解約します。
トライアル特典
Play Billing Lab のお試し特典テスト機能を使用すると、ライセンス テスターは、[無料試用またはお試し価格をテストする] チェックボックスをオンにして変更を適用することで、無料試用またはお試し価格を無制限にテストして使用できます。これにより、新規定期購入者のみが利用できるトライアル特典をテストするために、複数のアカウントを作成する必要がなくなります。
価格の変更
また、Play Billing Lab とライセンス テスターを使用して、他の有効な定期購入者に影響を与えることなく、定期購入の価格変更をテストすることもできます。手順は次のとおりです。
- [ダッシュボード] の [定期購入の設定] カードで [管理] をクリックします。
- テストする有効な定期購入を選択します。
- 新しい価格を入力します。
- テストの要件に応じて、[User opt-out] チェックボックスをオンまたはオフにします。
- [適用] をクリックします。
変更を適用すると、テスターのみを対象に、次回の更新から価格が更新されます。他のアクティブな定期購入者には影響しません。ライセンス テスターのすべてのルールがテスト定期購入に適用されます。テスターは、価格変更によってトリガーされるダウンストリーム プロセス(価格変更の通知など)についてアプリをテストできます。
テスト期間を計画する際は、以下の点に注意してください。
- ライセンス テスターは更新期間が短いため、コンソールからの価格移行が登録されない場合があります。価格変更の通知とメールを確実にテストできるようにするには、価格変更のトリガー後 1 時間以上経過してから請求を行う必要があります。
- 値下げには通知期間がありません。コホートへの移行後、直ちにユーザーに値下げが通知されます。この点はテストでも変更ありません。
- 値上げの場合のテスト通知回数は、以下のとおり実際の値上げと同じ方法で計算されます。
- 最初の請求は、必須の通知期間経過後の最初の請求日に行われます。
- 通知回数は、最初の請求日から遡って計算されます。
- 最後の通知は、請求対象期間に関係なく、常に請求の 1 分前に送信されます。
次の表に、実際の請求対象期間でのテスト請求とテスト通知の期間を示します。
| 実際の基本プランの請求対象期間 | テスト請求対象期間 | テスト通知期間(30 日前の通知でオプトインおよびオプトアウトする地域) | テスト通知期間(60 日前の通知でオプトアウトする地域) |
| 1 週間 | 5 分 | 5 分 | 10 分 |
| 1 か月 | 5 分 | 5 分 | 10 分 |
| 3 か月 | 10 分 | 3 分 | 6 分 |
| 6 か月 | 15 分 | 2 分 | 4 分 |
| 1 年 | 30 分 | 3 分 | 6 分 |
料金引き上げの同意
ユーザーの同意が必要な価格引き上げに関する情報は、purchases.subscriptionsv2.get API で入手できます。
Google Play は、価格の段階的引き上げが有効になる前に、該当するユーザー(ライセンス テスターを含む)に 2 回、プッシュ通知とメールで価格の段階的引き上げに関する通知を送信します。テストの通知期間は次のとおりです。
| 通知スケジュール | テスト通知期間 |
| 最初の通知 | 3 分 |
| 2 回目の(最終)通知 | 1 分 |
テストケース
[表示/非表示] をクリックして次のセクションを展開し、定期購入の統合の確認に使用するテストシナリオを表示してください。
保留中の取引をテストする
保留中の取引が正しく処理され、購入ステータスが PURCHASED になったときに利用資格が適切に更新されることをテストする必要があります。ライセンスを持つテストユーザーは、2 つのテスト機器を利用できます。それらのテスト機器では、遅延処理されるお支払い方法(数分が経過すると支払いが自動的に完了またはキャンセルされる)をテストできます。
図 9 に示すように、遅延お支払い方法「スロー テストカード、数分後に不承認」を使用して購入します。アプリを再起動し、購入が付与されていないことを確認します。
図 9. 不承認となったスロー テストカードを使用して購入をテスト。 図 10 に示すように、遅延お支払い方法「スロー テストカード、数分後に承認」を使用して購入を行います。数分待ち、購入が許可されたことを確認します。
図 10. 承認されたスローテスト カードで購入をテストします。
プロモーション コードをテストする
Google Play Console を使用して、独自のテスト用コードを作成できます。1 つのアプリで管理対象アイテムすべてにわたり、四半期ごとに作成できるプロモーション コードは 500 個までです。
次のプロモーション コードの利用シナリオをテストする必要があります。
- アプリ内で表示された購入ダイアログにプロモーション コードが入力されたとき。
- Google Play ストア アプリ内でプロモーション コードが利用されたとき。
- https://play.google.com/store で、左側のナビゲーションの [コードを利用] ボタンを使用してプロモーション コードを利用する場合。
上記のシナリオでは、できるだけ多くの方法でコードの利用をテストする必要があります。少なくとも、以下のテストを実施してください。
- アプリがインストールされる前の利用。
- アプリがフォアグラウンドで実行されているときの利用。このテストでは、Google Play ストア アプリを使用してテストするために別のデバイスが必要です。アプリのさまざまな画面から特典の利用をテストしてください。
- マルチ ウィンドウ モードでの利用。アプリと Google Play ストア アプリの両方が同時に表示されます。
各テストで、アイテムが正しく検出され、ユーザーに通知されることを確認します。
さまざまな地域で購入エクスペリエンスをテストする
Play Billing Lab アプリを使用すると、さまざまな地域で購入エクスペリエンスをテストできます。Play Billing Lab を使用するには、ライセンス テスターである必要があります。テストする手順は次のとおりです。
- アプリの請求ユーザーをライセンス テスターとして登録します。
- 同じユーザーで Play Billing Lab アプリにログインします。
- 必要な国を選択し、Play Billing Lab で変更を適用します。
テスト対象のアプリで購入フローを起動します。
図 11. さまざまな地域で購入エクスペリエンスをテストする。
Play Billing Lab を使用すると、実際にテストする人がいる場所に関係なく、あらゆる地域で購入できるかどうか、およびユーザー エクスペリエンスをテストできます。
実際のお支払い方法を使用して購入エクスペリエンスをテストする
Play Billing Lab Android アプリを使用すると、実際のお支払い方法で購入エクスペリエンスをテストできます。
実際のお支払い方法をテストする手順は次のとおりです。
- Google アカウント ユーザーをライセンス テスターとして登録します。
- 同じユーザーで Play Billing Lab アプリにログインします。
- Play Billing Lab アプリで実際のお支払い方法を有効にします。
- テスト対象のアプリを再起動して購入フローを起動します。
未公開アプリの費用上限
ドラフト段階のアプリまたは内部テストトラックに公開されているアプリには、費用上限が適用されます。
Google Play では、次の上限が適用されます。
- 1 日あたりのトランザクション数: ユーザーが 1 日にすべての非公開アプリで行うことができるトランザクションの数。
- 注文値: 個々のトランザクションの最大金額。
- 1 日の合計支出額: 公開されていないすべてのアプリにおけるユーザーの 1 日の累計支出額。
これらの上限は 24 時間ごとにリセットされます。
アプリのテスト中にユーザーがこれらの上限を超えると、購入カートにエラー メッセージが表示され、取引がブロックされます。
アプリ外で行われた購入をテストする
Play Billing Lab アプリを使用すると、アプリ外で取得した利用資格のエンドツーエンドのエクスペリエンスをテストできます。Play Billing Lab を使用するには、テストするアプリのライセンス テスターである必要があります。
ステップ 1 - テストを構成する
- アプリの課金ユーザーをライセンス テスターとして登録します。
- Google Play ストアを開き、同じユーザーでログインします。
- Play Billing Lab アプリを開き、同じユーザーでログインします。
- [アプリ外で行われた購入] テストカードを選択します。
- 省略可: テスト対象の国を選択し、Play Billing Lab で変更を適用します。
- 国を選択しない場合、Play Billing Lab はライセンス取得済みのテスト アカウントの Play の国を使用します。
- テストするアプリとアイテム(SKU)の情報を入力します。
- テストする特定の購入オプション、基本プラン、特典を選択します。
- [テストを開始] をクリックします。
ステップ 2 - アプリ外のアイテムを取得する
- 注目のアイテム
- おすすめの購入アイテム(購入を中止した後)
- Play Games の特典
ステップ 3 - 利用資格を処理して提供する
アプリは、アプリ外で行われた購入を検出し、該当するユーザーにアイテムを配信する必要があります。プロセスの詳細については、購入を処理するをご覧ください。
注目のプロダクト
- Google Play ストアを開き、Play Billing Lab でテストを構成するために使用したのと同じライセンス取得済みテスターのアカウントでログインします。
- Google Play ストアがすでに開いている場合は、一度閉じてから再起動します。
- アプリの詳細ページに移動します。
- このページに商品が表示されます。
- アイテムを選択して購入を完了します。
おすすめの購入アイテム
カートが放棄された後:
- アプリを再起動します。
- アプリで 1 回限りのアイテムの購入フローを開始します。
- 取引を完了せずに、購入カートのダイアログを閉じるか、放棄します。
- カート放棄の購入に関する推奨事項を確認します。
- 推奨事項を承認して購入を完了します。
Play Games の特典
[報酬を付与] をクリックして、Google Play がユーザーに報酬を付与するシミュレーションを行います。追加の特典を付与するには、既存の特典を処理する必要があります。