Statistiques des joueurs dans les jeux Android

L'API Player Stats vous permet d'adapter les expériences de jeu à des segments de joueurs spécifiques et à différentes étapes de leur cycle de vie. Vous pouvez créer des expériences personnalisées pour chaque segment de joueurs en fonction de leur progression, de leurs dépenses et de leur engagement. Par exemple, vous pouvez utiliser cette API pour prendre des mesures proactives afin d'encourager un joueur moins actif à reprendre son activité sur votre jeu, par exemple en affichant et faisant la promotion de nouveaux articles intégrés lorsqu'il se connecte.

Ce guide vous explique comment utiliser l'API Player Stats dans des jeux à l'aide des services de jeux Google Play. Les API sont disponibles dans les packages com.google.android.gms.games.stats et com.google.android.gms.games.

Avant de commencer

Avant d'utiliser l'API Player Stats :

Obtenir le client de statistiques des joueurs

Pour commencer à utiliser l'API Player Stats, votre jeu doit d'abord obtenir un objet PlayerStatsClient. Pour ce faire, il suffit d'appeler la méthode Games.getPlayerStatsClient() et de transmettre l'activité.

Principes de base des statistiques relatives aux joueurs

Vous pouvez utiliser l'API Player Stats pour récupérer des données sur l'activité d'un joueur dans un jeu. Voici quelques exemples de types de données de joueurs que vous pouvez obtenir :

  • Durée moyenne de la session : durée moyenne de la session du joueur, en minutes. La durée de la session est déterminée par le temps pendant lequel le joueur est connecté aux services de jeux Google Play.

  • Nombre de jours depuis la dernière partie : nombre approximatif de jours écoulés depuis la dernière partie.

  • Nombre d'achats : nombre approximatif d'achats via l'application pour ce joueur.

  • Nombre de sessions : nombre approximatif de sessions du joueur. Ce nombre est déterminé par le nombre de fois où un joueur se connecte aux services de jeux Google Play.

  • Centile de session : approximation du centile de session pour le joueur, exprimée sous la forme d'une valeur décimale comprise entre 0 et 1 inclus. Cette valeur indique le nombre de sessions du joueur actif par rapport au reste de la base de joueurs de ce jeu. Un nombre élevé indique qu'il a joué plus de sessions.

  • Centile de dépenses : centile approximatif des dépenses du joueur, exprimé sous la forme d'une valeur décimale comprise entre 0 et 1 inclus. Cette valeur indique le montant dépensé par ce joueur actuel par rapport au reste de la base de joueurs de ce jeu. Un nombre élevé indique des dépenses plus importantes.

Les types de données de joueur suivants sont obsolètes et renvoient systématiquement une constante de valeur non définie :

  • Probabilité de perte de l'utilisateur : prédiction de perte du joueur à compter du jour suivant, exprimée sous la forme d'une valeur décimale comprise entre 0 (faible probabilité de perte d'utilisateur) et 1 (probabilité élevée de perte d'utilisateur) inclus. On parle de "perte d'utilisateur" en cas d'inactivité pendant 7 jours.
  • Probabilité de dépense : probabilité approximative que le joueur choisisse d'effectuer des dépenses dans ce jeu, exprimée sous la forme d'une valeur décimale comprise entre 0 (faible probabilité de dépense) et 1 (probabilité élevée de dépenses) inclus.
  • Projection des dépenses sur 28 jours : prédiction du montant total estimé des dépenses du joueur au cours des 28 jours suivants pour ce jeu.
  • Probabilité d'un niveau de dépenses élevé : probabilité qu'un joueur dépense, au cours des 28 prochains jours, un montant inférieur ou égal au 95ᵉ centile de la base de joueurs de ce jeu. Il s'agit d'une valeur décimale comprise entre 0 (faible probabilité que le joueur effectue des dépenses élevées) et 1 (probabilité élevée de dépenses élevées).

Récupérer les données des statistiques des joueurs

Pour récupérer les données statistiques du joueur connecté, procédez comme suit :

  1. Appelez la méthode PlayerStatsClient.loadPlayerStats().
  2. Si l'appel aboutit, les services de jeux Google Play renvoient un objet Task qui charge de manière asynchrone un objet PlayerStats. Utilisez les méthodes de cet objet pour récupérer des données sur les activités du joueur connecté dans votre application.

Exemple :

public void checkPlayerStats() {
  PlayGames.getPlayerStatsClient(this)
      .loadPlayerStats(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) {
          if (task.isSuccessful()) {
            // Check for cached data.
            if (task.getResult().isStale()) {
              Log.d(TAG, "using cached data");
            }
            PlayerStats stats = task.getResult().get();
            if (stats != null) {
              Log.d(TAG, "Player stats loaded");
              if (stats.getDaysSinceLastPlayed() > 7) {
                Log.d(TAG, "It's been longer than a week");
              }
              if (stats.getNumberOfSessions() > 1000) {
                Log.d(TAG, "Veteran player");
              }
              if (stats.getChurnProbability() == 1) {
                Log.d(TAG, "Player is at high risk of churn");
              }
            }
          } else {
            int status = CommonStatusCodes.DEVELOPER_ERROR;
            if (task.getException() instanceof ApiException) {
              status = ((ApiException) task.getException()).getStatusCode();
            }
            Log.d(TAG, "Failed to fetch Stats Data status: "
                + status + ": " + task.getException());
          }
        }
      });
}

Conseils d'utilisation des données des statistiques relatives aux joueurs

L'API Play Stats vous permet d'identifier facilement différents types de joueurs en fonction de leur engagement et de leur comportement d'achat. Vous pouvez ainsi appliquer les stratégies appropriées pour améliorer leur expérience de jeu.

Le tableau suivant présente quelques exemples de segments de joueurs et les stratégies d'engagement correspondantes recommandées :

Segment de joueurs Stratégie d'engagement
Joueurs fréquents avec un grand nombre de sessions et un niveau de dépenses satisfaisant, mais qui n'ont pas joué depuis au moins une semaine.
  • Envoyez une notification concernant une remise ou un bonus spécial disponible en cas de retour au jeu.
  • Affichez un message de bienvenue saluant leurs réussites et accordez un badge conçu pour inciter les joueurs à reprendre leur activité.
Joueurs très engagés dans un centile de dépenses faible.
  • Personnalisez vos bonus afin de les encourager à inviter leurs amis à installer votre jeu et à y jouer. Cette approche s'appuie sur la capacité du joueur à recruter de nouveaux joueurs.
Joueurs ayant beaucoup dépensé, mais dont l'activité décline.
  • Personnalisez vos bonus pour raviver leur intérêt, par exemple en proposant des outils, des armes ou des remises à valeur élevée pour des durées limitées.
  • À leur prochaine connexion, lancez une vidéo les incitant à utiliser des fonctionnalités destinées à la communauté (des attaques de clans, par exemple) qui suscitent un engagement plus fréquent et plus durable.
Joueurs ayant une probabilité de dépense très élevée ou très faible.
  • Dépense peu probable : proposez-leur de regarder une vidéo publicitaire. Affichez des articles à acheter à prix réduit.
  • Dépense probable : dirigez-les rapidement vers la boutique intégrée au jeu et proposez-leur des promotions spéciales pour les inciter à faire des achats.