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

# Utilisation des statistiques de joueur

> Découvrez comment créer, mettre à jour et interroger les statistiques de joueur PlayFab sous forme de paires clé-valeur, et comment configurer les autorisations client et serveur dans Game Manager.

Ce tutoriel décrit comment créer et utiliser des statistiques de joueur. Les statistiques de joueur sont stockées sous forme de paires clé-valeur (KVP) où la clé est une chaîne et la valeur un entier 32 bits (pour assurer la compatibilité avec les langages qui ne prennent pas en charge le 64 bits).

Les statistiques de joueur sont également utilisées par les classements, mais ce guide traite exclusivement des statistiques de joueur. Si vous souhaitez savoir comment les statistiques de joueur et les classements fonctionnent *ensemble*, lisez notre tutoriel [Utilisation des statistiques et classements réinitialisables](/fr/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

<Note>
  Dans certaines documentations et certains appels d'API, vous pouvez rencontrer le terme **UserStatistics**. Dans le cadre de cette discussion, les termes *utilisateur* et *joueur* sont identiques et interchangeables. Dans la page **Game Manager**, l'onglet **Players** donne accès aux **Users/Players** de votre titre et, au sein de celui-ci, à leurs statistiques. Les statistiques de joueur désignent spécifiquement des informations liées à un joueur, et non des informations analytiques sur le joueur.
</Note>

## API client

Le client a accès en lecture aux statistiques de joueur mais, pour éviter la triche, il ne peut pas mettre à jour les statistiques par défaut.

Pour activer cette possibilité :

* [Connectez-vous à PlayFab](https://developer.playfab.com/en-us/my-games)
* Sélectionnez votre **Title**.
* Sélectionnez **Settings** dans le menu de gauche.
* Sélectionnez l'onglet **API Features**.
* Recherchez et activez **Allow client to post player statistics**.

<Note>
  Cette action désactive une couche de sécurité pour votre titre, permettant aux joueurs de publier des scores arbitraires pour toutes leurs statistiques. Si votre jeu comporte *un quelconque* aspect compétitif, nous vous recommandons de ne *jamais* publier de statistiques depuis le client.
</Note>

## Les statistiques sont des informations publiques

Il n'existe pas de statistiques privées ou réservées au serveur. Un joueur peut toujours lire toutes ses propres statistiques via [GetPlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.getplayerstatistics), et peut lire les statistiques de tous les autres joueurs via les appels d'API de classement. C'est le cas même si vous *n'affichez pas* une statistique dans le jeu ou si vous n'utilisez pas de classements.

La seule exception serait de désactiver des fonctionnalités client par le biais de notre [stratégie d'accès aux API](/fr/services/playfab/api-references/api-access-policy). Consultez ce lien pour plus d'informations sur l'utilisation des paramètres de stratégie pour les titres, car il s'agit d'un sujet avancé qui n'est pas couvert par ce tutoriel.

## Définition des statistiques

Le code Unity/C# suivant crée (ou met à jour s'il existe déjà) une valeur de *statistique de force* pour un joueur.

```csharp theme={null}
PlayFabClientAPI.UpdatePlayerStatistics( new UpdatePlayerStatisticsRequest {
    // request.Statistics is a list, so multiple StatisticUpdate objects can be defined if required.
    Statistics = new List<StatisticUpdate> {
        new StatisticUpdate { StatisticName = "strength", Value = 18 },
    }
},
result => { Debug.Log("User statistics updated"); },
error => { Debug.LogError(error.GenerateErrorReport()); });
```

## Obtention des statistiques

Le code Unity/C# suivant récupère toutes les valeurs de statistiques actuelles d'un joueur.

```csharp theme={null}
void GetStatistics()
{
    PlayFabClientAPI.GetPlayerStatistics(
        new GetPlayerStatisticsRequest(),
        OnGetStatistics,
        error => Debug.LogError(error.GenerateErrorReport())
    );
}

void OnGetStatistics(GetPlayerStatisticsResult result)
{
    Debug.Log("Received the following Statistics:");
    foreach (var eachStat in result.Statistics)
        Debug.Log("Statistic (" + eachStat.StatisticName + "): " + eachStat.Value);
}
```

## Méthode d'agrégation

PlayFab prend en charge plusieurs options pratiques pour l'agrégation des statistiques. Les quatre options sont les suivantes :

* **Last**
* **Min**
* **Max**
* **Sum**

Vous pouvez créer une définition de statistique via l'appel d'API [CreatePlayerStatisticDefinition](xref:titleid.playfabapi.com.admin.playerdatamanagement.createplayerstatisticdefinition), bien que ce ne soit pas obligatoire. Tout appel visant à mettre à jour une statistique de joueur pour le titre créera *automatiquement* la définition de statistique par défaut, avec la méthode d'agrégation Last.

Pour modifier la méthode d'agrégation d'une statistique, vous pouvez utiliser Game Manager ou l'appel d'API [UpdatePlayerStatisticDefinition](xref:titleid.playfabapi.com.admin.playerdatamanagement.updateplayerstatisticdefinition).

Pour modifier une définition de statistique dans **Game Manager** :

* Connectez-vous à [PlayFab](https://developer.playfab.com/en-us/my-games)

* Sélectionnez votre **Title**.

* Sélectionnez **Leaderboards** dans le menu de gauche (**Statistics** et **Leaderboards** sont étroitement liés).

* Sélectionnez la statistique existante que vous souhaitez modifier, ou -

* Sélectionnez le bouton **New Leaderboard**.
  * Pour une statistique existante, une autre page s'affiche, avec un bouton **Edit Leaderboard**.

* Vous devriez alors voir la page illustrée ci-dessous.

  <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/playfab-edit-leaderboard-stat-aggregation.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=5a2df0b42ab1f848705b3bac3b2633d8" alt="Classements PlayFab - Modifier le classement - Agrégation des statistiques" width="1280" height="900" data-path="images/playfab/player-progression/player-data/tutorials/playfab-edit-leaderboard-stat-aggregation.png" />

Quelques exemples d'utilisation de l'agrégation des statistiques :

* **Max** et **Min** peuvent servir à enregistrer les **meilleurs/pires** scores, comme les tirs à la tête ou la précision :
  * En bref, ils appliquent la règle suivante : **si cette valeur est supérieure (ou inférieure) au score existant, mettre à jour le score**.
  * Publiez la statistique à la fin de la session, et l'**agrégation Min/Max** détermine s'il faut effectuer la mise à jour.
  * Elles peuvent être très utiles pour les [classements réinitialisables](/fr/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards), ainsi que pour une [règle PlayStream](https://playfab.com/introducing-playstream/) qui attribue des succès.

* **Sum** peut servir à enregistrer des points d'expérience :
  * Vous publiez l'expérience gagnée lors de ce combat, et elle est ajoutée à la valeur de statistique existante du joueur.

* **Last** vous permet de gérer vous-même la statistique :
  * Chaque fois que vous publiez une statistique, la valeur la plus récente est utilisée.

## Classements

Un classement est généré pour toutes les statistiques enregistrées dans PlayFab. L'accès au classement d'une statistique spécifique est facultatif.

La fréquence de réinitialisation et les méthodes d'agrégation jouent un rôle majeur dans le dynamisme des classements de votre jeu. La fonctionnalité **Tournaments** se concentre sur les classements avec des fréquences de réinitialisation automatiques ; elle est décrite dans le tutoriel [Utilisation des statistiques et classements réinitialisables](/fr/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

Nous vous encourageons à utiliser les statistiques de toutes les manières pertinentes pour votre jeu. Vous pouvez utiliser côte à côte des statistiques réinitialisables pour organiser des tournois quotidiens et des statistiques à long terme comme les points d'expérience.


## Related topics

- [Outil de réinitialisation des données de joueur (XblPlayerDataReset.exe)](/fr-CA/tools/tools-services/live-player-data-reset.md)
- [XR048 Utilisation des paramètres de profil](/fr/publishing/certification/fma/xr-048.md)
- [XR-048 Utilisation des paramètres de profil](/fr-CA/publishing/certification/xr/xr-048.md)
- [XR-018 : Contenu généré par l'utilisateur](/fr/publishing/certification/xr/xr-018.md)
- [XR-067 Maintien des interactions Joueurs récents](/fr-CA/publishing/certification/xr/xr-067.md)
