Statystyki graczy w grach na Androida

Z tego przewodnika dowiesz się, jak korzystać z interfejsu API statystyk gracza w usługach gier Google Play. Za pomocą interfejsu API statystyk gracza możesz pobierać dane o aktywności gracza w grze.

Interfejs API statystyk graczy pozwala dostosować gry do konkretnych segmentów graczy i etapów ich życia. Dla każdego segmentu możesz dostosować środowisko na podstawie postępów graczy, wydatków i ich zaangażowania. Korzystając z tego interfejsu API, możesz na przykład zachęcać mniej aktywnych graczy do ponownego zaangażowania się w grę. Przykładem może być wyświetlanie i promowanie nowych produktów w grze, gdy gracz się zaloguje.

Interfejsy API można znaleźć w pakietach com.google.android.gms.games.stats i com.google.android.gms.games.

Rodzaje danych odtwarzacza, które można pobierać:

  • Średnia długość sesji: średnia długość sesji gracza w minutach. Długość sesji zależy od czasu, w którym użytkownik jest zalogowany w usługach Gier Google Play.

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

  • Liczba zakupów: przybliżona liczba zakupów w aplikacji dla odtwarzacza.

  • Liczba sesji: przybliżona liczba sesji gracza. Sesje są określane na podstawie tego, ile razy użytkownik loguje się w usługach Gier Google Play.

  • Percentyl sesji: przybliżony centyl sesji dla odtwarzacza podany jako wartość dziesiętna z zakresu od 0 do 1 włącznie. Ta wartość wskazuje, ile sesji zagrał bieżący gracz w porównaniu z resztą graczy. Wyższe liczby oznaczają, że dany gracz zagrał więcej sesji.

  • Percentyl wydatków: przybliżony centyl wydatków odtwarzacza podany jako wartość dziesiętna z zakresu od 0 do 1 włącznie. Ta wartość wskazuje, ile wydał bieżący gracz w porównaniu do reszty graczy. Wyższe liczby oznaczają, że dany gracz wydał więcej.

Te typy danych odtwarzacza zostały wycofane i zawsze zwracają nieskonfigurowaną wartość:

  • Prawdopodobieństwo rezygnacji: prognoza określająca, czy gracz zrezygnuje następnego dnia, podana jako wartość dziesiętna z zakresu od 0 (niskie prawdopodobieństwo rezygnacji) do 1 (duże prawdopodobieństwo rezygnacji) włącznie. Rezygnacja oznacza 7 dni nieaktywności.
  • Prawdopodobieństwo wydatków: przybliżone prawdopodobieństwo, że gracz zdecyduje się wydać w grze, wyrażone jako wartość dziesiętna z zakresu od 0 (niskie prawdopodobieństwo wydatków) do 1 (wysokie prawdopodobieństwo wydania) włącznie.
  • Łączne wydatki w ciągu kolejnych 28 dni: przybliżone szacowane łączne wydatki graczy w ciągu najbliższych 28 dni.
  • Prawdopodobieństwo, że wydatek dużo: przybliżone prawdopodobieństwo, że w ciągu najbliższych 28 dni gracz wyda kwotę na poziomie 95 centyla lub wyższym względem bazy graczy. Jest to wartość dziesiętna z zakresu od 0 (niskie prawdopodobieństwo) do 1 (duże prawdopodobieństwo, że wydam dużo pieniędzy).

Zanim zaczniesz

Zanim zaczniesz korzystać z interfejsu API statystyk gracza:

Pozyskanie klienta

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

Klasa PlayerStatsClient wykorzystuje klasę 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 interfejsu Tasks API.

Pobieranie danych

Aby pobrać dane statystyk zalogowanego aktualnie gracza:

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

  2. Jeśli wywołanie się powiedzie, usługi gier Google Play zwracają obiekt Task, który asynchronicznie wczytuje obiekt PlayerStats. Użyj metod tego obiektu, aby pobrać dane o aktywności zalogowanego gracza w 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

Interfejs Play Stats API pozwala łatwo identyfikować różne typy graczy na podstawie ich zaangażowania i wydatków oraz stosować odpowiednie strategie, aby poprawić wrażenia z gier.

W tabeli poniżej znajdziesz przykładowe segmenty graczy i zalecane strategie zaangażowania:

Segment graczy Strategia zaangażowania
Użytkownicy, którzy często mają dużą liczbę sesji i dobry centyl wydatków, ale nie grali od co najmniej ostatniego tygodnia.
  • Wyślij powiadomienie o rabacie lub specjalnej premii po powrocie do gry.
  • Pokaż wiadomość powitalną informującą o imponujących osiągnięciach i przyznaj plakietkę zachęcającą do powrotu.
Zaangażowani gracze przy centylu niskich wydatków.
  • Dostosuj bonusy, by zachęcić ich do zaproszenia znajomych do zainstalowania Twojej gry i dołączenia do niej. Takie podejście opiera się na pokazaniu, że gra spodobała się graczowi, i zdobytych nowych graczy.
Gracze o wysokich wydatkach wykazują o tym, że są na szczycie i zaczynają rzadziej grać.
  • Dostosuj bonusy, aby rozbudzić ich zainteresowanie, np. proponując wartościowe, krótkie narzędzia, broń lub zniżki.
  • Gdy następnym razem gracz się zaloguje, wyświetl film, który przekieruje go do funkcji społecznościowych (np. ataków klanowych), które zwiększają zaangażowanie i zwiększają zaangażowanie.
Gracze o bardzo wysokim lub bardzo niskim prawdopodobieństwie wydania.
  • Mało prawdopodobne, że wydasz: daj użytkownikom możliwość obejrzenia reklamy wideo. Pokaż tańsze produkty do kupienia.
  • Duże szanse na zakup: skieruj użytkowników do sklepu w grze wcześniej i zastosuj specjalne promocje, aby zachęcić ich do zakupu.