クライアントのライセンス チェックにおける Game Pass ライセンス
Game Pass のエンタイトルメントは、ゲーム クライアントから検出できません。ユーザーが Game Pass を通じてタイトルの権利を付与されている場合、XStoreQueryGameLicenseAsync は、直接購入の場合と同様にisActive = true のライセンスを返します。XStoreGameLicense 構造体には、ライセンスの取得方法を示すフィールドは含まれていません。
テレメトリなどの目的でユーザーがタイトルをどのように取得したかを記録するには、クライアントからユーザーの ID を独自のサービスに送信します。その後、サービスが publisherQuery API を呼び出し、acquisitionType を確認します。値が Recurring の場合は Game Pass のエンタイトルメントを示し、Single の場合は直接所有を示します。
承認済みおよび未承認の発行元での応答データの動作
発行元が承認されていない場合、Game Pass によって権利が付与されたアイテムは直接所有のエンタイトルメントとして表示されます。たとえば、acquisitionType は Single として表示され、Game Pass ProductId は satisfiedByProductIds に表示されません。
承認済みの発行元では、アクティブな Game Pass サブスクリプションのみが返されます。ユーザーの Game Pass サブスクリプションがキャンセルまたは終了した場合、それ以降のクエリには Game Pass 情報が含まれなくなります。また、EndDate は最大値に正規化されるため、サブスクリプション終了の検出には使用できません。
サーバー間のエンタイトルメント結果における Game Pass のリリース日の遅延
タイトルやアドオンが Game Pass で提供開始されると、クライアントの可用性とpublisherQuery の可視性との間に遅延が予想されます。この動作は、Store システム全体でキャッシュの更新間隔が異なるためです。実際には、ローカル ライセンス供与が通常最初に更新され、publisherQuery は 2 ~ 3 時間遅れる場合があります。
Game Pass の ProductId に対する直接チェックには影響がなく、遅延は主に満足するエンタイトルメントを通じて付与されるアイテムに対してです。
開発サンドボックスでの Game Pass サブスクリプションのテスト
XBOX Game Pass のティアは、開発サンドボックス内の XBOX Store アプリで検索することで有効化してアクセスできるようになっている必要があります。XBOX テスト アカウントはテスト用のクレジット カードで作成され、サンドボックスで Game Pass のティアにサブスクライブできます。サンドボックスで Game Pass のティアが見つからない場合は、支援について Developer Partner Manager または Microsoft 担当者にお問い合わせください。Game Pass のサブスクリプション状態はサンドボックス間で引き継がれません。サンドボックスのテスト アカウントに Game Pass を追加した際は、そのテスト アカウントを Game Pass やその他のコマース関連のテストやデバッグのために別のサンドボックスに移動しないでください。
Game Pass サブスクリプション状態の要求
ユーザーの Game Pass サブスクリプション状態を要求するには、確認する権限のあるサブスクリプション ティアの対応する ProductId をクエリ要求の productSkuIds リストに追加します (表を参照)。
ユーザーが要求したティアのサブスクリプションを持っている場合、クエリ応答には対応する Game Pass サブスクリプション ティアの ProductId を持つアイテムが含まれます。
上位ティアに含まれるティアの要求時の動作
一部の Game Pass ティアは、サブスクライバーが上位ティアを持っている場合に含まれます。承認済みティアのうち上位ティアに含まれるティアは、ユーザーが上位ティアをサブスクライブしている場合に返されます。 例: 発行元は XBOX Game Pass Essential に対して承認されています。ユーザーは XBOX Game Pass Ultimate を持っており、すべての Game Pass ProductId に対してクエリを実行すると、publisherQuery は XBOX Game Pass Essential の結果のみを返します。発行元が他のティアを表示するアクセス権を持っている場合、それらのティアも返されます。XBOX Game Pass (Starter Edition) は継承の例外であり、スタンドアロン ティアです。他のいずれのティアにも含まれません。
Game Pass サブスクライバーへのゲーム内特典の付与
サブスクライバーにゲーム内特典と恩恵を付与するために必要な最低の Game Pass ティアへのアクセスを要求することをお勧めします。 例: コンソールのすべての Game Pass サブスクライバーにゲーム内報酬を付与しています。Premium と Ultimate には Essential が含まれるため、XBOX Game Pass Essential (CFQ7TTC0K5DJ) へのアクセスのみが必要です。satisfiedByProductIds を使用した Game Pass サブスクリプションで権利が付与された製品の検出
承認された後、satisfiedByProductIds と acquisitionType の値を確認して Game Pass 由来のエンタイトルメントを特定します。Game Pass ベースのエンタイトルメントは、acquisitionType が Recurring であり、satisfiedByProductIds には承認済みの最上位 Game Pass ティアの ProductID が含まれます。
excludeDuplicates フィルター オプションを使用している場合、ユーザーが直接タイトルを所有していると Game Pass 関連のエンタイトルメントはフィルターで除外されます。
satisfiedByProductIds に Game Pass productIDs があるかをチェックすると、アイテムが Game Pass を通じて権利が付与されているかがわかりますが、ユーザーが Game Pass メンバーかを判断するには十分ではありません。したがって、ユーザーの Game Pass サブスクリプション状態を確認する場合は、リクエストの productSkuIds に Game Pass ProductId 値を含めるのが最善です。
XBOX Game Pass による重複アイテムの例
ユーザーが同じ製品に対して直接所有と Game Pass エンタイトルメントの両方を持っている場合、excludeDuplicates が false の場合に 2 つのエントリが表示されることがあります。excludeDuplicates が true の場合、直接購入アイテムが返されます。
重複解決ルールとソースの優先度動作の完全な内容については、レスポンス内の重複アイテムの理解を参照してください。
