Estadísticas de jugadores en juegos para Android

La API de Player Stats te permite personalizar experiencias del juego para segmentos específicos de jugadores y diferentes etapas del ciclo de vida del jugador. Puedes crear experiencias personalizadas para cada segmento de jugadores según su avance, gasto y participación. Por ejemplo, puedes usar esta API para realizar acciones proactivas a fin de incentivar a un jugador menos activo para que vuelva a interesarse en tu juego; por ejemplo, mostrando y promocionando nuevos elementos del juego cuando acceda el jugador.

Esta guía te muestra cómo usar la API de Player Stats en juegos que utilizan los servicios de juego de Google Play. Las API se pueden encontrar en los paquetes com.google.android.gms.games.stats y com.google.android.gms.games.

Antes de comenzar

Antes de comenzar a usar la API de Player Stats, haz lo siguiente:

Cómo obtener el cliente de Player Stats

Para comenzar a usar la API de Player Stats, el juego primero debe obtener un objeto PlayerStatsClient. Para lograrlo, puedes llamar al método Games.getPlayerStatsClient() y pasar la actividad y GoogleSignInAccount para el jugador actual. Si quieres saber cómo recuperar la información de la cuenta del jugador, consulta Información sobre el acceso a juegos para Android.

Aspectos básicos de Player Stats

Puedes usar la API de Player Stats para obtener datos sobre la actividad de un jugador en el juego. Entre los tipos de datos sobre los jugadores que puedes obtener, se incluyen los siguientes:

  • Duración promedio de la sesión: Indica la duración promedio de la sesión del jugador en minutos; la extensión de la sesión se determina por el tiempo que permanece conectado el jugador a los servicios de juego de Google Play.

  • Días desde la última vez que jugó: Indica la cantidad aproximada de días desde la última vez que jugó el usuario.

  • Número de compras: Indica la cantidad aproximada de compras del jugador en la aplicación.

  • Número de sesiones: Indica la cantidad aproximada de sesiones del jugador; las sesiones se determinan por la cantidad de veces que accede el jugador a los servicios de juego de Google Play.

  • Percentil de sesiones: Indica la aproximación del percentil de sesiones del jugador, dada como un valor decimal entre 0 y 1 inclusive. Este valor indica el número de sesiones en las que participó el jugador actual en comparación con el resto de la base de jugadores del juego. Los números más altos indican que ese jugador participó en más sesiones.

  • Percentil de gasto: Indica el percentil de gasto aproximado del jugador, dado como un valor decimal entre 0 y 1 inclusive. Este valor indica los gastos del jugador actual en comparación con el resto de la base de jugadores del juego. Los números más altos indican que los gastos de este jugador fueron mayores.

Los siguientes tipos de datos del jugador están en desuso y siempre muestran una constante de valor no establecido:

  • Probabilidad de deserción: Indica la predicción de si un jugador abandonará el próximo día, dado como un valor decimal entre 0 (baja probabilidad de abandono) a 1 (alta probabilidad de abandono) inclusive. Por definición, la deserción equivale a 7 días de inactividad.
  • Probabilidad de consumo: Indica la probabilidad aproximada de que el jugador elija gastar en este juego, dado como un valor decimal entre 0 (baja probabilidad de gasto) a 1 (alta probabilidad de gasto) inclusive.
  • Consumo total para los próximos 28 días: Indica el gasto total aproximado del jugador durante los próximos 28 días en este juego.
  • Probabilidad de consumo elevado: Indica la probabilidad aproximada de que durante los próximos 28 días un jugador gaste una cantidad que se encuentra en el percentil 95 o superior de la base de jugadores de este juego. Esto se da como un valor decimal entre 0 (baja probabilidad de convertirse en un usuario con gastos elevados) a 1 (alta probabilidad de convertirse en un usuario con gastos elevados).

Cómo recuperar datos de Player Stats

Si deseas recuperar datos de estadísticas del jugador que está conectado actualmente, sigue estos pasos:

  1. Llama al método PlayerStatsClient.loadPlayerStats().
  2. Si la llamada se realiza correctamente, los servicios de juego de Google Play muestran un objeto Task que carga un objeto PlayerStats de forma asíncrona. Usa los métodos de este objeto para recuperar datos sobre las actividades en tu app del jugador que accedió.

Por ejemplo:

    public void checkPlayerStats() {
      Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(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());
              }
            }
          });
    }
    

Sugerencias para usar los datos de Player Stats

La API de Player Stats te permite identificar fácilmente varios tipos de jugadores según su participación y comportamiento de consumo, y aplicar estrategias adecuadas para mejorar la experiencia de juego.

En la siguiente tabla se muestran algunos ejemplos de segmentos de jugadores y estrategias de participación recomendadas:

Segmento de jugadores Estrategia de participación
Jugadores frecuentes con una gran cantidad de sesiones y un buen percentil de consumo, pero que no hayan usado el juego durante la última semana o por más tiempo
  • Envía una notificación sobre un descuento o beneficio especial disponible cuando vuelvan a jugar.
  • Muestra un mensaje de bienvenida en el que se reconozcan logros notables y se otorgue una insignia para alentar el regreso al juego.
Jugadores muy activos en un percentil de consumo bajo
  • Personaliza beneficios para alentarlos a que inviten a sus amigos a instalar y usar el juego. Este enfoque se basa en el disfrute del juego demostrado por el jugador con el objetivo de atraer jugadores nuevos.
Jugadores con consumo elevado que muestren signos de haber alcanzado un pico y comiencen a jugar con menos frecuencia
  • Personaliza beneficios para renovar su interés; por ejemplo, puedes ofrecer herramientas de gran valor y corta duración, armas o descuentos.
  • La próxima vez que el usuario acceda al juego, muestra un video que lo dirija a las funciones de la comunidad, como ataques de clanes, que generen una participación más frecuente y prolongada.
Jugadores con probabilidad de consumo muy alta o muy baja
  • Si no es probable que gasten, ofrece la opción de ver un video publicitario. Muestra artículos de menor precio para la compra.
  • Si es probable que gasten, dirígelos a la tienda del juego desde un principio y ofrece promociones especiales para incentivarlos a comprar.