Statistiques des joueurs pour les jeux Android

Ce guide explique comment utiliser l'API Player Stats pour les services de jeux Google Play. Vous pouvez utiliser l'API Player Stats pour récupérer des données sur l'activité d'un joueur pendant son temps de jeu.

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. Cela peut passer par l'affichage et la promotion de nouveaux articles intégrés lorsqu'il se connecte.

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 Player Stats

Pour commencer à utiliser l'API Player Stats, votre jeu doit d'abord obtenir un objet PlayerStatsClient. Pour ce faire, appelez la méthode PlayerStatsClient.getPlayersClient() et transmettez l'activité.

La classe PlayerStatsClient utilise la classe Task des services Google Play pour renvoyer les résultats de manière asynchrone. Pour en savoir plus sur l'utilisation de tâches pour gérer les threads, consultez le guide du développeur pour l'API Tasks.

Principes de base de Player Stats

Vous pouvez utiliser l'API Player Stats pour récupérer des données sur l'activité d'un joueur pendant son temps de jeu. Voici quelques exemples des types de données 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 correspond à la durée de connexion du joueur 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. Cette valeur correspond au nombre de fois qu'un joueur se connecte aux services de jeux Google Play.

  • Centile de sessions : centile approximatif des sessions du joueur, exprimé sous la forme d'une valeur décimale comprise entre 0 et 1 inclus. Cette valeur indique le nombre de sessions du joueur en cours 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 le joueur en cours 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 suivants sont obsolètes et renvoient systématiquement une constante de valeur non définie :

  • Probabilité de perte de l'utilisateur : probabilité de perdre le joueur dans la journée à venir, exprimée sous la forme d'une valeur décimale comprise entre 0 (faible probabilité) et 1 (forte probabilité) 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é) et 1 (forte probabilité) inclus.
  • Projection des dépenses sur 28 jours : montant total approximatif des dépenses attendues du joueur au cours des 28 prochains jours dans ce jeu.
  • Probabilité d'un niveau de dépenses élevé : probabilité approximative qu'un joueur dépense, au cours des 28 prochains jours, un montant inférieur ou égal au 95e centile de la base de joueurs de ce jeu. Il s'agit d'une valeur décimale comprise entre 0 (faible probabilité) et 1 (forte probabilité).

Récupérer les données Player Stats

Pour récupérer les données Player Stats du joueur connecté :

  1. Appelez la méthode PlayerStatsClient.loadPlayerStats().

  2. Si l'appel aboutit, les services de jeux Google Play renvoient un objet Task qui charge un objet PlayerStats de manière asynchrone. 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 pour utiliser les données Player Stats

L'API Player Stats vous permet d'identifier différents types de joueurs en fonction de leur engagement et de leur comportement de dépense. 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 bon centile de dépenses, mais qui n'ont pas joué depuis au moins une semaine.
  • Envoyez-leur une notification indiquant qu'ils pourront bénéficier d'une remise ou d'un bonus spécial s'ils reviennent jouer.
  • Affichez un message du type "Heureux de vous retrouver" saluant leurs réussites, et accordez un badge spécial pour récompenser les retours.
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é des joueurs à en recruter de nouveaux.
Joueurs ayant beaucoup dépensé, mais dont l'activité a commencé à décliner après avoir atteint un pic.
  • 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.