準備しています

このトピックでは、アプリ内でアイテムを販売するために必要な設定手順について説明します。この概要レベルの設定手順では、デベロッパー アカウントの作成、販売するアイテムの作成と構成、アイテムの販売と管理に使用する API の有効化と構成を行います。このトピックでは、アイテムのステータスが変化したときに通知を受け取れるようにリアルタイム デベロッパー通知を構成する方法についても説明します。

Google Play デベロッパー アカウントを設定する

Google Play でアプリとゲームを公開するには、Google Play Console を使用します。Google Play Console を使用して、請求関連のアイテムと設定を管理することもできます。

Google Play Console にアクセスするには、Google Play デベロッパー アカウントを設定する必要があります。

また、Google Play で有料アプリとアプリ内購入を販売するには、Google お支払いセンターでプロファイルを設定し、そのプロファイルを Google Play デベロッパー アカウントにリンクする必要があります。プロファイルをアカウントにリンクする方法と、リンク済みのアカウントとプロファイルがすでにあるかどうかを確認する方法については、Google Play デベロッパー アカウントをお支払いプロファイルにリンクするをご覧ください。

Google Play Console で請求関連の機能を有効にする

デベロッパー アカウントを設定したら、Google Play Billing Library を含むバージョンのアプリを公開する必要があります。この手順は、Google Play Console で請求関連の機能(販売するアイテムの構成など)を有効にするために必要です。

ライブラリへの依存関係を追加する

Google Play の課金システムを統合するには、まず Google Play Billing Library への依存関係をアプリに追加します。このライブラリを使用すると、Google Play に接続するための Android API にアクセスできます。そこから、購入情報へのアクセス、購入に関する最新情報の検索、ユーザーに新しい購入を促すメッセージの表示などを行うことができます。

Google Play Billing Library は、Google の Maven リポジトリから入手できます。次に示すように、アプリの build.gradle ファイルに依存関係を追加します。

Groovy

dependencies {
    def billing_version = "7.0.0"

    implementation "com.android.billingclient:billing:$billing_version"
}

Kotlin

dependencies {
    val billing_version = "7.0.0"

    implementation("com.android.billingclient:billing:$billing_version")
}

Kotlin を使用している場合、Google Play Billing Library の KTX モジュールに Kotlin 拡張機能とコルーチンのサポートが含まれているため、Google Play の課金システムを使用する際に慣用的な Kotlin コードを作成できます。これらの拡張機能をプロジェクトに含めるには、アプリの build.gradle ファイルに次の依存関係を追加します。

Groovy

dependencies {
    def billing_version = "7.0.0"

    implementation "com.android.billingclient:billing-ktx:$billing_version"
}

Kotlin

dependencies {
    val billing_version = "7.0.0"

    implementation("com.android.billingclient:billing-ktx:$billing_version")
}

このページで紹介する Kotlin のコードサンプルでは、可能な限り KTX を利用しています。

アプリをアップロードする

ライブラリをアプリに追加したら、アプリをビルドして公開します。この手順では、アプリを作成した後、内部テストトラックなどの任意のトラックに公開します。

アイテムを作成して構成する

アプリで Google Play 請求サービス機能を有効にしたら、販売するアイテムを構成する必要があります。

1 回限りのアイテムと定期購入を作成する手順は似ています。アイテムごとに、一意の商品 ID、タイトル、説明、価格情報を指定する必要があります。定期購入には、基本プランの更新の種類(自動更新または前払い)などの追加の必須情報があります。

Google Play Console には、アイテムの管理に使用できるウェブ インターフェースが用意されています。

  • 1 回限りのアイテムの作成と構成については、管理対象アイテムの作成をご覧ください。1 回限りのアイテムは、Google Play Console では「管理対象アイテム」と呼ばれます。

  • 定期購入の作成と構成については、定期購入の作成をご覧ください。

ウェブ インターフェースの代わりに、Google Play Developer API の inappproducts REST リソースを使用してアプリ内アイテムを、monetization.subscriptions REST リソースを使用して定期購入商品を管理することもできます。

Google Play Developer API を構成する

Google Play Developer API は、Android 上で Google Play Billing Library を補完するサーバー間 API です。この API は、購入の安全な確認やユーザーへの安全な払い戻しなど、Google Play Billing Library では提供されない機能を提供します。

Google Play の課金システムをアプリに統合する際には、Google Play Console で Google Play Developer API へのアクセスを構成する必要があります。手順については、Google Play Developer API のスタートガイドをご覧ください。

Google Play Developer API へのアクセスを構成したら、請求関連の機能にアクセスするために必要な支払いデータの表示権限を必ず付与してください。ベスト プラクティスと権限の詳細な構成方法については、デベロッパー アカウント ユーザーの追加と権限の管理をご覧ください。

リアルタイム デベロッパー通知を構成する

リアルタイム デベロッパー通知(RTDN)は、アプリ内でユーザーの利用権に変更が生じたときに Google から通知を受け取るメカニズムです。RTDN では Google Cloud Pub/Sub が使用されるため、デベロッパーが設定した URL に push されたデータまたはクライアント ライブラリによってポーリングされたデータを受け取ることが可能です。これらの通知を使用すると、Google Play Developer API をポーリングする必要がなくなり、定期購入の状態の変化にすぐに対応できます。なお、Google Play Developer API を非効率的に使用すると、API の割り当て制限を受ける可能性があります。

Cloud Pub/Sub は、独立したアプリ間のメッセージの送受信に使用できるフルマネージドのリアルタイム メッセージ サービスです。Google Play は、Cloud Pub/Sub を使用して、デベロッパーがサブスクライブしているトピックに関するプッシュ通知をパブリッシュします。

通知を受信するには、トピックに送信されたメッセージを消費するバックエンド サーバーを作成する必要があります。サーバーは、登録されたエンドポイントへの HTTPS リクエストに応答するか、または Cloud Pub/Sub クライアント ライブラリを使用することにより、それらのメッセージを消費できます。これらのライブラリは、さまざまな言語で利用できます。詳細については、このトピックの Pub/Sub サブスクリプションの作成セクションをご覧ください。

料金と割り当てを決定する

料金と割り当てについて詳しくは、料金割り当てをご覧ください。

データ使用量を見積もる

サブスクリプション通知のデータ部分は、1 つのリクエストあたり約 1 KB です。公開とプル サブスクリプションではそれぞれ別々のリクエストが必要です。つまり、各通知のデータは約 2 KB になります。1 か月あたりの通知数は、請求期間とユーザーの行動によって異なります。請求期間中、各ユーザーに関する通知を少なくとも 1 回受け取ります。

Cloud Pub/Sub をセットアップする

リアルタイム デベロッパー通知を有効にするには、まず自身の Google Cloud Platform(GCP)プロジェクトを使用して Cloud Pub/Sub を設定し、次にアプリへの通知を有効にします。

Cloud Pub/Sub を使用するには、Cloud Pub/Sub API を有効にした GCP プロジェクトが必要です。GCP と Cloud Pub/Sub に慣れていない場合は、クイックスタート ガイドをご覧ください。

トピックを作成する

通知を受信するには、Google Play による通知のパブリッシュ先となるトピックを作成する必要があります。トピックを作成するには、トピックを作成するに記載された手順を実施します。

Pub/Sub サブスクリプションの作成

トピックに公開されたメッセージを受信するには、そのトピックに対する Pub/Sub サブスクリプションを作成する必要があります。Pub/Sub サブスクリプションを作成する手順は次のとおりです。

  1. Cloud Pub/Sub サブスクライバー ガイドを確認し、サブスクリプションを push サブスクリプションと pull サブスクリプションのどちらとして構成するかを決定します。
    • push サブスクリプションの場合、Cloud Pub/Sub は HTTPS リクエストを発行することにより、安全なバックエンドに通知を送信できます。
    • pull サブスクリプションの場合、安全なバックエンド サーバーが Cloud Pub/Sub サーバーへのリクエストを開始してメッセージを取得する必要があります。
  2. サブスクリプションの追加の手順に沿って、サブスクリプションを作成します。

トピックに関する公開権限の付与

Cloud Pub/Sub では、トピックに通知をパブリッシュする権限を Google Play に付与することが必要です。

  1. Google Cloud Console を開きます。
  2. プロジェクトを選択し、左側ナビゲーションで [Pub/Sub] をクリックします。
  3. トピックを見つけて権限の詳細を開きます。

    権限トピックの構成にアクセスする
    図 1. 権限トピックの構成にアクセスする
  4. サービス アカウント google-play-developer-notifications@system.gserviceaccount.com を追加して、Pub/Sub パブリッシャーのロールを付与します。

    Google Play サービス アカウントを Pub/Sub パブリッシャーとして追加する
    図 2. Google Play サービス アカウントを Pub/Sub パブリッシャーとして追加する
  5. [保存] をクリックして、トピックの設定を完了します。

    構成されたトピック
    図 3. 構成されたトピック

アプリでリアルタイム デベロッパー通知を有効にする

アプリでリアルタイム デベロッパー通知を有効にする手順は次のとおりです。

  1. Google Play Console を開きます。
  2. アプリを選択
  3. [収益化] > [収益化のセットアップ] に移動します。
  4. ページの上部の [リアルタイム デベロッパー通知] までスクロールします。

    [リアルタイム デベロッパー通知] 欄
    図 4. [リアルタイム デベロッパー通知] セクション
  5. [リアルタイム通知を有効にする] をオンにします。

  6. [トピック名] に、先ほど構成した完全な Cloud Pub/Sub トピック名を入力します。トピック名は projects/{project_id}/topics/{topic_name} の形式で指定する必要があります。ここで、project_id はプロジェクトの一意の識別子、topic_name は先ほど作成したトピックの名前です。

  7. [テスト メッセージを送信] をクリックしてテスト メッセージを送信します。テスト パブリッシュを実行すると、すべてが適切に設定および構成されていることを確認するのに役立ちます。テスト パブリッシュが成功すると、成功したことを示すメッセージが表示されます。このトピックにサブスクリプションをアタッチしている場合は、テスト メッセージを受信します。

    pull サブスクリプションの場合は、Cloud Console でサブスクリプションに移動し、[メッセージを表示] をクリックして、メッセージの pull に進みます。Cloud Pub/Sub によって繰り返し配信されるのを避けるため、pull したメッセージの確認応答が必要です。push サブスクリプションの場合、テスト メッセージが push エンドポイントに配信されているかどうかを確認します。成功のレスポンス コードはメッセージの確認応答として機能します。

    パブリッシュが失敗すると、エラーが表示されます。トピック名が正しいかどうか、トピックに対する Pub/Sub パブリッシャー アクセス権が google-play-developer-notifications@system.gserviceaccount.com サービス アカウントに付与されているどうかを確認してください。

  8. 受け取る通知の種類を選択します。

    • 定期購入とすべての取り消し済みの購入に関する通知の受け取り - 定期購入と取り消し済みの購入に関するデベロッパー通知をリアルタイムで受け取ります。1 回限りのアイテムの購入に関する通知は届きません。
    • 定期購入と 1 回限りのアイテムに関するすべての通知を受け取る - すべての定期購入イベントと取り消し済みの購入イベントの通知を受け取ることができます。また、ONE_TIME_PRODUCT_PURCHASEDONE_TIME_PRODUCT_CANCELED など、1 回限りのアイテム購入イベントも受け取ります。これらの購入イベントについて詳しくは、1 回だけの購入のライフサイクルをご覧ください。
  9. [変更を保存] をクリックします。

構成を確認する

リアルタイム デベロッパー通知を受信するには、Cloud Pub/Sub トピックに送信されたメッセージを消費する安全なバックエンド サーバーを作成する必要があります。

前のセクションで説明したように、Google Play Console の [テスト メッセージを送信] ボタンを使用して構成をテストできます。バックエンド サーバーで通知の消費を構成していない場合は、gcloud コマンドライン ツールを使用して構成を確認できます。gcloud を使用してメッセージを処理する手順については、サブスクリプションからのメッセージの pull をご覧ください。

次のステップ