Statystyki graczy w grach na Androida

Ten przewodnik pokazuje, jak korzystać z interfejsu Player Stats API w usługach gier Play. Za pomocą interfejsu Player Stats API możesz pobierać dane o aktywności gracza w grze.

Interfejs API statystyk gracza umożliwia dostosowywanie rozgrywki do konkretnych segmentów graczy i różnych etapów cyklu życia gracza. Możesz tworzyć dostosowane do potrzeb poszczególnych segmentów graczy funkcje na podstawie ich postępów, wydatków i zaangażowania. Możesz na przykład użyć tego interfejsu API, aby podejmować proaktywne działania zachęcające mniej aktywnych graczy do ponownego zaangażowania się w grę, np. wyświetlać i promować nowe elementy w grze, gdy gracz się uwierzytelni.

Interfejsy API znajdziesz w pakietach com.google.android.gms.games.statscom.google.android.gms.games.

Zanim zaczniesz

Zanim zaczniesz korzystać z interfejsu API statystyk graczy:

Pobieranie klienta statystyk zawodników

Aby zacząć korzystać z interfejsu Player Stats API, gra musi najpierw uzyskać obiekt PlayerStatsClient. Możesz to zrobić, wywołując metodę PlayerStatsClient.getPlayersClient() i przekazując aktywność.

Klasa PlayerStatsClient korzysta z klasy usług Google Play Task do asynchronicznego zwracania wyników. Więcej informacji o używaniu zadań do zarządzania pracą w wątkach znajdziesz w Przewodniku dla programistów korzystających z interfejsu Tasks API.

Podstawowe informacje o statystykach zawodników

Za pomocą interfejsu Player Stats API możesz pobierać dane o aktywności gracza w grze. Typy danych gracza, które możesz pobrać, to:

  • Średnia długość sesji: średnia długość sesji odtwarzacza w minutach. Długość sesji zależy od czasu, w którym gracz zostanie uwierzytelniony przez usługi gier Play.

  • Dni od ostatniej gry: przybliżona liczba dni od ostatniej gry.

  • Liczba zakupów: przybliżona liczba zakupów w aplikacji dokonanych przez gracza.

  • Liczba sesji: przybliżona liczba sesji odtwarzacza. Sesje są określane na podstawie liczby uwierzytelnień gracza przez usługi gier Google Play.

  • Percentyl sesji: przybliżona wartość percentyla sesji gracza podana jako liczba dziesiętna z przedziału od 0 do 1 (włącznie). Ta wartość wskazuje, ile sesji rozegrał bieżący gracz w porównaniu z pozostałymi graczami w tej grze. Wyższe liczby oznaczają, że ten gracz rozegrał więcej sesji.

  • Percentyl wydatków: przybliżony percentyl wydatków gracza podany jako wartość dziesiętna z zakresu od 0 do 1 włącznie. Ta wartość wskazuje, ile obecny gracz wydał w porównaniu z pozostałymi graczami w tej grze. Wyższe liczby oznaczają, że ten gracz wydał więcej.

Te typy danych gracza są wycofane i zawsze zwracają stałą wartościę „nieustawiona”:

  • Prawdopodobieństwo rezygnacji: prognoza, czy gracz zrezygnuje z gry w ciągu najbliższego dnia. Jest to wartość dziesiętna z zakresu od 0 (niskie prawdopodobieństwo rezygnacji) do 1 (wysokie prawdopodobieństwo rezygnacji) włącznie. Rezygnacja jest definiowana jako 7 dni nieaktywności.
  • Prawdopodobieństwo wydatków: przybliżone prawdopodobieństwo, że gracz zdecyduje się na wydatki w tej grze. Jest to wartość dziesiętna z zakresu od 0 (niskie prawdopodobieństwo wydatków) do 1 (wysokie prawdopodobieństwo wydatków) włącznie.
  • Łączne wydatki w ciągu najbliższych 28 dni: przybliżone łączne wydatki graczy w tej grze w ciągu najbliższych 28 dni.
  • Prawdopodobieństwo, że użytkownik wyda dużo pieniędzy: przybliżone prawdopodobieństwo, że w ciągu najbliższych 28 dni gracz wyda kwotę, która będzie należeć do 5% najwyższych wydatków w tej grze. Jest to wartość dziesiętna z przedziału od 0 (niskie prawdopodobieństwo, że użytkownik będzie wydawać dużo pieniędzy) do 1 (wysokie prawdopodobieństwo, że użytkownik będzie wydawać dużo pieniędzy).

Pobieranie danych statystyk gracza

Aby pobrać dane statystyczne gracza dla uwierzytelnionego gracza, wykonaj te czynności:

  1. Wywołaj metodę PlayerStatsClient.loadPlayerStats().

  2. Jeśli wywołanie się powiedzie, usługi gier Google Play zwrócą obiekt Task, który asynchronicznie wczytuje obiekt PlayerStats. Użyj metod tego obiektu, aby pobrać dane o aktywnościach uwierzytelnionego gracza w Twojej aplikacji.

Oto przykład:

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());
          }
        }
      });
}

Wskazówki dotyczące korzystania z danych statystycznych graczy

Interfejs Play Stats API umożliwia identyfikowanie różnych typów graczy na podstawie ich zaangażowania i zachowań związanych z wydawaniem środków oraz stosowanie odpowiednich strategii w celu zwiększenia komfortu gry.

W tabeli poniżej znajdziesz przykładowe segmenty graczy i rekomendowane strategie angażowania:

Segment graczy Strategia zaangażowania
Często grający użytkownicy z dużą liczbą sesji i dobrym percentilem wydatków, którzy nie grali przez ostatni tydzień lub dłużej.
  • wysyłać powiadomienia o rabatach lub specjalnych bonusach dostępnych po powrocie do gry;
  • Wyświetl komunikat powitalny, który podkreśla imponujące osiągnięcia, i przyznaj odznakę zachęcającą do ponownej gry.
Bardzo zaangażowani gracze w niskim przedziale centylowym wydatków.
  • Dostosuj bonusy, aby zachęcić ich do zapraszania znajomych do zainstalowania Twojej gry i dołączenia do niej. To podejście opiera się na wykazanej przez gracza przyjemności z gry, aby pozyskać nowych graczy.
Gracze, którzy dużo wydają, wykazują oznaki osiągnięcia szczytu i zaczynają grać rzadziej.
  • Dostosuj bonusy, aby odświeżyć zainteresowanie graczy, np. oferując wartościowe narzędzia, broń lub rabaty o krótkim czasie trwania.
  • Przy następnej próbie uwierzytelnienia odtwórz film, który kieruje gracza do funkcji społecznościowych, takich jak ataki klanowe, które zwiększają częstotliwość i długość zaangażowania.
Gracze o bardzo wysokim lub bardzo niskim prawdopodobieństwie wydatków.
  • Mało prawdopodobne, że dokona zakupu: daj możliwość obejrzenia reklamy wideo. Wyświetlaj tańsze produkty, które można kupić.
  • Prawdopodobieństwo wydania środków: skieruj ich do sklepu w grze na wczesnym etapie i zaoferuj specjalne promocje, aby zachęcić ich do zakupu.