Skip to main content
この記事では、XBOX services のきめ細かなレート制限 (FGRL) の概要を説明します。 レート制限とは何かをまとめるだけでなく、この文書は、あなたが制限されているかどうかを判断する方法、および制限されている場合に利用できるツールとリソースを支援することを目的としています。 きめ細かなレート制限 (Fine-Grained Rate Limiting) は、異なるタイトル間で共有される XBOX リソースの 公正な使用 を促進するために設計されました。 このソリューションは、あるエンティティが一定期間に行ったリクエスト数のカウントを保持するサービスを持つ、ほとんどの伝統的な制限システムに似ています。 サービスに指定された制限に達したエンティティは拒否状態に移され、そのエンティティからのすべての受信リクエストが拒否されます。 エンティティは、指定された期間が満了しエンティティに関連付けられたカウントがリセットされたときにのみ、この状態を抜けられます。 きめ細かなレート制限は、上記と同じコアメカニクスを使用しますが、1 つのエンティティを追跡する代わりに、FGRL は ユーザーとタイトル の組み合わせを追跡し、関連付けられたカウントを 1 つではなく 2 つ の異なる 制限 と比較します。 FGRL の 2 つの制限は各サービスで適用され、つまり GameClips のリクエスト数は Presence のリクエスト数に影響しません。 以下のセクションでは、ユーザーとタイトルのペアリング、二重制限、および HTTP 429 制限応答オブジェクトについて詳しく説明します。

きめ細かなレート制限の用語

公正な使用

XBOX は、ユーザーがプレイしているゲーム (またはアプリ) に関係なく、すべてのユーザーが同じ高品質のエクスペリエンスを持つべきだと考えています。 きめ細かなレート制限 (FGRL) は次のシナリオを解決します: 開発者 A が、サービスの最適な使用を保証するすべての XBOX services ベストプラクティスに従ったタイトルをリリースしたばかりです。一方、開発者 B もタイトルをリリースしましたが、こちらには未知のバグがあります。 このバグにより、タイトルと各ユーザーがプレゼンスをスパムし、その結果サービスが高負荷になります。 サービスは遅くなり、最終的に停止し、開発者 A のユーザーのエクスペリエンスを損なうことになりますが、原因は開発者 B のバグでした。 FGRL が実装されていれば、サービスは行儀の悪いタイトルからのリクエストの受信を停止し、開発者 A のタイトルにリソースの公正な取り分を提供できていたはずです。

タイトルとユーザーの粒度

XBOX リソースの公正な使用を保証するために、タイトルとユーザーがキーとして選ばれました。 ユーザーのみを追跡すると、ユーザーエクスペリエンスが各タイトルの統合次第になるシナリオが生まれます。 例えば、ほとんどのタイトルはすでに people サービスを使用しているので、この例のために、people サービス上できめ細かなレート制限が設定され、5 分間に 100 リクエスト以下に制限されていると仮定します。 ユーザーが 1 分間に 100 リクエストを送るゲームをプレイした場合、制限を超えてしまい、people サービスへのそれ以上のリクエストが送信できなくなります。同じ期間内にそのユーザーがホーム画面に戻ってフレンドリストをクリックしたと想像してください。ユーザーはすでに制限を超えているので、ホーム画面がユーザーを制限状態にしたわけではないにもかかわらず、5 分間の間隔が経過するまでそのフレンドリストの呼び出しは失敗します。 一方、タイトルのみに基づいて制限すると、同様に不公平な結果が生まれます。 タイトルごとに制限を設定すると、タイトルの人気度が無視され、制限に達するまでリクエストは先着順で処理されるだけです。 ユーザーとタイトルのペアリングは、アクティブなユーザー数を考慮してタイトルが適切以上のリソースを使わないことを保証し、同時に各ユーザーに一貫したリソースの取り分を与えます。 上の図は、リクエストがどのように処理されるかの高レベルビューを示しています。 まずリクエストが生成され、目的のサービスによって受信されます。 リクエストを受け取ると、システムはユーザーとタイトルが合計で何回サービスにアクセスしたかを確認します:
  • リクエストが制限を下回っている場合、通常通り処理されます。
  • リクエストが制限以上であるとわかった場合、サービスはそれをドロップし、代わりに 429 応答を返します。
応答は、期間がロールオーバーしてユーザーとタイトルのリクエストが処理可能になるまでの時間を示します。

バースト制限と持続制限

伝統的に、レート制限はエンドポイントごとに 1 つの制限で構成され、それが一定期間にわたって追跡されます。 この期間は、エンティティのリクエスト数が追跡される時間の長さを表します。 期間の終わりにエンティティのカウントは 0 にリセットされ、再び追跡が始まります。 このアプローチはほとんどの API で機能しますが、XBOX services を呼び出すゲームやアプリには十分な回復力がありませんでした。 上記のソリューションは、人々が一貫した安定した予測可能な方法で呼び出しを行うと仮定しています。 XBOX services の場合、サービスと要求元のタイトルによって、呼び出しパターンは劇的に異なります。 この場合に 1 つの制限だけを選択すると、呼び出しパターンのスペクトルの両端で妥協する必要があります。 XBOX services のソリューションは 2 つの期間と制限を使用します。 小さい方の期間はバースト期間と呼ばれ、大きくて長い方は持続 (サステイン) 期間と呼ばれます。 FGRL のバースト期間は常に 15 秒で、持続期間は常に 300 秒 (5 分) です。 したがって、5 分の持続期間内には 20 のバースト期間があります。 バースト制限と持続制限は同時に追跡され、そのため同時にリクエストをカウントします。 バースト制限と持続制限はどちらもサービス上に設定されており、各サービスには独自のバーストと持続のカウントがあります。 これら 2 つの制限がどのように連携するかを理解しやすくするために、下の表は、FGRL を実装したサービスに対して多数のリクエストを行うタイトルをプレイしているユーザーを示しています。 この場合、バースト制限は 15 秒で 30 リクエスト、持続制限は 5 分で 100 リクエストです。 表は、最初の 15 秒でユーザーが 35 リクエストを行いバースト制限に達したことを示しています。 それらの余分な 5 リクエストはドロップされ、5 つの 429 応答が送信されます。 スロットリングされたにもかかわらず、それらの 5 リクエストは依然として持続制限にカウントされます。 いずれかの制限に達すると、リクエストは通されません。これは 45 秒時点で両方の制限に達した時と、285 秒時点で 4 リクエストしか行われなかった時に示されています。

HTTP 429 応答オブジェクト

関連付けられたユーザーとタイトルのカウントがバーストまたは持続の制限以上になると、サービスはリクエストを処理せず、代わりに HTTP 429 応答を返します。XSAPI を使用する場合、これは 0x801901AD の HRESULT に相当します。 HTTP 429 コードは “too many requests” (リクエストが多すぎる) を意味し、“retry after X seconds” (X 秒後に再試行) の値を含むヘッダーを伴います。 FGRL の 429 応答オブジェクトには “retry after” ヘッダーが含まれており、これは呼び出し側エンティティが再試行するまでに待機すべき時間を指定します。 XSAPI を使用する開発者は心配する必要はありません。XSAPI は Retry-After ヘッダーを尊重し処理します。 実際の応答には次のフィールドが含まれます:

実装済みの制限

次のサービスは FGRL 制限を実装しており、これらの制限は 2016 年 5 月 から適用されています。 これらの制限はすべてのサンドボックスおよびタイトルで同じです。 2016 年 5 月より前に XBOX Developer Platform または Partner Center 経由で公開および出荷されたタイトルはレガシーとみなされ、免除されます。 上の表は、FGRL のために選択された現在のサービスのリストを表しています。 このリストは最終的なものではなく、新しいサービスや既存のサービスが追加される可能性があります。 サービスが追加される際には、この表が更新され、アナウンスが行われます。 表内の制限は変更される可能性があります。 サービスが変化し進化するに伴い、制限も変化しますが、通知が行われ、必要なレガシー免除が適用されます。

サービスマッピングとレート制限のタイトルへの影響

注: 最新の API マッピングは定期的に更新されており、Live Trace Analyzer API Mapping にあります。

FAQ

スロットリングされているかどうかを判断する方法と、講じることのできる手順は?

呼び出しパターンを改善するための手順、および XSAPI のアサーションや XSAPI Social/Multiplayer マネージャーがスロットリング問題を通知し、それらの問題を軽減するためにどのように使用できるかの説明が含まれる、XBOX services 呼び出しのベストプラクティス を参照してください。 もう 1 つの選択肢は、XBOX サービス呼び出しのトレースを記録し、XBOX services Trace Analyzer ツール を使用してそのトレースを分析することです。 トレースを記録するには、Fiddler を使用して .SAZ ファイルを記録するか、XSAPI の組み込みトレースログを使用します。 XSAPI でトレースをオンにして使用するには、サービス呼び出しをレビューするための Trace Analyzer を参照してください。 トレースを取得すると、XBOX services Trace Analyzer ツールはスロットリングされた呼び出しを検出した際に警告を発します。

制限は変わりますか?

公開されている制限は時間とともに変わらないことを意図しています。 ただし、必要が生じた場合、一部の制限がより厳格になる可能性があります。その場合、すでに RETAIL にリリースされているタイトルは更新された制限から免除されます。

さらに多くのサービスに制限が適用されますか?

はい、さらに多くのサービスと新しいサービスに制限が作成される可能性があり、そうなります。 ただし、この最初の FGRL リリースと同様に通知が行われ、適切な予防策が講じられます。

これらの変更はいつ有効になりますか?

レート制限は 2016 年 5 月 から施行されています。 2018 年 4 月 の時点で、指定された持続制限を 10 倍以上超えるタイトルは XBOX 認定プロセスを通過できません。

制限を守れない場合はどうすればよいですか?

XBOX services 呼び出しのベストプラクティス を参照し、これらの手順に従っていることを確認してください。 いずれかのソーシャルサービスでレート制限されている場合、Social Manager の使用も検討してください。 これらの手順に従っても制限内に留まれない場合は、Developer Account Manager にお問い合わせください。 注: 指定された制限以上のタイトルは、2018 年 4 月以降、認定を通過できなくなります。 例えば、上の表で持続制限が 300 秒あたり 300 コールに設定されている場合、300 秒あたり 3000 コール以上のタイトルは認定に失敗します。 テストケースを含む詳細情報については、XR-132 Service Access Limitations を参照してください。

既存のタイトルはどうなりますか?

2018 年 4 月より前に RETAIL 状態にあったタイトルはレガシーとみなされ、免除されます。

コンテンツアップデートは?

レガシーまたは免除されたタイトルの場合、コンテンツアップデートも免除されますが、ゲームのサービス統合の側面を最適化するためにツールとアセットを活用することを強くお勧めします。

コンテンツアップデートを行えるようになるまで、ゲームの免除を受けることはできますか?

Developer Account Manager にご相談ください。
最終更新日 2026年8月25日