Google Play Store から購入できる PlayFab バンドルをセットアップする
このチュートリアルでは、PlayFab バンドルを正常に作成し、プレイヤーが購入できるように Google マーケットプレイスのゲームに追加し、その中に含まれるアイテムを引き換える方法を説明します。前提条件
- PlayFab の Game Manager 内のタイトル。
- 選択したタイトルと目的のマーケットプレイス間の既存の統合。
- Google Play で既に作成されて利用可能なアプリ。
- アプリで Google Play Android Developer API が有効になっていることを確認してください。
ステップ 1: バンドルを作成する
このチュートリアルでは、まず Google Play Console で バンドル を作成します。Google Play Console を使用してバンドルを作成する
- Google Play Console で目的の アプリ を開きます。
-
左側のナビゲーション バーで、Monetize セクションまでスクロールし、In-app products を選択します。

-
右上の Create product を選択します。

-
バンドルに希望する Product ID と Name を入力します。このチュートリアルでは、Product ID として warrior_bundle を使用します。Product ID は Game Manager とのリンクに使用されるため覚えておいてください。

-
Price セクションまでスクロールし、Set price を選択します。

-
バンドルに設定したい価格 (たとえば $1.00) を追加し、右下の Apply prices を選択します。

-
バンドルに加えたすべての変更を保存するために Save を選択します。保存しても製品としてはアクティブになりません。保存後にアクティブ化オプションが表示されます。Google Play Console のアプリでバンドルをアクティブにするには、右下の Activate ボタンを選択します。

Game Manager を使用してバンドルを作成する
Game Manager で新しい バンドル を作成するには、次の手順に従います。- Game Manager に移動し、タイトル に移動します。
-
左側のナビゲーション メニューから Engage > Economy を選択します。

-
Bundles タブを選択します。

-
New bundle を選択します。

-
アイテムや価格など、バンドル に追加したい情報を追加します。このチュートリアルでは、名前として Warrior Bundle を使用します。

-
ページの末尾までスクロールし、すぐに公開したい場合は 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 でバンドルに戻ることで行えます。- 編集モードでバンドルに移動します。
- Marketplace Mapping セクションまでスクロールします。
- Marketplace ドロップダウンから、希望するマーケットプレイスを選択します。(このチュートリアルでは GooglePlay です)。
- Marketplace ID には、Google Play Console の Product ID と同じものを使用します。このチュートリアルでは Warrior_bundle を使用しました。
- 完了するには、その行の右側にある + を選択します。

ステップ 2: 購入トークンを生成する
続行する前に 前提条件 #3 が完了していることを確認してください。そうでない場合、購入トークン を生成する実用的な方法はありません。
ステップ 3: バンドルを引き換える
これで Game Manager と Google Play Console の両方でバンドルが作成されたので、プレイヤーの 1 人に対してバンドルを引き換えることができます。この例では、PlayFab の API、具体的には PlayFab の Economy API の一部である RedeemGooglePlayInventoryItems 呼び出しを使用して行うことに焦点を当てます。AlternateID を確認する
引き換え呼び出しを行う前に、Game Manager で正しい AlternateId があることを確認してください。これは Google Play Console の ID と同じである必要があります。 次のスクリーンショットは Game Manager のバンドル内から取ったもので、Marketplace ID は AlternateId と呼ばれるもので、基本的にはバンドルを識別する別の方法です。

プレイヤーを認証する
アイテムを引き換えるには、RedeemGooglePlayInventoryItems を使用します。ただしその前に、アイテムを引き換えようとしているプレイヤーがアプリで適切に認証されていることを確認する必要があります。これにはおそらく LoginWithGoogleAccount を使用します。詳細な例については、Unity で Google Play games サインインを使用した PlayFab 認証のセットアップ を参照してください。
X-EntityToken キーで RedeemGooglePlayInventoryItems のヘッダーの一部として使用する必要があります。API プラットフォームを使用してテストする場合は、次のような形になります。

引き換え呼び出しを行う
プレイヤーが認証され、両方のバンドル インスタンスが作成されて Alternate ID が確認され、購入トークン が揃ったら、引き換え呼び出しの準備ができています。これには RedeemGooglePlayInventoryItems API 呼び出しを使用します。Purchases 配列があり、Product ID (Google Play Console のものと一致する必要がある) と、Google Play Billing System を呼び出す際に返される 購入トークン に対応する Token フィールドが含まれます。
成功のレスポンスには、200 ステータス コード に加えて、timestamp や MarketplaceTransactionId などのデータが含まれます。
引き換えが正常に行われた後、プレイヤーのインベントリに移動すると、バンドルにリンクされた両方のアイテムが表示されるはずです。



items_redeemed PlayStream イベントが 2 つ別々に記録されていることがわかります。これは、1 つのバンドルを引き換えただけでも、そのバンドルに 2 つの異なるアイテムが含まれていたためです。
ステップ 4: 消費
購入を正常に引き換えたら、マーケットプレイスで適切に 消費 されるようにする必要があります。これを行う方法は次のとおりです。- Google Play Developer API の一部である purchases.products.consume メソッドを使用する。
- Google の Billing Client の一部である BillingClient.consumeAsync メソッドを使用する。
- または Unity や Unreal で利用可能な組み込みプラグインなどの 1 つを使用する。
200 レスポンスを受信する必要があります。202 レスポンスまたは引き換えの失敗を受信した場合は、しばらくしてから消費呼び出しをもう一度再試行することをお勧めします。
