プロモーションを実装する

プロモーション(プロモーション コード)を実装して、限られた数のユーザーに 1 回限りのアイテムや定期購入の試用期間を無料で提供することができます。ユーザーはアプリや Google Play ストア アプリでプロモーション コードを入力し、アイテムや定期購入の試用期間を無料で利用できるようになります。プロモーション コードを使うことで、下記のようなさまざまなアイデアを駆使してユーザーを引き込むことができます。

  • イベントでプロモーション コード付きのカードを配布し、ユーザーがそのプロモーション コードを入力して特別なゲーム内アイテムをロック解除する
  • 自分の友人や家族と共有できるように、従業員にコードを配布する。
  • 特定の期間にアプリを購入したユーザーにプロモーション コードを送信する

定期購入については、次の点に注意してください。

  • プロモーション コードでは、無料の定期購入ではなく定期購入の無料試用を提供します。 無料試用期間が終わると、定期購入に自動で更新されます。
  • プロモーションで他の無料試用期間を延長することはできません。プロモーション コードを必要としない無料試用で定期購入が開始されている場合、元の無料試用期間よりもプロモーションの期間が優先されます。
  • カスタムコードは、新規登録者のみが使用できます。定期購入を利用したことがあるユーザーは、カスタムコードを使用できません。
  • 1 回限りのコードは、すべての登録者が使用できます。たとえば、無料試用の対象とならないユーザー(定期購入を利用したことがあるユーザーなど)でも、1 回限りのプロモーション コードによる無料試用は利用してもらうことができます。

Google Play Console を使用してプロモーション コードを割り当てます。プロモーション コードを作成するには、プロモーションの作成についての記事をご覧ください。

プロモーション コードを利用する

ユーザーは、次のいずれかの方法でプロモーション コードを利用することができます。

  • Google Play ストアのアプリにコードを手動で入力する。
  • Google Play の購入画面でお支払い方法の横にある下向き矢印をクリックして [コードを利用] をクリックする

図 1 は、下向き矢印が表示された購入画面です。図 2 には [コードを利用] が表示されています。図 3 はユーザーがプロモーション コードを入力したところを示しています。

図 1. Google Play の商品購入ダイアログ
図 2. [コードを利用] ボタンが表示されたお支払いダイアログ
図 3. プロモーション コード画面

プロモーション URL を生成する

ユーザーは Google Play ストアでプロモーション コードを手動で入力することで、プロモーション コードを利用できます。それとは別に、ユーザーを Google Play ストアに誘導する URL を生成し、[コードを入力] 欄にコードを自動入力することもできます。プロモーション コードの URL には次の形式を使用します。

https://play.google.com/redeem?code=promo_code

図 4 は Google Play アプリの [コードを利用] ダイアログを示しています。

図 4. Google Play アプリの [コードを利用] ダイアログ

ユーザーが [コードを利用] をクリックすると、アプリの最新バージョンがインストールされている場合は、アプリを開くよう求めるメッセージが Google Play ストアで表示されます。インストールされていない場合は、アプリを更新またはダウンロードするよう求めるメッセージが表示されます。

アプリでのプロモーション コードのサポート

プロモーション コードを識別して処理するには、アプリ内でも変更を加える必要があります。アプリの起動時や再開時に queryPurchases() メソッドを呼び出す必要があるからです。このメソッドは、ユーザーがプロモーション コードを利用して購入したものも含めて、現在の未消費の購入情報を一括して返します。コールバックはアクティビティの作成時と一時停止の解除時に呼び出されるため、最も簡単なアプローチは、アクティビティの onResume() メソッドで queryPurchases() を呼び出す方法です。onStart()onResume()queryPurchases() を呼び出すことで、アプリが実行されていない間にユーザーが行ったすべての購入とコードの利用を確実に調べることができます。さらに、アプリの実行中にユーザーが購入したことをなんらかの理由でアプリが見逃した場合でも、アクティビティが次に再開されたときに queryPurchases() を呼び出せばその購入を認識できます。

アクティビティの onPurchasesUpdated() メソッドは、購入が完了した時点を特定するレスポンス インテントを受け取ります。ただし、購入と消費のワークフローが完了されていない場合には、アプリは onStart()onResume()queryPurchases() を呼び出す必要があります。たとえば、ユーザーが正常にプロモーションコードを利用した後、アイテムを消費する前にアプリがクラッシュした場合でも、次の起動時にアプリが queryPurchases() を呼び出せば、購入についての情報を受け取ることができます。

また、ユーザーがアプリの実行中に Google Play ストア アプリでプロモーション コードを利用する場合もサポートする必要があります。アプリは onPurchasesUpdated() リスナーを介してコードの利用について確認することができます。