AGS コマースとのインベントリ統合を管理する
注釈:本資料はAI技術を用いて翻訳されています。
インベントリサービスは利用可能ですが、本番環境での使用はまだ推奨されていません。自由に試していただけますが、今後のアップデートで破壊的変更が導入される可能性があることにご注意ください。代替手段として、以下を検討してください。
- エンタイトルメント: プレイヤーアイテムを管理するための主要なオプションとして推奨されます。
- Extend: エンタイトルメントでニーズを完全に満たせない場合は、Extend を使用してカスタムソリューションを構築することを検討してください。
概要
The AccelByte Gaming Service (AGS) Inventory service allows you to use data from the Store and Entitlements service as the authoritative source for player-owned items. With this integration, Entitlements will be the primary data source for player-owned items, helping the Inventory service to avoid problems such as duplicate or conflicting actions on items, such as buying, consuming, discarding, trading, or gifting them.
前提条件
以下へのアクセス権が必要です。
- AGS Admin Portal
- AGS Inventory API documentation
- AGS Unreal or Unity SDK, including the permissions:
- Client ID
- Client Secret
- AGS CLI の手順に従う場合は、AGS CLI をインストールし、インベントリ統合を管理する権限を持つアカウントでサインインしておく必要があります。インストールとサインインを参照してください。コマンド例では Bash シェルを使用しています。
インベントリとコマースの同期動作
サポートされているアイテムタイプ
インベントリサービスとコマースサービス間のシームレスな統合を実現するために、AGS はエンタイトルメントからインベントリへの特定のアイテムタイプの同期をサポートしています。サポートされているアイテムタイプは以下のとおりです。
- ゲーム内アイテム
- ルートボックス
- オプションボックス
- バンドル
バンドルアイテムの場合、バンドル内のゲーム内アイテム、ルートボックス、オプションボックスのみをプレイヤーインベントリに同期できます。バンドル内のその他のアイテムタイプは同期できません。
サポートされているアイテム属性
インベントリサービスはデコレーターとして機能し、定義されたアイテム属性を使用するために AGS ストアサービスに依存しています。ストアからインベントリに同期できるサポート対象の属性には、最初は基本的なデフォルト値が設定されます。一部の属性は、後でインベントリ内から変更できます。このアプローチにより、スムーズな初期設定を実現しながら、インベントリ内でアイテム属性を個別にカスタマイズでき、柔軟性とアイテムごとのカスタマイズ性が向上します。
- たとえば、Item Name、Description、Image は基本的なアイテム情報を表し、インベントリ内で個別に変更することはできません。これらは常にストアで設定された値に従います。
- 一方、Custom Attributes、Server Custom Attributes、Slot Used などのその他の属性は、インベントリのデフォルト値として機能しますが、ストアで設定されたデフォルト値に影響を与えることなく、個々のアイテムごとに後から更新または変更できます。これらの属性の詳細については、アイテムのカスタム属性を参照してください。
このアプローチにより、AGS ストアで設定されたデフォルト属性との一貫性と、インベントリサービス内での柔軟なカスタマイズの両方が確保されます。
プラットフォーム固有のアイテム
インベントリサービスは、Xbox、PSN、Epic、Steam などの異なるプラットフォームから取得したアイテムを区別します。これは、サービスの動作に以下のような影響を与えます。
- インベントリでは、各アイテムをそれぞれのプラットフォームからのみ取得できます (例: Steam から取得したアイテムは Steam からのみ取得できます)。
- インベントリは、単一のプラットフォームまたは複数のプラットフォームのアイテムを同じユーザーインベントリ内に保存することをサポートしており、すべてのプラットフォームを合わせて容量を計算します。
- 特定のプラットフォームのアイテムを個別に保存したい場合は、そのプラットフォーム専用のインベントリ設定 (例: Steam Backpack) を作成できます。
- または、複数のプラットフォームのアイテムをまとめて保存したい場合は、異なるプラットフォームから取得したすべてのアイテムに対して単一のインベントリ設定 (例: Backpack) を作成できます。
単一のインベントリを使用して複数のプラットフォームのアイテムを保存すると、主に 1 つのプラットフォーム (例: Steam) から取得したアイテムによってインベントリがいっぱいになり、他のプラットフォーム (例: Epic) のアイテムに使用できる容量が制限される可能性があります。
サポートされているアクション
インベントリとコマースの両方でサポートされているアクションは、相互に関連する操作に大きな影響を与えます。つまり、どちらかのシステムで発生したアクションが、もう一方のシステムに影響を与える可能性があります。ここでは、インベントリとコマースの両方でサポートされているアクションと、各システムの機能および相互作用について説明します。
アイテムの追加
- コマースからアイテムを購入する。プレイヤーがコマースから購入したアイテムは、プレイヤーのインベントリに同期されます。プレイヤーのインベントリがいっぱいの場合、プレイヤーはコマースからそれ以上アイテムを購入できません。
- 他のエンタイトルメントソースからエンタイトルメントを付与する。チャレンジ、シーズンパス、その他のソースから報酬として得られるアイテムなども、プレイヤーのインベントリに同期されます。
- インベントリサービスから直接コマースアイテムを保存する。アイテムはプレイヤーのエンタイトルメントに反映されます。
アイテムの消費
- プレイヤーのインベントリからアイテムを消費すると、プレイヤーのエンタイトルメント内の消費可能アイテムの
useCount値が減少します。 - プレイヤーのエンタイトルメントから直接アイテムを消費すると、インベントリ内のアイテムの数量が減少します。
- プレイヤーのエンタイトルメントの
useCountが 0 になると、エンタイトルメントのステータスは「Consumed」に変更されます。同様のアイテムを追加すると、新しいエンタイトルメントエントリが作成されます。 - プレイヤーのインベントリ内のアイテムの数量が 0 になると、そのアイテムはプレイヤーのインベントリから削除され、インベントリの容量が解放されます。
- エンタイトルメントプロパティが Consumable に設定されているアイテムのみ消費できます。
- 永続 (Durable) アイテムは消費できません。消費しようとすると失敗します。
アイテムの削除とエンタイトルメントの取り消し
- プレイヤーのインベントリからアイテムを削除すると、プレイヤーのエンタイトルメントから関連アイテムが取り消されます。
- サポートされているプラットフォームからプレイヤーのエンタイトルメントを取り消すと、プレイヤーのインベントリからも関連アイテムが削除されます。
- 永続アイテムと消費可能アイテムは、削除または取り消しが可能です。
アイテムの移動または転送
プレイヤーのインベントリ内のアイテムは、分割したり、別のインベントリに部分的に転送したりできます。
プレイヤーのインベントリから別のインベントリにアイテムを分割または部分的に転送すると、プレイヤーの関連エンタイトルメントが減少し、新しいエンタイトルメントが作成されます。
現在のバージョンのインベントリサービスは、OTHER ソースのアイテムのみを処理できます。コマースからのアイテムの処理はまだサポートされていませんが、この機能を有効にするための機能強化が進行中です。
インベントリをエンタイトルメントと統合する
インベントリサービスをエンタイトルメントと統合すると、公開ストアのアイテムを任意のインベントリ設定に自動同期できるようになります。
AGS Admin Portal または AGS CLI でインベントリサービスをエンタイトルメントと統合するには、以下の手順に従います。
- Admin Portal
- AGS CLI
- AGS Admin Portal のサイドバーで、Online > Inventory > Integrations に移動します。
- Ecommerce Integration Configuration セクションで、+ Add Configuration ボタンをクリックします。
- Ecommerce Integration Configuration ウィンドウで、以下の操作を行います。
- Item Types で、選択したインベントリと同期する公開ストアのアイテムタイプを選択します。
- Target Inventory で、公開ストアのアイテムの同期先となるインベントリ設定を選択します。インベントリ設定のセットアップについては、インベントリ設定をセットアップするを参照してください。
- Add をクリックして完了します。統合が Ecommerce Integration Configuration ページに表示されます。
- 統合の ACTIVE トグルをオンにして、統合を有効にします。
-
アイテムの同期先となるインベントリ設定のコードを確認します。
ags inventory inventory-definitions list --namespace <YourNamespace> -
統合を作成します。
<InventoryCode>を前の手順で確認したコードに置き換えます。mapItemTypeには、同期するアイテムタイプ(INGAMEITEM、LOOTBOX、OPTIONBOX、またはBUNDLE)を列挙します。serviceNameはECOMMERCEのままにします。ags inventory integrations create --namespace <YourNamespace> \
--json '{"serviceName": "ECOMMERCE", "targetInventoryCode": "<InventoryCode>", "mapItemType": ["INGAMEITEM", "LOOTBOX"]}'コマンドを実行すると、
idを含む新しい統合の情報が出力されます。 -
統合を有効にします。
TIEDは有効化された状態を表すステータスで、ACTIVE トグルをオンにすることに相当します。後で無効にするには、ステータスにINITを指定します。ags inventory integrations update-status --namespace <YourNamespace> --integration-configuration-id <IntegrationId> \
--json '{"status": "TIED"}'
エンタイトルメントからプレイヤーのインベントリへアイテム所有権を手動で同期する
AGS は、データの一貫性を確保するために、プレイヤーインベントリとエンタイトルメントの手動同期もサポートしています。このプロセスにより、必要に応じて同期操作を開始でき、両方のシステム間でデータが最新かつ同一の状態に保たれることが保証されます。
手動同期は、以下のシナリオで実行するのが最適です。
- これまでエンタイトルメントを使用しており、インベントリとの同期を開始する予定の場合。
- これまでインベントリを使用しており、途中でコマースとの統合を無効にした後、再度有効にした場合。この場合、手動で同期することで、両方のデータが更新され、同期された状態になります。