このトピックでは、プレーヤーが Google Play アプリで Play ポイントを使用してアプリ内アイテムを購入した後で、そのアプリ内アイテムを検出して配信する方法について説明します。
ユーザーが Google Play アプリでアプリ内アイテムに Play ポイントを利用すると、ゲームですぐにアイテムが配信される必要があります。ユーザーが Play ポイントでアイテムを購入する方法は次のとおりです。
| 1. [Play Points] をクリックします。 | 1. [使用] タブをクリックしてアイテムを表示します。 | 2. アイテムを選択して [ポイントを使う] をクリックし、購入を完了します。 | 3. アイテムを受け取ります。 |
|
|
|
|
この例では、アイテムを購入する間、ゲームは実行されていません。ゲームがデバイスにインストールされていない場合に、Play ポイントをアイテムに交換することもできます。そのため、ゲーム内ストア以外からのアプリ内アイテムの配信を処理するようにゲームを設計する必要があります。
開始する前に
アプリ内アイテムを検出して配信する前に、アイテムと Play Points のキャンペーンを作成する必要があります。
配信の要件
Play Points のキャンペーンを使用してゲームでアプリ内アイテムを配信する場合は、このセクションの要件を満たす必要があります。
配信のタイミング
プレーヤーが Play ポイントをアプリ内アイテムに交換した場合は、Google Play Billing Library を使用してアイテムをタイムリーに配信します。
配信メッセージ
ユーザーがゲーム外でアプリ内アイテムを購入してゲームに戻った場合、そのアイテムがゲーム内に正常に付与されたことの確認を表示する必要があります。メッセージは、ポップアップ ダイアログかゲーム内メッセージの形式で表示する必要があります。ユーザーが追加の手順を行わずにアイテムを受け取れるようにしてください。
必要なメッセージ形式は次のとおりです。
アイテムを受け取ったという明確なメッセージ。
アイテム名を明示し、「Play ポイント」に言及して、ユーザーが受け取った他のコンテンツと区別できるようにします。
類似のアイテムが複数の金額で存在する場合、アイテム名にアイテムの正しい金額を記載する必要があります。
ポップアップ ダイアログ、メッセージ、ゲーム内通知は、ユーザーが [続行] や [OK] などの確認をクリックするまで表示されている必要があります。このメッセージは、あくまでもゲーム内でアイテムを受け取ったことをユーザーに伝えるためのものです。キャンセル ボタンは設けないでください。確認ボタンがない場合、メッセージは、アイテムを受け取ったことをユーザーに知らせるよう、3 秒間以上表示してから消えるようにする必要があります。
メッセージの例を次に示します。
「アイテムを受け取りました。Play ポイントで宝石を 100 個獲得しました。続行」
ゲーム内通貨の残高の増加を示すアニメーションや視覚的な確認がユーザーに表示されます。アプリ内アイテムが永続アイテムまたは消費アイテムの場合、ユーザーをゲーム内で、そのアイテムがロック解除された場所または入手可能な場所に誘導する必要があります。
ゲーム外で受け取ったアイテムを検出する
ゲームが Google Play の課金システムを使用している場合は、購入を検出して処理するを参照して、ゲーム外で受け取ったアプリ内アイテムを検出します。
配信確認を表示する
Play ポイントを利用して交換アイテムを受け取ったユーザーは、アイテムがゲームに正しく配信され処理されたことを知らせるゲーム内メッセージや通知を期待します。購入が成功したことを確認するには、ユーザーに通知するをご覧ください。
特定のゲームエンジンのアップデート
特定のゲームエンジンでの考慮事項は次のとおりです。
Unity で開発されたゲームの場合、使用している IAP 実装が Play Points のキャンペーンをサポート済みかどうかを確認することをおすすめします。
Cocos2d-x または Unreal Engine(C / C++)で開発されたゲームでは、ほとんどの場合、C / C++ コードから Java API を呼び出すための JNI コードを記述する必要があります。
サーバーサイドのベスト プラクティス
このセクションでは、Play Points のキャンペーンに関するサーバーサイドのベスト プラクティスについて説明します。
サーバーで
Purchases.products: getを呼び出す場合、Play ポイント交換アイテムなどのアプリ内アイテムをproductId値に基づいて個別に処理する必要があるかどうかを検証します。サーバーで
Inappproducts: listを使用する場合、Play ポイント交換アイテムを他のアプリ内アイテムとproductId値によって分ける必要があるかどうかを検証します。次に示すベスト プラクティスを確認し、追加の変更が必要かどうかを検証します。
- 参照:
- サーバーサイドの署名検証を実装します。
purchaseTokenとorderIdの値が一意であり、以前に使用されていないことを確認します。
トラブルシューティング
このセクションでは、お客様から問い合わせを受ける可能性があるシナリオでの推奨事項について説明します。
複数のユーザー アカウント
ユーザーがデバイスで複数の Google アカウントを持っており、間違ったアカウントで Play ポイントを利用した場合、Google はアイテムを別のアカウントに転送できません。同様に、アプリは getPurchases() メソッドを呼び出してアイテムを転送することができません。このような場合は、カスタマー サポートで対応してアプリ内アイテムを手動でユーザーに提供することを検討してください。
アイテムの遅延または欠落
ポイント交換アイテムの遅延または欠落が発生している場合は、Google Play ヘルプ ドキュメントのアプリ内購入に関するトラブルシューティング ガイドをご覧ください。