Google Play ストアから購入できる PlayFab サブスクリプションを設定する
注意
Google サブスクリプションの引き換えは、現在プライベート プレビューの段階です。 この機能にアクセスするには、PFEconomyPreviews@microsoft.com に「PlayFab Mobile Subscription」という件名で、PlayFab タイトル ID を記載したメールをお送りいただければ、お使いの環境でこの機能を有効にします。
このチュートリアルでは、PlayFab サブスクリプションを正常に作成し、プレイヤーが購入できるように Google Marketplace でゲームに追加する方法と、それに含まれるアイテムを引き換える方法について説明します。
前提条件
- PlayFab のゲーム マネージャーのタイトル。
- 選択したタイトルと目的のマーケットプレースの間の既存の統合。
- アプリは既に作成されており、Google Play で使用できます。
手順 1: サブスクリプションの作成
サブスクリプションの引き換えを開始する前に、まずゲーム マネージャーと Google Play Console のアプリの両方で利用できるようにする必要があります。
このチュートリアルでは、まず Google Play Console でサブスクリプションを作成します。
Google Play Console
Google Play Console を使用してサブスクリプションを作成するには、次の手順に従う必要があります:
- Google Play Console で目的のアプリを開きます。
- 左側のナビゲーション メニューで、[収益化] セクションまで下にスクロールし、[サブスクリプション] を選択します。
- 右上の [サブスクリプションの作成] を選択します。
- サブスクリプションに目的の製品 ID と名前を入力します。 このチュートリアルでは、製品 ID として up_basic_sub を使用します。 製品 ID は、ゲーム マネージャーをリンクするために使用されるため、覚えておいてください。
- [基本プランとオファー] まで下にスクロールし、[基本プランの追加] を選択します。
- 基本プランに必要な構成を追加し、右下にある [保存] を選択します。
- [保存] を選択して、バンドルに加えたすべての変更を保存します。 保存しても製品としてアクティブ化されないことに注意してください。 保存すると、アクティブ化オプションが表示されます。 Google Play Console のアプリでサブスクリプションをアクティブにするには、右下にある [アクティブ化] ボタンを選択します。
ゲーム マネージャーを使用してサブスクリプションを作成する
ゲーム マネージャーで新しいサブスクリプションを作成するには、次の手順に従います。
- [ゲーム マネージャー] に移動し、[タイトル] に移動します。
- 左側のナビゲーション メニューから [エンゲージメント]>[エコノミー] の順に選択します。
- [サブスクリプション] タブを選択します。
- [新しいサブスクリプション] を選択します。
- アイテムや価格など、サブスクリプションに必要な情報を追加します。このチュートリアルでは、名前として "Swords Subscription" を使用します。
- ページの最後まで下にスクロールし、すぐに公開したい場合は [保存して公開] を選択し、保存するものの、利用可能にしたくない場合は [下書きとして保存] を選択します。
サブスクリプションにアイテムを追加する
サブスクリプションそのものによりアイテムがプレイヤーに与えられるわけではありません。まずサブスクリプションにアイテムをリンクする必要があります。これを引き換えると、それらのアイテムが特定のプレイヤーに付与されます。
サブスクリプションにアイテムを追加する前に、アイテムがすでに作成され、カタログに公開されていることを確認してください。 既に Oath Keeper という剣のアイテムと、もうひとつ "Frostmourne" と呼ばれるアイテムがあります。 アイテムを作成する方法がわからない場合は、この手順を参照してください。
次に、これらをサブスクリプションに追加します。 これを行うには、アイテムが既に作成されていることを前提として、サブスクリプションを初めて作成するときに追加します。 または、後でサブスクリプション アイテムを編集して追加することもできます。
編集モードで、サブスクリプションの [アイテム] セクションまで下にスクロールし、[追加] ボタンを選択します。これにより、カタログで利用可能なすべてのアイテムが表示されるウィンドウが表示されます。ここからは、種類 (アイテムまたはユーザー生成コンテンツ (UGC) アイテム) でフィルター処理するか、または特定のアイテムを検索することができます。 今回の場合、2 つのアイテムのみが公開されているため、それぞれの横にある [追加] ボタンを選択し、最後にウィンドウの下部にある青い [追加] ボタンを選択します。
マーケットプレース マッピングを有効にする
プレイヤーがアプリからサブスクリプションを購入したときに、ゲーム マネージャーで適切に購入および割り当てられるようにするには、マーケットプレースのマッピングを構成する必要があります。 これは、ゲーム マネージャーでサブスクリプションを作成している間、またはサブスクリプションが作成された後に、編集モードでサブスクリプションに戻ることによって行うことができます。
- 編集モードでサブスクリプションに移動します。
- [マーケットプレースのマッピング] セクションまで下にスクロールします。
- [マーケットプレース] ドロップダウンから、目的のマーケットプレースを選択します。 (このチュートリアルでは、GooglePlay になります)。
- マーケットプレース ID には、Google Play Console の製品 ID と同じものを使用してください。 このチュートリアルでは、up_basic_sub を使用しました。
- 完了するには、その行の右側にある + を選択します。
手順 2: 購入トークンを生成する
注意
続行する前に前提条件 #3 が完了していることを確認してください。完了していない場合は、購入トークンを生成する実用的な方法はありません。
購入トークンは、レシート ID と同様に、購入ごとに Google Play の API によって生成されるトークンです。 Google のドキュメントによると、"購入トークンは、Google Play 上のアイテムに対する購入者の利用資格を示す文字列です。 特定のアイテムに対して Google ユーザーが支払いを行ったことを示します。"
実装では、Google Marketplace での購入を検証するために、PlayFab の API に送信する必要があるため、そのトークンを保存する必要があります。 これにより、PlayFab はプレイヤーの購入済みアイテムを引き換えて、プレイヤーのインベントリに付与することができます。
トークンを生成するには、Google Play とのアクティブな統合で実行されているアプリが既にある必要があります。 Google Play でのアプリの登録には、購入可能なアイテム (この場合はサブスクリプション) も含まれている必要があります。 購入後にトークンが返されるように、コードの実装では Google Playの課金システムを使用する必要があります。
要約すると、アプリをコーディングするときは課金システムを使用する必要があります。その課金システムを使用すると、Google 側からサブスクリプションを購入でき、購入トークンが返されます。 その後、トークンを PlayFab のエコノミー API で使用して購入を引き換え、サブスクリプション アイテムをプレイヤーのインベントリに追加する必要があります。
ヒント
Google のシステムを使用する同様のプロジェクトの実装例については、この CodeLab を参照してください。
課金の詳細については、「Google の課金システムのドキュメント」を参照してください。
手順 3: サブスクリプションを引き換える
ゲーム マネージャーと Google Play Console の両方でサブスクリプションを作成したので、プレイヤーの 1 人とサブスクリプションを引き換えることができます。 この例では、PlayFab の API、特に PlayFab のエコノミー API の一部である RedeemFabInventoryItems 呼び出しを使用してこれを実行することに焦点を当てます。
代替 ID を確認する
引き換えの呼び出しを行う前に、ゲーム マネージャーに正しい AlternateId があることを確認してください。これは、Google Play Console のものと同じである必要があります。
次のスクリーンショットは、ゲーム マネージャーのサブスクリプション内にあるものです。Marketplace ID は、AlternateId と呼ばれるもので、基本的にはサブスクリプションを識別する別の方法です。
Google Play Console から、アプリ内のサブスクリプションに移動し、[サブスクリプションの詳細] の下に、ここから、作成したすべての製品 (サブスクリプションを含む) が表示されます。 製品 ID は 2 番目の列に表示されます。それがゲーム マネージャーの AlternateId と同じであることを確認し、そうでない場合は、ゲーム マネージャーを更新します。
プレイヤーを認証させる
アイテムを引き換えるには、RedeemFcPlayInventoryItems を使用します。 ただし、その前に、アイテムを引き換えるプレイヤーがアプリ内で適切に認証されていることを確認する必要があります。そのためには、LoginWithGoogleAccount を使用することになるでしょう。
注意
詳細な例については、「Unity での Google Play ゲームのサインインを使用して PlayFab 認証を設定する」を参照してください。
LoginWithGoogleAccount 呼び出しが成功すると、PlayFab の API は、X-EntityToken
キーを含む RedeemGooglePlayInventoryItems ヘッダーの一部として使用する必要があるエンティティ トークンを返します。
引き換え呼び出しを行う
プレイヤーが認証され、両方のサブスクリプション インスタンスが作成され、代替 ID がチェックされ、購入トークンが作成されます。 引き換え呼び出しを行う準備ができました。 このためには、RedeemFcPlayInventoryItems API 呼び出しを使用します。
{
"Purchases": [
{
"ProductId": "up_basic_sub",
"Token": "{Your purchase token}"
}
]
}
呼び出しはとても簡単です。Product ID
(Google Play Console のものと一致する必要があります) と、Google Play 課金システムを呼び出したときに返される購入トークンに対応する Token
フィールドを含む Purchases
配列があります。
成功応答には、タイムスタンプや MarketplaceTransactionId などのデータと共に 200 status code
が含まれます。
引き換えが成功した後、プレイヤーのインベントリに移動すると、サブスクリプションとそのサブスクリプションにリンクされている両方のアイテムを表示できるようになります。
各引き換えアクションでは、プレイヤーのトランザクション履歴に対応するログもトリガーされます。このログは、指定されたプレイヤーの概要ページの [トランザクション履歴 (V2)] タブから再取得できます。
プレイヤーのトランザクション履歴のレコードと共に、PlayStream イベントもトリガーされ、ログに記録されます。 ゲーム マネージャーの左側のナビゲーション バーの [分析] セクションの下にある [データ] ページ移動すると、タイトルのこれらのログにアクセスできます。 ここでは、クエリを編集して特定のレコードを検索したり、既定の設定で実行してすべてを取得したりできます。 items_redeemed のイベント名の下にレコードが表示されます。使用したサブスクリプションに固有の新しいイベントが 1 つ表示されます。