> ## 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.

# Estadísticas de temporada

> Use las estadísticas de temporada y el control de versiones de PlayFab para restablecer las puntuaciones de los jugadores según una programación, impulsando temporadas, clasificaciones y eventos de progresión de duración limitada.

En este tutorial, explicamos el concepto de control de versiones para las estadísticas. Hay varios casos en los que queremos tener
diferentes versiones de una estadística determinada. Por ejemplo, si un juego tiene temporadas, lo más probable es que restablezca las estadísticas cuando
comience la nueva temporada.

Continuamos con el ejemplo de [Creación de una estadística básica](/services/playfab/player-progression/statistics/create-basic-statistics). Imagine que nuestro juego de disparos se está volviendo muy popular. Por lo tanto, se introduce el concepto de temporadas. Cada mes, el juego lanza una nueva temporada temática para toda la
base de jugadores. Así que queremos mantener estadísticas independientes por temporada.

## Creación de una definición de estadística para el control de versiones

En el ejemplo anterior, al crear una definición de estadística, se dio una pista sobre la importancia del parámetro `VersionConfiguration`
para el control de versiones. Aquí, detallamos cómo usarlo y cómo funciona.

```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);
}
```

La principal diferencia de este ejemplo con respecto a la estadística básica es el parámetro `VersionConfiguration`. Este parámetro nos permite definir una
configuración de `MaxQueryableVersions`, que especifica cuántas versiones de la misma estadística podemos consultar. En este caso, lo establecemos para consultar 12 versiones.
El parámetro `ResetInterval` define la frecuencia con la que se produce el proceso de restablecimiento. Este proceso implica crear una estadística con la misma configuración que
antes pero sin ningún valor, y el parámetro de versión cambia de la siguiente manera: N = N + 1, con N = 0 en el momento de la creación de la definición de estadística.

Por ejemplo, supongamos que tenemos una estadística con el parámetro de versión igual a dos con un valor determinado. Ahora
incrementamos la versión de esa estadística; el resultado va a ser una nueva estadística con el parámetro de versión igual a tres sin ningún valor.
Mientras tanto, la estadística anterior permanece en el sistema para poder consultarse.

`ResetInterval` puede funcionar de varias maneras. En este ejemplo, es mensual, pero se puede cambiar según las necesidades del desarrollador. En este caso
concreto, significa que la tabla de clasificación se va a restablecer automáticamente cada mes desde el momento en que se configuró. Admitimos las siguientes estrategias de restablecimiento:

* Day
* Hour
* Manual
* Month
* Week

[Referencia de API para la creación de una estadística](https://learn.microsoft.com/en-us/rest/api/playfab/progression/statistics/create-statistic-definition)

## Incremento de la versión de una estadística

Con esta nueva configuración, podemos tener varias versiones de la misma estadística para diferentes temporadas.
Pero ¿qué sucede si necesitamos restablecer manualmente la tabla de clasificación debido a un problema y volver a empezar la temporada?
En esos casos, podemos realizar un restablecimiento manual mediante la API. Aquí tiene un ejemplo con el 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);
}
```

Ahora estamos preparados para afrontar cualquier desafío con el control de versiones de las estadísticas. Un aspecto importante aquí es que el número de definiciones de estadísticas
que decidamos conservar como versiones se va a medir, ya que usan almacenamiento dentro del servicio. Vea más sobre esto aquí:

* [Estadísticas](/services/playfab/pricing/meters/statistics-meters).

## Conclusiones

En este tutorial, aprendimos a realizar las siguientes operaciones:

* Crear una estadística con la estrategia de restablecimiento adecuada
* Incrementar la versión de una estadística

## Consulte también

* [Más operaciones con estadísticas](/services/playfab/player-progression/statistics/doing-more-statistics).
* [Creación de estadísticas básicas](/services/playfab/player-progression/statistics/create-basic-statistics).
* [Adición de datos contextuales a las estadísticas](/services/playfab/player-progression/statistics/metadata-statistics).
* [Escrituras transaccionales](/services/playfab/player-progression/statistics/transactional-writes)
* [Referencia de API](/services/playfab/player-progression/statistics/api-reference).
* [Límites](/services/playfab/player-progression/statistics/limits-statistics).
* [Cuota](/services/playfab/player-progression/statistics/quota-statistics)


## Related topics

- [Cuota de estadísticas](/es/services/playfab/player-progression/statistics/quota-statistics.md)
- [Límites de las estadísticas](/es/services/playfab/player-progression/statistics/limits-statistics.md)
- [Estadísticas de la comunidad](/es/services/playfab/player-progression/statistics/community-statistics.md)
- [Inicio rápido de estadísticas](/es/services/playfab/player-progression/statistics/quickstart-statistics.md)
- [Estadísticas con metadatos](/es/services/playfab/player-progression/statistics/metadata-statistics.md)
