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

# Métadonnées des statistiques

> Associez des métadonnées aux statistiques PlayFab pour transmettre des détails contextuels avec les valeurs numériques, afin d'enrichir les entrées de classement et les données de progression des joueurs.

# Ajouter des données contextuelles aux statistiques

Dans ce tutoriel, nous allons expliquer comment ajouter des informations contextuelles à chaque mise à jour d'une statistique. Dans certains cas,
il ne suffit pas d'enregistrer les statistiques. Le studio de jeu peut ajouter des détails sur la façon dont un joueur a réalisé une action spécifique,
ou le jeu peut comporter une fonctionnalité liée à la statistique.

Nous allons poursuivre avec notre jeu de tir compétitif. Dans cet exemple, le jeu rencontre un énorme succès, mais il est
confronté à un défi : de trop nombreuses plaintes signalent des joueurs qui « piratent » le jeu à l'aide de composants
externes qui suppriment le recul des armes et améliorent l'aide à la visée. Nous sommes donc chargés de suivre davantage d'informations sur tous
les composants utilisés et sur le réseau dans notre jeu.

## Création d'une statistique

Pour montrer comment gérer ce scénario, nous allons reprendre la définition de statistique de la page
[Aller plus loin avec les statistiques](/fr-CA/services/playfab/player-progression/statistics/doing-more-statistics). À partir de cette définition, nous allons
voir comment ajouter des métadonnées à chaque ligne ajoutée à la statistique.

```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 = 1,
            ResetInterval = ResetInterval.Manual,
        },
        Columns = new List<StatisticColumn>()
        {
            new StatisticColumn()
            {
                Name = "Distance",
                AggregationMethod = StatisticAggregationMethod.Max,
            },
             new StatisticColumn()
            {
                Name = "Caliber",
                AggregationMethod = StatisticAggregationMethod.Min,
            }
        },
    };
    
    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
```

Pour ce tutoriel, l'élément important à retenir de cet exemple est la structure de la statistique. Comme vous pouvez le voir,
elle comporte plusieurs colonnes qui permettent d'enregistrer plusieurs valeurs. Mais nous nous intéressons ici à la façon d'ajouter des informations
contextuelles à chacune de ces lignes.

### Ajout de métadonnées à chaque statistique

Nous voulons savoir si le joueur utilise du matériel non autorisé qui affecte le gameplay ou tout autre logiciel malveillant susceptible
d'améliorer ses performances. Le système anti-triche est capable d'obtenir toutes ces informations. Il nous suffit d'associer
ces informations à la statistique des tirs à longue distance.

Pour ce faire, nous allons utiliser l'API UpdateStatistics. Voici l'exemple avec le SDK :

```C# theme={null}
public static async Task UpdateStatisticForPlayer(PlayFabAuthenticationContext context, string statName, string entityId, int score)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    UpdateStatisticsRequest updateStatRequest = new UpdateStatisticsRequest()
    {
        Entity = new PlayFab.LeaderboardsModels.EntityKey()
        {
            Id = entityId,
            Type = EntityType
        },
        AuthenticationContext = context,
        Statistics = new List<PlayFab.LeaderboardsModels.StatisticUpdate>() 
        {
            new PlayFab.LeaderboardsModels.StatisticUpdate() 
            {
                Name = statName,
                Scores = new List<string> { score.ToString()},
                Metadata = "Anticheat data"
            }
        }
    };

    PlayFabResult<UpdateStatisticsResponse> updateResult = await statsAPI.UpdateStatisticsAsync(updateStatRequest);
}
```

Le principal concept illustré ici est l'utilisation du paramètre `Metadata` dans `StatisticUpdate`, qui fait référence
aux données contextuelles mises à jour en plus de la valeur elle-même. Nous pouvons y ajouter toute information utile pour un développeur,
en l'occurrence les données anti-triche.

Grâce à ces exemples, nous sommes désormais en mesure de suivre toutes les informations pertinentes sur nos meilleurs joueurs, ce qui permet aux modérateurs du jeu
de mieux décider qui bannir.

## Conclusions

Dans ce tutoriel, nous avons appris à effectuer les opérations suivantes :

* Créer une statistique à plusieurs colonnes.
* Ajouter des métadonnées à la statistique.

## Voir aussi

* [Créer des statistiques de base](/fr-CA/services/playfab/player-progression/statistics/create-basic-statistics).
* [Aller plus loin avec les statistiques](/fr-CA/services/playfab/player-progression/statistics/doing-more-statistics).
* [Statistiques saisonnières](/fr-CA/services/playfab/player-progression/statistics/seasonal-statistics).
* [Écritures transactionnelles](/fr-CA/services/playfab/player-progression/statistics/transactional-writes)
* [Référence de l'API](/fr-CA/services/playfab/player-progression/statistics/api-reference).
* [Limites](/fr-CA/services/playfab/player-progression/statistics/limits-statistics).
* [Quota](/fr-CA/services/playfab/player-progression/statistics/quota-statistics)


## Related topics

- [Vue d'ensemble des classements basés sur les événements](/fr-CA/services/xbox-services/player-data/stats-leaderboards/event-based/live-leaderboards-eb-overview.md)
- [Premier aperçu des statistiques basées sur les événements](/fr-CA/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-stats-first-glance.md)
- [Compteurs Statistics](/fr-CA/services/playfab/pricing/meters/statistics-meters.md)
- [Quotas des statistiques](/fr-CA/services/playfab/player-progression/statistics/quota-statistics.md)
- [Limites des statistiques](/fr-CA/services/playfab/player-progression/statistics/limits-statistics.md)
