> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# シーズナル統計情報

> PlayFab のシーズナル統計情報とバージョニングを使用してプレイヤーのスコアをスケジュールに従ってリセットし、シーズン、ラダー、および期間限定の進捗イベントを推進します。

このチュートリアルでは、統計情報のバージョニングの概念について説明します。特定の統計情報の異なるバージョンを持ちたい場合が複数あります。たとえば、ゲームにシーズンがある場合、新しいシーズンが始まるときに統計情報をリセットする可能性が高いです。

[基本的な統計情報を作成する](/services/playfab/player-progression/statistics/create-basic-statistics)の例を続けます。私たちのシューティングゲームが非常に人気になっていると想像してください。そのため、シーズンの概念が導入されます。毎月、ゲームはすべてのプレイヤーベースに対して新しいテーマシーズンをリリースします。したがって、シーズンごとに独立した統計情報を保持したいと考えます。

## バージョニング用の統計情報の定義を作成する

以前の例で統計情報の定義を作成する際、バージョニングに対する `VersionConfiguration` パラメーターの重要性についてのヒントがありました。ここでは、その使用方法と仕組みについて詳しく説明します。

```C# theme={null}
public static async Task CreateStatisticDefinitionAsync(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
    {
        Name = statName,
        AuthenticationContext = context,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 12,
            ResetInterval = ResetInterval.Month,
        },
        Columns = new List<StatisticColumn>()
        {
            new StatisticColumn()
            {
                Name = "Longshots",
                AggregationMethod = StatisticAggregationMethod.Max,
            }
        },
    };
    
    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
```

基本的な統計情報と比較したこの例の主な違いは、`VersionConfiguration` パラメーターです。このパラメーターにより、同じ統計情報のいくつのバージョンをクエリできるかを指定する `MaxQueryableVersions` 設定を定義できます。この場合、12 バージョンをクエリするように設定しています。`ResetInterval` パラメーターは、リセットプロセスが発生する頻度を定義します。このプロセスでは、以前と同じ設定の統計情報を値なしで作成し、バージョンパラメーターが次のように変更されます: N = N + 1、統計情報の定義作成時の N = 0。

たとえば、指定された値でバージョンパラメーターが 2 の統計情報があるとします。その統計情報のバージョンを増加させると、結果はバージョンパラメーターが 3 で値のない新しい統計情報になります。一方、以前の統計情報はクエリできるようにシステム内に残ります。

`ResetInterval` は複数の方法で機能します。この例では月次ですが、開発者のニーズに応じて変更できます。この特定のケースでは、設定された時点から毎月リーダーボードが自動的にリセットされることを意味します。次のリセット戦略をサポートしています。

* Day
* Hour
* Manual
* Month
* Week

[統計情報の作成に関する API リファレンス](https://learn.microsoft.com/en-us/rest/api/playfab/progression/statistics/create-statistic-definition)

## 統計情報のバージョンをインクリメントする

この新しい設定により、異なるシーズンの同じ統計情報の複数のバージョンを持つことができます。しかし、問題が発生して手動でリーダーボードをリセットしてシーズンを再開する必要がある場合はどうなるでしょうか？そのような場合、API を使用して手動でリセットを実行できます。SDK を使用した例を次に示します。

```C# theme={null}
public static async Task ResetStatistic(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    IncrementStatisticVersionRequest resetStatRequest = new IncrementStatisticVersionRequest()
    {
        AuthenticationContext = context,
        Name = statName,
    };

    PlayFabResult<PlayFab.LeaderboardsModels.IncrementStatisticVersionResponse> resetStatResponse = await statsAPI.IncrementStatisticVersionAsync(resetStatRequest);
}
```

これで、統計情報のバージョニングに関する課題に対処する準備が整いました。ここで重要な点は、バージョンとして保持することを決定した統計情報の定義の数は、サービス内のストレージを使用するためメーターされることです。詳細については、こちらを参照してください。

* [統計情報](/services/playfab/pricing/meters/statistics-meters)

## まとめ

このチュートリアルでは、次の操作の方法を学びました。

* 正しいリセット戦略で統計情報を作成する
* 統計情報のバージョンをインクリメントする

## 関連項目

* [統計情報でさらに多くのことを行う](/services/playfab/player-progression/statistics/doing-more-statistics)
* [基本的な統計情報を作成する](/services/playfab/player-progression/statistics/create-basic-statistics)
* [統計情報にコンテキストデータを追加する](/services/playfab/player-progression/statistics/metadata-statistics)
* [トランザクション書き込み](/services/playfab/player-progression/statistics/transactional-writes)
* [API リファレンス](/services/playfab/player-progression/statistics/api-reference)
* [制限](/services/playfab/player-progression/statistics/limits-statistics)
* [クォータ](/services/playfab/player-progression/statistics/quota-statistics)


## Related topics

- [メタデータ統計情報](/ja-jp/services/playfab/player-progression/statistics/metadata-statistics.md)
- [統計情報の制限](/ja-jp/services/playfab/player-progression/statistics/limits-statistics.md)
- [統計情報のクォータ](/ja-jp/services/playfab/player-progression/statistics/quota-statistics.md)
- [基本的な統計情報を作成する](/ja-jp/services/playfab/player-progression/statistics/create-basic-statistics.md)
- [統計情報でさらに多くのことを行う](/ja-jp/services/playfab/player-progression/statistics/doing-more-statistics.md)
