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

# Ajouter des données contextuelles aux classements

> Associez des métadonnées personnalisées à chaque ligne d'un classement PlayFab pour suivre le contexte des parties, les détails des appareils ou les signaux anti-triche en parallèle des scores et du rang des joueurs.


Dans ce didacticiel, nous allons expliquer comment ajouter des informations contextuelles chaque fois qu'un classement est mis à jour. Le studio de jeu peut vouloir ajouter des détails sur le contexte dans lequel un joueur a obtenu un score, ou il peut exister une fonctionnalité du jeu liée à ce score.

Nous allons maintenant passer de nos exemples précédents, où nous avions un jeu d'arcade, à un jeu de tir très compétitif. Dans cet exemple,
le jeu connaît un immense succès, mais fait face à un défi. Il y a trop de plaintes concernant des personnes qui « piratent » le jeu avec des 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 pour nos parties classées.

## Création d'un classement

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

```C# theme={null}
public static async Task CreateLeaderboardDefinitionAsync(PlayFabAuthenticationContext context, string leaderboardName)
{
    PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateLeaderboardDefinitionRequest leaderboardDefinitionRequest = new CreateLeaderboardDefinitionRequest()
    {
        AuthenticationContext = context,
        Name = leaderboardName,
        SizeLimit = 1000,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 1,
            ResetInterval = ResetInterval.Manual,
        },
        Columns = new List<LeaderboardColumn>()
        {
            new LeaderboardColumn()
            {
                Name = "Eliminations",
                SortDirection = LeaderboardSortDirection.Descending,
            },
            new LeaderboardColumn()
            {
                Name = "Assists",
                SortDirection = LeaderboardSortDirection.Descending,
            }
            new LeaderboardColumn()
            {
                Name = "Deaths",
                SortDirection = LeaderboardSortDirection.Ascending,
            }         
        }
    };

    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createLbDefinitionResult = await leaderboardsAPI.CreateLeaderboardDefinitionAsync(leaderboardDefinitionRequest);
}
```

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

Nous voulons savoir si le joueur dispose d'un matériel non autorisé qui affecte le gameplay ou de tout autre logiciel malveillant susceptible
d'améliorer ses performances. Le système anti-triche est capable d'obtenir toutes ces informations, mais comme il y a un
nombre considérable de joueurs, nous allons nous concentrer sur le signalement des meilleurs scores, ainsi que sur les métadonnées des composants externes.

Pour effectuer cette action, nous allons utiliser l'API UpdateLeaderboard. Voici l'exemple du SDK :

```C# theme={null}
public static async Task UpdateLeaderboardForPlayer(PlayFabAuthenticationContext context, string leaderboardName, string entityId, int score)
{
    PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
    UpdateLeaderboardEntriesRequest updateLeaderboardRequest = new UpdateLeaderboardEntriesRequest()
    {
        Entries = new List<LeaderboardEntryUpdate>()
        {
            new LeaderboardEntryUpdate()
            {
                EntityId = entityId,
                Scores = new List<string> { score.ToString(), (score + 1).ToString(), (score + 2).ToString() },
                Metadata = "AntiCheat Data",
            }
        },
        AuthenticationContext = context,
        LeaderboardName = leaderboardName,
    };

    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> updateResult = await leaderboardsAPI.UpdateLeaderboardEntriesAsync(updateLeaderboardRequest);
}
```

Ici, nous utilisons le paramètre `Metadata` de `LeaderboardEntryUpdate` pour ajouter des informations utiles au développeur. Dans ce cas, nous l'utilisons pour stocker des données anti-triche. Grâce à cet exemple, 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 prendre de meilleures décisions quant aux joueurs à bannir.

## Conclusions

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

* Créer un classement à plusieurs colonnes.
* Ajouter des métadonnées à chaque ligne du classement.

## Voir aussi

* [Aller plus loin avec les classements](/fr/services/playfab/community/leaderboards/doing-more-with-leaderboards).
* [Créer un classement de base](/fr/services/playfab/community/leaderboards/create-basic-leaderboard).
* [Limites ](/fr/services/playfab/community/leaderboards/limits-leaderboards).
* [Quota ](/fr/services/playfab/community/leaderboards/quota-leaderboards).
* [Classements de groupes](/fr/services/playfab/community/leaderboards/group-leaderboards).
* [Niveaux manuels](/fr/services/playfab/community/leaderboards/manual-tiers).
* [Classer les joueurs selon les statistiques](/fr/services/playfab/community/leaderboards/leaderboards-linked-to-stats)
* [Ajouter des données contextuelles aux classements](/fr/services/playfab/community/leaderboards/metadata-leaderboards)
* [Référence de l'API](/fr/services/playfab/community/leaderboards/api-reference)
* [Classements et CloudScript](/fr/services/playfab/community/leaderboards/leaderboards-cloudscript).
* [Classements avec PlayStream](/fr/services/playfab/community/leaderboards/leaderboards-with-playstream-and-telemetry)


## Related topics

- [Ajouter des services dorsaux avec PlayFab](/fr-CA/home/build-first-title/add-backend-services.md)
- [XR-013 Liaison des comptes Microsoft aux comptes d'éditeur](/fr-CA/publishing/certification/xr/xr-013.md)
- [Ajouter des services backend avec PlayFab](/fr/home/build-first-title/add-backend-services.md)
- [XR-014 Données des joueurs et informations personnelles](/fr/publishing/certification/xr/xr-014.md)
- [XR-014 Données des joueurs et renseignements personnels](/fr-CA/publishing/certification/xr/xr-014.md)
