Skip to main content

Google Play Store から購入できる PlayFab バンドルをセットアップする

このチュートリアルでは、PlayFab バンドルを正常に作成し、プレイヤーが購入できるように Google マーケットプレイスのゲームに追加し、その中に含まれるアイテムを引き換える方法を説明します。

前提条件

  1. PlayFab の Game Manager 内のタイトル。
  2. 選択したタイトルと目的のマーケットプレイス間の既存の統合。
  3. Google Play で既に作成されて利用可能なアプリ。
    1. アプリで Google Play Android Developer API が有効になっていることを確認してください。

ステップ 1: バンドルを作成する

このチュートリアルでは、まず Google Play Consoleバンドル を作成します。

Google Play Console を使用してバンドルを作成する

  1. Google Play Console で目的の アプリ を開きます。
  2. 左側のナビゲーション バーで、Monetize セクションまでスクロールし、In-app products を選択します。 In-app products メニュー オプション
  3. 右上の Create product を選択します。 Create product ボタン
  4. バンドルに希望する Product IDName を入力します。このチュートリアルでは、Product ID として warrior_bundle を使用します。Product IDGame Manager とのリンクに使用されるため覚えておいてください。 Create new product フィールド
  5. Price セクションまでスクロールし、Set price を選択します。 Set price オプション
  6. バンドルに設定したい価格 (たとえば $1.00) を追加し、右下の Apply prices を選択します。 Set price 画面
  7. バンドルに加えたすべての変更を保存するために Save を選択します。保存しても製品としてはアクティブになりません。保存後にアクティブ化オプションが表示されます。Google Play Console のアプリでバンドルをアクティブにするには、右下の Activate ボタンを選択します。 Activate bundle ボタン

Game Manager を使用してバンドルを作成する

Game Manager で新しい バンドル を作成するには、次の手順に従います。
  1. Game Manager に移動し、タイトル に移動します。
  2. 左側のナビゲーション メニューから Engage > Economy を選択します。 Economy メニューの場所
  3. Bundles タブを選択します。 Bundles タブ
  4. New bundle を選択します。 New bundle ボタン
  5. アイテムや価格など、バンドル に追加したい情報を追加します。このチュートリアルでは、名前として Warrior Bundle を使用します。 バンドル オプション
  6. ページの末尾までスクロールし、すぐに公開したい場合は Save and publish を選択し、保存はするがまだ利用可能にしたくない場合は Save as draft を選択します。 保存オプション

バンドルにアイテムを追加する

バンドル自体はプレイヤーにアイテムを付与しません。まずアイテムをバンドルにリンクし、引き換えられた時点で特定のプレイヤーにそれらのアイテムが付与されます。 バンドルにアイテムを追加する前に、カタログでアイテムが既に作成および公開されていることを確認してください。既に Fire Sword という剣と Ice Shield という盾があります。アイテムの作成方法がわからない場合は、このステップ を参照してください。 それではバンドルに追加します。アイテムが既に作成されていることを前提に、バンドルを初めて作成する際に追加することも、バンドル アイテムを編集して後で追加することもできます。 編集モードで、バンドルの Items セクションまでスクロールし、Add ボタンを選択します。これによりカタログで利用可能なすべてのアイテムを表示するウィンドウが表示されます。ここではタイプ (Items またはユーザー生成コンテンツ (UGC) Items) でフィルターしたり、特定のアイテムを検索したりできます。追加したい各アイテムの横にある Add ボタンを選択し、最後にウィンドウの下部にある青い Add ボタンを選択します。 バンドルへのアイテムの追加

マーケットプレイス マッピングを有効にする

プレイヤーがアプリからバンドルを購入したときに Game Manager で正しく購入されて割り当てられるようにするには、Marketplace Mapping を構成する必要があります。これは Game Manager でバンドルを作成する際、またはバンドル作成後に Edit mode でバンドルに戻ることで行えます。
  1. 編集モードでバンドルに移動します。
  2. Marketplace Mapping セクションまでスクロールします。
  3. Marketplace ドロップダウンから、希望するマーケットプレイスを選択します。(このチュートリアルでは GooglePlay です)。
  4. Marketplace ID には、Google Play Console の Product ID と同じものを使用します。このチュートリアルでは Warrior_bundle を使用しました。
  5. 完了するには、その行の右側にある + を選択します。
Marketplace Mapping

ステップ 2: 購入トークンを生成する

続行する前に 前提条件 #3 が完了していることを確認してください。そうでない場合、購入トークン を生成する実用的な方法はありません。
購入トークン は、各購入時に Google Play の API によって生成されるトークンで、レシート ID に似ています。Google のドキュメントによると、“Purchase Token は、Google Play 上の製品に対する購入者の権利を表す文字列です。Google ユーザーが特定の製品に対して支払いを行ったことを示します。” 実装では、Google マーケットプレイスで購入を検証するために PlayFab の API に送信する必要があるため、そのトークンを保存する必要があります。これにより、PlayFab がプレイヤーの購入したアイテムを引き換え、プレイヤーのインベントリに付与できます。 トークンを生成するには、Google Play とのアクティブな統合を持つアプリが既に実行されている必要があります。Google Play でのアプリ登録には、購入可能なアイテム (この場合はバンドル) が用意されている必要もあります。コード実装で Google Play の課金システムを使用して、購入時にトークンが返されるようにする必要があります。 要約すると、アプリのコーディング時に課金システムを使用し、その課金システムを通じて Google 側からバンドルを購入できます。すると 購入トークン が返されます。次にそのトークンを PlayFab の Economy API と共に使用して購入を引き換え、バンドル アイテムをプレイヤーのインベントリに追加します。
Google のシステムを使用した類似プロジェクトの実装例については、この CodeLab を参照してください。課金の詳細については、Google の課金システムのドキュメント を参照してください。

ステップ 3: バンドルを引き換える

これで Game ManagerGoogle Play Console の両方でバンドルが作成されたので、プレイヤーの 1 人に対してバンドルを引き換えることができます。この例では、PlayFab の API、具体的には PlayFab の Economy API の一部である RedeemGooglePlayInventoryItems 呼び出しを使用して行うことに焦点を当てます。

AlternateID を確認する

引き換え呼び出しを行う前に、Game Manager で正しい AlternateId があることを確認してください。これは Google Play Console の ID と同じである必要があります。 次のスクリーンショットは Game Manager のバンドル内から取ったもので、Marketplace IDAlternateId と呼ばれるもので、基本的にはバンドルを識別する別の方法です。 Marketplace Mapping Google Play Console から、Monetize セクションの下の In-app products 画面に移動します。ここには Warrior Bundle を含め、作成したすべての製品が表示されます。Product ID は 2 列目に表示され、Game ManagerAlternateId と同じであることを確認する必要があります。同じでない場合は、Game Manager を更新してください。 Google Play Console の Product Id

プレイヤーを認証する

アイテムを引き換えるには、RedeemGooglePlayInventoryItems を使用します。ただしその前に、アイテムを引き換えようとしているプレイヤーがアプリで適切に認証されていることを確認する必要があります。これにはおそらく LoginWithGoogleAccount を使用します。 LoginWithGoogleAccount 呼び出しが成功すると、PlayFab の API が EntityToken を返します。これを X-EntityToken キーで RedeemGooglePlayInventoryItems のヘッダーの一部として使用する必要があります。API プラットフォームを使用してテストする場合は、次のような形になります。 API プラットフォームのヘッダー キー

引き換え呼び出しを行う

プレイヤーが認証され、両方のバンドル インスタンスが作成されて Alternate ID が確認され、購入トークン が揃ったら、引き換え呼び出しの準備ができています。これには RedeemGooglePlayInventoryItems API 呼び出しを使用します。
呼び出しはシンプルで、Purchases 配列があり、Product ID (Google Play Console のものと一致する必要がある) と、Google Play Billing System を呼び出す際に返される 購入トークン に対応する Token フィールドが含まれます。 成功のレスポンスには、200 ステータス コード に加えて、timestampMarketplaceTransactionId などのデータが含まれます。 引き換えが正常に行われた後、プレイヤーのインベントリに移動すると、バンドルにリンクされた両方のアイテムが表示されるはずです。 引き換え後のインベントリ 各引き換えアクションは、指定したプレイヤーの概要ページの Transaction History (V2) タブから取得できる、対応するイベント ログもプレイヤーの取引履歴にトリガーします。次のようになります。 取引履歴 プレイヤーの取引履歴のレコードと共に、PlayStream イベントもトリガーされて記録されます。タイトルのこれらのログには、Game Manager の左側のナビゲーション バーの Analyze セクションの下にある Data ページに移動することでアクセスできます。ここではクエリを編集して特定のレコードを検索したり、デフォルト設定で実行してすべてを取得したりできます。以下のように、Event nameitems_redeemed のレコードがあるはずです。 PlayStream イベント ログ items_redeemed PlayStream イベントが 2 つ別々に記録されていることがわかります。これは、1 つのバンドルを引き換えただけでも、そのバンドルに 2 つの異なるアイテムが含まれていたためです。

ステップ 4: 消費

購入を正常に引き換えたら、マーケットプレイスで適切に 消費 されるようにする必要があります。これを行う方法は次のとおりです。
  • Google Play Developer API の一部である purchases.products.consume メソッドを使用する。
  • Google の Billing Client の一部である BillingClient.consumeAsync メソッドを使用する。
  • または UnityUnreal で利用可能な組み込みプラグインなどの 1 つを使用する。
とはいえ、消費呼び出しを行う前に (Unity または Unreal のプラグインでは、クライアントが購入の処理が完了したことを示す前に)、引き換えプロセスの後に 1 つ以上の成功と 0 の失敗200 レスポンスを受信する必要があります。202 レスポンスまたは引き換えの失敗を受信した場合は、しばらくしてから消費呼び出しをもう一度再試行することをお勧めします。

関連項目

最終更新日 2026年8月13日