Ecom Interface Overview

購入と所有権の検証を処理するインターフェースを実装します

Epic Games Store
19 分で読めます

Ecom インターフェース は、Epic Online Services (EOS) を使用するデベロッパーが Epic Games ストア (EGS) 経由でインゲーム購入をサポートできるようにします。このインターフェースによって、ゲーム全体、ゲームのダウンロード コンテンツ (DLC)、バーチャル商品やゲーム内通貨などの製品の管理が可能になります。オファーの提供、購入トランザクションの完了、所有権の検証、購入アイテムとの引き換えなどが含まれます。

Ecom インターフェースで Web API を使用する方法については、「Web API による所有者の検証」を参照してください。

Ecom インターフェースにアクセスするには、Platform インターフェース の関数である EOS_Platform_GetEcomInterface を通じて EOS_HEcom ハンドルを取得する必要があります。すべての Ecom インターフェースの関数は、最初のパラメータとしてこのハンドルが必要です。リクエストが完了したときにコールバックがトリガーされるようにするには、EOS_HPlatform ハンドルがティックしていることを確認する必要があります。

Ecom インターフェースを使用するには、お使いの製品で Epic Account Services (EAS) が有効になっており、Basic Profile (基本プロファイル) のデータにアクセスすることに関して プレイヤー / ユーザーの同意 を得る必要があります。EAS は Developer Portal 上で有効にすることができます。詳細は「Epic のドキュメント」を参照してください。EAS およびプレイヤーの同意がなくても、EOS SDK および Ecom インターフェースの初期化を行うことができますが、バックエンド サービスへのすべての Ecom インターフェース機能呼び出しは失敗します。

ゲーム内ストアを運営する

EOS のゲーム内ストアは 2 つの関数を実行して運営します。ストアからの Catalog Offers (「Offers」とも呼ばれます) を購入に向けてプレイヤーに提示し、プレイヤーが購入できるようにします。EOS SDK は、ゲーム デベロッパーが望む方法でストア カタログから表示するオファーの一覧を取得するための機能を提供します。オファー データには、オファーに関する情報をプレイヤーに紹介するために使用する主要な画像とリリースの詳細など、プレイヤーが取得する 1 つ以上のアイテムが含まれます。

プレイヤーが購入を決めると、チェックアウト プロセスがデータを EGS オーバーレイ へプッシュし、そこで購入プロセスが最終処理されます。その後 EOS は、購入が正常に完了したというイベントにおいてゲームが履行 (フルフィルメント) を実行できるようにトランザクション ハンドルを提供して、トランザクションの結果をゲームに通知します。

EOS_PF_DISABLE_OVERLAY フラグ が設定されている場合、Ecom インターフェースの購入関連機能は無効になります。

カタログ オファー データ

Catalog Offers (型 EOS_Ecom_CatalogOffer) には、ストアをブラウズするプレイヤーに基づいて、ローカライズされた価格情報と説明するテキストが含まれます。価格のローカリゼーションには割引の適用と現地通貨への変換が含まれます。現地価格には「USD」 (米ドルを表す) などの通貨コードが含まれ、その通貨における最小単位で表示されます。たとえば、2.99 US ドルのオファーは値 299 になります。

ストア カタログを提示する

EOS_Ecom_QueryOffers 関数を呼び出すことで、Developer Portal で定義されたカタログ オファーのリストを取得することができます。この関数は EOS_Ecom_QueryOffersOptions データ構造体を受け取り、完了時にデリゲート EOS_Ecom_QueryOffersCallbackInfo を呼び出します。EOS_Ecom_QueryOffersOptions 構造体を以下のように初期化します。

プロパティ
ApiVersionEOS_ECOM_QUERYOFFERS_API_LATEST
LocalUserIdクエリを要求しているローカル プレイヤーの EOS_EpicAccountId
OverrideCatalogNamespace初期化中に指定したものでない場合、オプションの製品名前空間

デリゲートを受け取る EOS_Ecom_QueryOffersCallbackInfoResultCode が正常である場合、リクエストしたオファー データはテンポラリ キャッシュで使用できます。EOS_Ecom_GetOfferCount を使ってキャッシュ内に格納されたオファーの数を決定し、EOS_Ecom_CopyOfferByIndex を使ってそこから個々のオファー (型 EOS_Ecom_CatalogOffer) のコピーを取得します。オファー内の各アイテムには、そのアイテムと紐づいている画像とリリース詳細に関するデータが含まれます。これは別々に取り出すことができます。オファーのコピーの必要がなくなった場合は、EOS_Ecom_CatalogOffer_Release を使って解放します。

個々のアイテム データを表示する

キャッシュからオファーを取得したら、そのオファーに含まれるアイテム数を決定するために EOS_Ecom_GetOfferItemCount を呼び出して、 EOS_Ecom_CopyOfferItemByIndex を使って個々の EOS_Ecom_CatalogItem のコピーを取得します。この構造体には、購入時に提供する Entitlement (利用資格) の ID に加えてローカライズされたテキストが含まれます。データのコピーにアロケートされたメモリを解放するためには、EOS_Ecom_CatalogItem_Release を呼び出します。

アイテムに関連付けられた画像もキャッシュで使用できます。EOS_Ecom_GetItemImageInfoCount を呼び出して任意のアイテムと紐づいている画像の数を決定し、EOS_Ecom_CopyItemImageInfoByIndex を使って画像の URL、ディメンション、用途の EOS_Ecom_KeyImageInfo を取得することができます。このデータのコピーが不要になったら EOS_Ecom_KeyImageInfo_Release を呼び出して使用しているメモリを解放します。

キャッシュからアイテムに対するリリース詳細を取得するために、まず EOS_Ecom_GetItemReleaseCount を使って存在するデータ エントリ数を調べます。その後で EOS_Ecom_CopyItemReleaseByIndex を使ってデータ (型 EOS_Ecom_CatalogRelease) の個々の構成要素を取得します。必要がなくなった場合は、EOS_Ecom_CatalogRelease_Release を呼び出してこのデータを解放します。

ストアから購入する

プレイヤーがストアから何かを購入する場合、プレイヤーはカタログ オファーを受け取ります。購入が完了すると、プレイヤーはオファー内に含まれるアイテム (複数) を所有します。各アイテムが購入者のプレイヤーのアカウントに 1 つ以上の Entitlements (利用資格) を追加します。

ストアからの購入には、3 つのアクションが含まれます。購入する、所有権を検証する、利用資格を引き換える (オプション) です。

プレイヤーが購入を行うと、EOS_Ecom_CheckoutOptions 構造体で EOS_Ecom_Checkout を呼び出します。構造体を次のように初期化します。

プロパティ
ApiVersionEOS_ECOM_CHECKOUT_API_LATEST
LocalUserId購入するローカル プレイヤーの EOS_EpicAccountId
OverrideCatalogNamespace指定されない場合、現在の SandboxId がカタログ名前空間として提供されます。
EntryCountEntries パラメータのこの構造体へ提供される EOS_EcomCheckoutEntry 要素の数。
EntriesEOS_Ecom_CheckoutEntry 要素の配列。プレイヤーが購入を望む各オファーに対する EOS_Ecom_CatalogOfferId データと構造体と同じ ApiVersion を含みます。

この呼び出しを行うと、EOS はこの情報を使って購入トークンを生成します。EOS はこの購入トークンを使って独自のオーバーレイを開き、プレイヤーが購入を検証し、支払いオプションを選択し、トランザクションを確定またはキャンセルできるようにします。オーバーレイが閉じると、成功、失敗、プレイヤーによるキャンセルの場合に関係なく、コールバック (型 EOS_Ecom_OnCheckoutCallback) が、トランザクション情報を含む EOS_Ecom_CheckoutCallbackInfo パラメータで実行します。コールバック情報内では、トランザクションが成功した場合、TransactionId は「null」以外になり、トランザクションが失敗したかキャンセルされた場合は「null」になります。

コールバック経由で最初の応答が来る前に EOS_Ecom_Checkout に対して追加の呼び出しがされると、EOS_AlreadyPending エラーとなります。

完了した購入データへアクセスする

正常なプレイヤーの購入に続いて有効なトランザクション ID がある場合、EOS_Ecom_CopyTransactionById 関数に渡して EOS_Ecom_HTransaction を取得することができます。EOS_Ecom_Transaction_GetEntitlementsCount はトランザクションに関連する利用資格の番号を返し、EOS_Ecom_Transaction_CopyEntitlementByIndex は個々の利用資格を取得します。必要がなくなった場合は、EOS_Ecom_Entitlement_Release を呼び出してこのデータを解放します。

トランザクション ID に関連する利用資格には、EOS_Ecom_QueryEntitlement 関数によって取得できるものと同じデータが含まれていますが、キャッシュ ポリシーによって異なります。この差のために、購入後にトランザクション ID を使って取得する利用資格は、明示的に EOS_Ecom_Transaction_Release を呼び出すまでトランザクション固有キャッシュ内に留まります。

所有権を検証する

ゲーム クライアント内で所有権を検証することはお勧めできません。プレイヤーがソフトウェア チート (不正行為) を使用して省略できます。可能な場合は、信頼のできるゲーム サーバー/API で所有権を検証します。

著作権侵害を防ぐために役に立つ最新の推奨事項

著作権侵害を防ぐためには、デベロッパーが所有権の検証を組み込んで作成したゲームやあらゆる DLC を チェックすることをお勧めします。信頼できるサーバー/API におけるオンラインでの所有権の検証を強く推奨します。 一般には、これが著作権侵害を防ぐ唯一効果的な方法と考えられています。クライアント サイドの 検証を使用できるのは、複雑ではない攻撃を軽減する場合です。たとえば、 変更されていないゲーム ファイルの再ディストリビューションがあります。

マルチプレイヤー/オンライン ゲームでの処理:

  • 信頼できるゲーム サーバーやバックエンド API に所有権チェックを組み込むには Ecom インターフェース または Web API を使用します。

    • これらのチェックを実装するのは、一般に認証処理中または レベル/マッチに入ったときです。
  • プレイヤーが所有権チェックに合格しない場合は、アクセスを拒否します。適切に実装すると、 API の応答の変更やゲーム クライアント自体の改変により プレイヤーがこれらのチェックを回避することはできません。

  • 異常に高いアクティビティ レベルのアカウントをモニターして、1 つのアカウントが 複数のエンド プレイヤーで共有されている場合は禁止します

    • アカウント当たりの同時セッション数を 1 に制限することを推奨します。

あらゆるゲームでの処理:

クライアント サイド コントロールを使用して著作権侵害を完全に防ぐことは可能ではありませんが、手間をかけない攻撃/共有を抑えるオプションは複数個あります。たとえば、

  • デジタル署名と SHA1 チェックサムをゲームの実行可能ファイルおよび すべての実行可能コード (.exe/.dll/.soなど) に対してチェックしてから、所有権の検証 API を起動します。ここでは EOS SDK とサードパーティ ライブラリの検証も実行します。改ざんが検出された場合に アクセスを拒否します。

  • オンライン アクティベーションを要求し、検証可能なトークンを暗号で返します。 これによりプレイヤーがオンライン検証に合格した後にのみオフライン アクセスを有効にで

    • このトークンは特定のハードウェア/プレイヤー プロパティに結びつけられ、 定義した期間が経過した後に無効になります。

    • 作成したゲーム バイナリに組み込まれた公開キーを 改変して活用することから保護する必要があります。

    • 問題のアカウントで、頻繁にアクティベーションが行われたり、異なる多くのデバイスに対してアクティベーションが行われたりする場合、 アクティベーションを拒否します。

  • 市販の難読化/耐タンパー ソリューションを活用して、リバース エンジニアリングと 組み込まれたタンパー チェック (改ざん検出処理) の改変を難しくします。

  • DLC はメイン ゲーム ファイルの一部として格納しないようにしてください。DLC の配布を Epic ゲーム ストア経由で実施、または追加ダウンロードに対して サーバー側で所有権チェックを実行する必要があります。

Ecom インターフェースでは、ダイレクトな検証とトークン ベースの検証という 2 つの手法で所有権の検証ができます。ダイレクトな検証方法は Epic Entitlement Service と直接統合されます。一方トークン ベースの検証方法では、プレイヤーが検証できる、またはサードパーティのサービスに渡すことができる署名付きトークンを提供します。ダイレクトな検証方法は、信頼されているゲーム サーバーでの利用や、検証が単純なクライアント システムで安全性の低いチェックを行う場合に便利です。トークン ベースの検証方法は、ゲーム クライアント、プレイヤー、利用資格 に関する情報と、ゲーム クライアントや外部サービスで検証可能な署名を含んだトークンを提供します。所有権の検証を行うサードパーティ サービスと統合する場合は、外部サービスにプレイヤーのデータへのアクセス権を許可する必要のないトークン ベースの検証方法を推奨します。

タイトルおよびサービスの所有権情報に RESTful エンドポイント経由でアクセスするには「Ecom Web API」を参照してください。

ダイレクトな所有権の検証

プレイヤーの購入を確認するには、プレイヤーによる悪意のある行為の影響を受けない、独自のバックエンド サービスの使用をお勧めします。詳細については、Ecom Web API ドキュメント を参照してください。

プレイヤーが特定のカタログ アイテムを所有しているかどうかを判断するには、EOS_Ecom_QueryOwnership を呼び出して EOS_Ecom_QueryOwnershipOptions 構造体を渡します。これで、サーバーから所有権情報が取得され、指定した EOS_Ecom_OnQueryOwnershipCallback コールバック関数に渡されます。コールバック関数は、指定した void ポインタも取得します。これには、リクエストのコンテキストを把握するために製品が必要とする情報が含まれる場合があります。まず、EOS_Ecom_QueryOwnershipOptions 構造体に次の情報を入力します。

プロパティ
ApiVersionEOS_ECOM_QUERYOWNERSHIP_API_LATEST
LocalUserId所有権をクエリするローカル プレイヤーの EOS_EpicAccountIdCatalog Item (Item) 説明テキストと価格情報のローカライズに必要。
CatalogItemIds所有者を検証するための Catalog Item ID
CatalogItemIdCountCatalogItemIds に含まれる要素の数
CatalogNamespace初期化中に指定したものでない場合、オプションの製品名前空間

完了したら、EOS によって、リクエストされた (そして void ポインタが) EOS_Ecom_OnQueryOwnershipCallback 構造体に格納されたデータを使用してコールバック関数が呼び出されます。この構造体には EOS_Ecom_ItemOwnership メンバの配列が含まれています。各メンバーは、クエリしたクエリしたアイテムの 1 つを記述しており、そのアイテムをプレイヤーが所有しているかどうかを示しています。サーバーが認識しない項目は所有されないものとして返されます。

トークン ベースでの所有権の検証

プレイヤーの購入を確認するには、プレイヤーによる悪意のある行為の影響を受けない、独自のバックエンド サービスの使用をお勧めします。詳細については、Ecom Web API ドキュメント を参照してください。

所有権をチェックして、結果をローカルに数分間キャッシュするには、EOS_Ecom_QueryOwnershipToken を使用します。この関数は、次のように初期化した EOS_Ecom_QueryOwnershipTokenOptions 構造体を受け取ります。

プロパティ
ApiVersionEOS_ECOM_QUERYOWNERSHIPTOKEN_API_LATEST
LocalUserId利用資格をクエリする対象のプレイヤーの FUniqueNetId
CatalogItemIds利用資格をチェックする対象の最大 32 (EOS_ECOM_QUERYOWNERSHIPTOKEN_MAX_CATALOGITEM_IDS) 個のカタログ アイテムを含んだ配列。EOS_Ecom_CatalogItemId 型。
CatalogItemIdCountCatalogItemIds に含まれるカタログ アイテムの個数。
CatalogNamespace初期化中に指定したものでない場合、オプションの製品名前空間

操作が完了すると、コールバック関数 (EOS_Ecom_OnQueryOwnershipTokenCallback 型) が、有効期限が 5 分の JSON Web Token (JWT) を含む EOS_Ecom_QueryOwnershipTokenCallbackInfo 構造体を受け取ります。JWT を公開キーで検証し、解凍してキー ID を抽出できます。それをサードパーティ サービスに送信することもできます。すると、サードパーティ サービスが EGS の利用資格情報を検証できます。追加の Web 呼び出しから取得するか、組織と共有した公開キーは、JWT の署名の検証に利用できる JSON Web Key (JWK) の形式をしています。HTTP リクエストをするには、GET を https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration/api/public/publickeys/{kid} に送ります。以下はサンプル リクエストです。

GET
/ecommerceintegration/api/public/publickeys/pbvnNIE97vErdePGIRoG41h8hnP_2wIxG8xbwZCIj3g HTTP/1.1
Host: ecommerceintegration-public-service-ecomprod02.ol.epicgames.com
{
"kty":"RSA",
"e":"AQAB",
"kid": "pbvnNIE97vErdePGIRoG41h8hnP_2wIxG8xbwZCIj3g",
"n": "gcStqtD8XD9c9ifNuxXT9Xd_EEZLLCw34yxINRQPt0MxEWkoOFsuisRWGktSFtGrnUuQnp8GQY0k4Pyl_yDItWAcRtO7JUjrhQnxx3xXp_0P8xJMH1ny-RcxHF3bEJWhDzNW5PBpBjQTQZis-83499z-4OlNA7oUnDKEJkqNfzh4mMDFluPxvW_Hwpaw71nhzJI7-N-BdsPsLdqUANajLsFKq9fr06Lek_tm-6-RUxNPE3yS0x0UIsGyapA4Apcczz0xTzRDfwOkq_TyKGZiZc7vtgjkWnqdsCyXZC7dzKJvg0ggO3mKXhqZNNC_2pz24o1X_xCbG8rXtuvX8-ux-Q"
}

所有権検証トークンの詳細

所有権検証トークンは、RS512 (SHA-512 を使用した RSA PKCS#1 署名、RSA キー サイズ 2048) を使用して署名された JWT であり、作成後 5 分で有効期限が切れます。トークンには以下の情報が含まれます。

クレーム説明
jtiこのトークンの一意の識別子
subトークンのリクエストに使用されたアカウントのアカウント ID
clidトークンのリクエストに使用されたクライアントのクライアント ID
entこのトークンで検証された利用資格の配列。この値が空の場合、そのアカウントは所定の sandboxId に関してリクエストされたいずれの利用資格も持ちません。
iatトークンが発行された時間を示す Unix タイムスタンプ
expトークンの有効期限が切れる時間を示す Unix タイムスタンプ

購入を履行する

購入するとプレイヤーの アカウント は利用資格を取得しますが、プレイヤーはゲーム内で自分の購入の効果を感じられないことがあります。また、プレイヤーが特定の利用資格を所有しているかどうかを検証し、何らかのゲーム ロジックをこの結果に適用するだけと、簡単に購入の履行を実行できる場合もあります。これらのケースでは、EOS SDK によって所有権を検証するだけで十分です。消耗品やゲーム通貨を含む購入などのその他のケースでは、場合により利用資格を引き換えて、ゲーム内またはサードパーティのバックエンド サービスで注文を履行することも必要になります。

利用資格を列挙する

プレイヤー アカウントの利用資格を取得するには、EOS_Ecom_QueryEntitlementsOptions 構造体でEOS_Ecom_QueryEntitlements 関数を呼び出します。

EOS_Ecom_QueryEntitlements APIは、シーズンパスに含まれる個々の DLC など、関連するカタログ アイテム間の関係を考慮していません。購入した永続性のあるコンテンツの検証には使用しないでください。そのため、 EOS_Ecom_QueryEntitlements は通常、消耗品のオファーに使用され、前述された所有権の検証セクションで詳しく説明されているように、永続性のあるコンテンツが管理されます。

EOS_Ecom_QueryEntitlementsOptions は以下のように初期化されます。

プロパティ
ApiVersionEOS_ECOM_QUERYENTITLEMENTS_API_LATEST
LocalUserId利用資格を取得したいローカル プレイヤーの EOS_EpicAccountId
EntitlementNames検証したい Entitlement Name の配列
EntitlementNameCountEntitlementNames プロパティに含まれる Entitlement Names の数。EOS_ECOM_QUERYENTITLEMENTS_MAX_ENTITLEMENT_IDS の最大数まで可能。0 を指定した場合は、プレイヤー アカウントに関連づいたすべての利用資格をリクエストします。
bIncludeRedeemedtrue の場合、引き換えられた利用資格は結果の中に含まれます。

操作の完了後に EOS は EOS_Ecom_QueryEntitlementsCallbackInfo パラメータを使って結果情報をキャッシュし、コールバック関数 (型 EOS_Ecom_OnQueryEntitlementsCallback) を実行します。このパラメータの ResultCodeEOS_Success の場合、キャッシュにはリクエストしたデータが含まれます。EOS_Ecom_GetEntitlementsCount を呼び出してキャッシュの利用資格数を決定し、 EOS_Ecom_CopyEntitlementByIndex を呼び出して、利用資格を提供するカタログ アイテム ID、その利用資格に一意のID、その他の関連データなど、個々の要素 (型 EOS_Ecom_Entitlement) のコピーを取得します。

利用資格を引き換える

消耗品利用資格を履行 (フルフィルメント)、またはサードパーティ サービスによるフルフィルメントの管理の後、EOS_Ecom_RedeemEntitlementsOptions 構造体を使って EOS_Ecom_RedeemEntitlements 関数を呼び出します。構造体を次のように初期化します。

プロパティ
ApiVersionEOS_ECOM_REDEEMENTITLEMENTS_API_LATEST
LocalUserId利用資格を引き換えるプレイヤー アカウントの ID
EntitlementIdCountEntitlementIds 内の要素の数
EntitlementIds引き換えるための利用資格 (型 EOS_Ecom_EntitlementId)

完了すると、コールバック型 EOS_Ecom_OnRedeemEntitlementsCallbackEOS_Ecom_RedeemEntitlementsCallbackInfo 構造体を受け取ります。

利用資格を引き換えた後、EOS_Ecom_QueryEntitlementsOptions パラメータの bIncludeRedeemedtrue に設定されていない限り、EOS_Ecom_QueryEntitlements の呼び出しの結果に表示されなくなります。 利用資格を引き換えた後も、キャッシュに保存されることに注意してください。キャッシュをクリアする方法はありません。

Ecom インターフェース用語集

このセクションでは Ecom インターフェース内で一般的に使用される用語と定義を説明します。

用語定義
カタログ オファー (Catalog Offers)カタログ オファー (オファーとも呼ばれます) は、1 つ以上のアイテムと関連価格 (無料の場合もある) を組み合わせたものです。カタログ オファーの購入後、オファーに含まれる個々のアイテムに対して利用資格が付与されます。
カタログ アイテム (Catalog Item)カタログ アイテム (オーディエンスとも呼ばれます) には、ゲーム全体、ゲーム内通貨や武器のスキンといったバーチャル商品、その他の種類のダウンロード可能なコンテンツを表すことができます。アイテムはどのように利用資格をアカウントに対して承認するかを定義するために使用されます。カタログ アイテムは、Epic Games Store の動的バンドル機能を使って他のカタログ アイテムを付与するように構成できます。これにより、関連するオファーを時間の経過とともに更新することができます。たとえば、この機能を使用すると、新しい DLC のリリース時にシーズン パスの所有者がシームレスに所有権を取得できるようにすることができます。
利用資格 (Entitlement)利用資格とは、Epic Games Store インフラストラクチャ内のプレイヤーの所有物です。利用資格は、1 つ以上のカタログ アイテムへのアクセスを許可します。
消耗品利用資格 (Consumable Entitlement)消耗品利用資格は有効期間が限られており、ゲーム内でアイテムを使用するたびに「使用可能回数」が減少します。これは、ゲーム内通貨、XP ブーストの他、使いつくしたら、購入して補充できるアイテムでよく使用されています。場合によっては、外部サービスが利用資格を履行します。外部サービスが利用資格に関する情報を受け取ると、利用資格が引き換えられ、使用可能回数が 1 回減ります。0 になるとにプレイヤー アカウントから利用資格を削除します。0 になった後、外部サービスはアイテムのゲーム内エフェクトを処理する責任を負います。
永続品利用資格 (Durable Entitlement)特定の形式のダウンロード コンテンツやゲーム全体など、永続する購入品の利用資格です。
履行 (Fulfillment)消耗品の利用資格は、プレイヤー アカウントの一部となった後、履行 (フルフィルメント) を行う必要があります。プレイヤーとのやり取りなしで (SDK API で) チェックすることができます。または、サードパーティ サービスがバックエンド API 呼び出しを通じて履行の責任を引き受けることができます。

以下の表は、Ecom インターフェース内で使用されるさまざまな ID タイプと説明です。

ID タイプ説明
Catalog Offer IDストアでのオファーに対する一意の識別子です。これらの ID は製品内で一意です。チェックアウト プロセスには Catalog Offer ID が必要です。
Catalog Item ID製品内で一意であり、単一のカタログ アイテムを特性します。特定のプレイヤーが対応するカタログ アイテムを所有しているかどうかを検証するために必要な ID です。
Entitlement Name各 Catalog Item は関連づいた Entitlement Name を持つことができます。グループ化に使用することができます。ただし、Entitlement Name は一般に Catalog Item ID と同じ値です。Ecom インターフェースは、許可されたカタログ オファーでカタログ アイテムに関連づけられた Entitlement Name を基に利用資格をクエリすることができます。
Entitlement IDそのプレイヤーで格納された特定の利用資格として、プレイヤー アカウントで Catalog Offer とその Catalog Item マニフェストを履行します。各利用資格は独自の一意の識別子があります。この ID は利用資格の引き換え時に Ecom インターフェースによって使用されます。