Google Play Billing Library 統合をテストする

開発プロセス全体を通して統合をテストする必要があります。開発段階でテストするには、「ライセンス テスター」を利用して、このトピックで説明しているシナリオを実践することをおすすめします。ライセンス テスターを構成する手順については、アプリ ライセンスを使用したアプリ内課金のテストをご覧ください。

ライセンス テスターには、次のような利点があります。

  • 通常、Google Play Billing Library は、未署名で Google Play にアップロードされていないアプリに対してはブロックされます。ライセンス テスターはこのチェックを回避できます。つまり、デバッグ署名を持つデバッグビルドを使用しているアプリであっても、新しいバージョンのアプリをアップロードすることなく、テスト用にアプリをサイドローディングできます。ただし、パッケージ名は、Google Play 用に構成されたアプリのパッケージ名と一致する必要があります。また、Google アカウントは、Google Play Console アカウントのライセンス テスターでなければなりません。
  • ライセンス テスターは、購入に対して実際の課金が行われないテスト用支払い方法を利用できます。テスト用支払い方法は、支払いが承認されないなどの特定の状況のシミュレートにも使用します。購入フロー内に表示されるテスト用支払い方法を図 1 に示します。
  • ライセンス テスターは、定期購入の機能を迅速にテストすることができます。
ライセンス テスターはテスト用支払い方法を使用できる
図 1. ライセンス テスターはテスト用支払い方法を使用できる

テスト購入プロセスに関する追加情報:

  • テスト購入では、実際の購入と同じアプリ購入フローを使用します。
  • テスト購入では、税金は計算されません。
  • Google Play の購入ダイアログの中央に、テスト購入であることを示す通知が表示されます。

購入を行っているアカウントは、購入のダイアログを展開することで確認できます。次の点にご注意ください。

  • テスト アカウントは、テスターの Android デバイス上に存在する必要があります。
  • デバイスに複数のアカウントがある場合、アプリをダウンロードしたアカウントで購入が行われます。
  • いずれのアカウントでもアプリをダウンロードしていない場合は、最初のアカウントで購入が行われます。

アプリを配信する前に、Google Play テストトラックを利用して、その他の検証を行うことができます。たとえば、テストトラックを利用して、QA チームに新しいリリースを評価してもらうこともできます。

テストトラックを使用すると、ユーザーは Google Play からアプリをインストールして、未公開のアプリのバージョンをテストできます。ユーザーは、Google Play 内のどの支払い方法を使用しても、実際の購入を行うことができます。

テストトラックを使用して Google Play Billing Library 統合をテストするには、次の手順を実施します。

  1. テストトラックにアプリを公開します。テストトラックにアプリを公開した後、テスターがアプリを利用できるまでに数時間かかることがあります。
  2. 各テスターはアプリのテストにオプトインする必要があります。テスト用オプトイン URL には、テスター向けの注意事項とオプトイン確認のリンクが表示されます。

Android 1.6 以上を搭載するハードウェア デバイスであれば、統合をテストできます。ただし、Google Play アプリの最新バージョンがデバイスにインストールされている必要があります。Android 向けアプリの開発に使用するデバイスのセットアップ方法については、ハードウェア デバイスを使用するをご覧ください。

1 回限りのアイテムをテストする

消費可能アイテムをテストする

消費可能アイテムをテストするときは、次のようなさまざまな状況でテストすることをおすすめします。

  • ユーザーがアイテムを受け取った購入。ライセンス テスターの場合は、「テスト支払い方法 - 常に承認」を使用できます。
  • 支払い方法に請求できず、ユーザーがアイテムを受け取れない購入。ライセンス テスターの場合は、「テスト支払い方法 - 常に不承認」を使用できます。
  • アイテムを複数回購入できるようにする。

また、購入が、購入の処理の説明のとおりに、適切に承認されることを確認する必要もあります。ライセンス テスターからの購入の場合、アプリが購入を承認しないと、3 分後に払い戻され、キャンセルに関するメールが届きます。Google Play Console の [注文] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。

消費不可アイテムをテストする

消費不可アイテムは、消費可能アイテムと同じようにテストする必要がありますが、アプリ内でアイテムを再度購入できないことを確認する必要があります。2 つのタイプの購入を処理するロジックはそれぞれ異なるため、消費不可アイテムと消費可能アイテムの両方について、購入の承認を確認してください(該当する場合)。

保留中の購入をテストする

保留中の購入をテストする必要があります。保留中の購入は、購入ステータスが PURCHASED になり、アイテムが付与されるべきである状況です。ライセンスを持つテストユーザーは、2 つのテスト機器を利用できます。それらのテスト機器では、遅延処理されるお支払い方法(数分が経過すると支払いが自動的に完了またはキャンセルされる)をテストできます。

  1. 図 2 に示すように、遅延お支払い方法「スロー テストカード、数分後に不承認」を使用して購入します。アプリを再起動し、購入が付与されていないことを確認します。

    不承認となったスロー テストカードを使用して購入をテストする
    図 2. 不承認となったスロー テストカードを使用して購入をテスト。

  2. 図 3 に示すように、遅延お支払い方法「スロー テストカード、数分後に承認」を使用して購入を行います。数分待ち、購入が許可されたことを確認します。

    承認されたスローテスト カードで購入をテストする
    図 3. 承認されたスローテスト カードで購入をテストします。

詳細については、保留中の取引の処理をご覧ください。

定期購入固有の機能をテストする

1 回限りのアイテムと定期購入の購入フローは似ていますが、定期購入の場合は、更新の承認や不承認などのシナリオが追加されます。更新をテストするには、図 1 に示すように、ライセンス テスターが利用できる「テスト支払い方法 - 常に承認」と「テスト支払い方法 - 常に不承認」を使用できます。2 つの支払い方法を使用することで、定期購入の購入後のシナリオをテストします。

1 回限りのアイテムと同じように、購入が購入の処理の説明のとおりに適切に承認されることを確認する必要もあります。ライセンス テスターからの購入の場合、アプリが購入を承認しないと 3 分後に払い戻しが行われ、キャンセルに関するメールが届きます。Google Play Console の [注文] タブで、3 分後に払い戻しが行われたかどうかを確認することもできます。

更新期間

テスト用定期購入は、実際の定期購入よりも短時間で更新され、最大で 6 回更新できます。

テスト用定期購入の更新時間を下記の表に示します。表内の更新時間はおおよその値です。実際の時間は多少異なる可能性があります。この相違を補正するには、定期購入の有効期限ごとに API を呼び出して現在のステータスを確認してください。

本番環境用の定期購入の期間 テスト用の定期購入の更新
1 週間 5 分
1 か月 5 分
3 か月 10 分
6 か月 15 分
1 年 30 分

無料試用など、時間ベースの定期購入機能も、テスト用定期購入の場合は期間が短くなっています。時間ベースの定期購入機能のテスト期間を次の表に示します。

機能 テスト期間
購入の承認 5 分
無料試用 3 分
お試し価格期間 定期購入のテスト期間と同じ
猶予期間(3 日間と 7 日間の両方) 5 分
アカウントの凍結 10 分
一時停止(1 か月) 5 分
一時停止(2 か月) 10 分
一時停止(3 か月) 15 分

価格の変更

ライセンス テスターを使用して、価格変更をテストすることもできます。テスト期間を計画する際は、以下の点に注意してください。

  • ライセンス テスターは更新期間が短いため、コンソールからの料金の移行が登録されていない場合があります。価格変更の通知とメールを確実にテストできるようにするには、価格変更のトリガー後 1 時間以上経過してから請求を行う必要があります。
  • 値下げの場合は通知期間がありません。コホートへの移行後、直ちにユーザーに値下げが通知されます。この点はテストでも変更ありません。
  • 値上げの場合のテスト通知回数は、以下のとおり実際の値上げと同じ方法で計算されます。
    • 最初の請求は、必須の通知期間経過後の最初の請求日に行われます。
    • 通知回数は、最初の請求日から遡って計算されます。
    • 最後の通知は、請求対象期間に関係なく、常に請求の 1 分前に送信されます。

次の表に、実際の請求対象期間でのテスト請求とテスト通知の期間を示します。

実際の基本プランの請求対象期間 テスト請求対象期間 テスト通知期間(30 日前の通知でオプトインおよびオプトアウトする地域) テスト通知期間(60 日前の通知でオプトアウトする地域)
1 週間 5 分 5 分 10 分
1 か月 5 分 5 分 10 分
3 か月 10 分 3 分 6 分
6 か月 15分 2 分 4 分
1 年 30 分 3 分 6 分

テストケース

[表示 / 非表示] をクリックして次のセクションを展開し、定期購入の統合の確認に使用するテストシナリオを表示してください。

プロモーション コードをテストする

Google Play Console を使用すると、独自のテスト用のコードを作成できます。プロモーション コードは、1 つのアプリで管理対象アイテムすべてにわたり、四半期ごとに 500 個しか作成できないことに留意してください。

次のプロモーション コードの利用シナリオをテストする必要があります。

  • アプリ内で表示された購入ダイアログにプロモーション コードが入力されたとき。
  • Google Play ストア アプリ内でプロモーション コードが利用されたとき。
  • 左側のナビゲーションの [コードを利用] ボタンを使用して https://play.google.com/store でプロモーション コードが利用されたとき。

上記のシナリオでは、できるだけ多くの方法でコードの利用をテストする必要があります。少なくとも以下のテストを行うことをおすすめします。

  • アプリがインストールされる前の利用。
  • アプリがフォアグラウンドで実行されているときの利用。このテストでは、Google Play ストア アプリを使用してテストする別のデバイスが必要です。アプリのさまざまな画面から利用のテストを行ってください。
  • アプリと Google Play ストア アプリの両方が同時に表示されるマルチウィンドウ モードでの利用。

各テストで、アイテムが正しく検出され、ユーザーに通知されることを確認します。

さまざまな地域で購入エクスペリエンスをテストする

ライセンス テスターは、どの地域においても、その国での実際のお支払い方法を持たずに、購入フローをテストできます。テストする手順は次のとおりです。

  1. 新しい Gmail アカウントを作成します。アカウントはどの国でも作成できます。
  2. そのユーザーをライセンス テスターとして設定します。
  3. テストする国に VPN 接続します。
  4. 購入フローを起動します。

Google Play ストアのデータとキャッシュを削除してから、ほかにテストする国でステップ 3 と 4 を繰り返すことができます。新しい国に切り替えた後、以前の国に関するデータを削除するために、Google Play ストアのデータを消去する必要があります。

この方法で購入をテストすることで、実際にテストする人がいる場所に関係なく、あらゆる地域で購入できるかどうか、およびユーザー エクスペリエンスをテストできます。