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.stats
i com.google.android.gms.games
.
Zanim zaczniesz
Zanim zaczniesz korzystać z interfejsu API statystyk graczy:
- Pobierz i przejrzyj przykładowy kod.
- Zapoznaj się z rekomendacjami opisanymi w liście kontrolnej jakości.
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:
Wywołaj metodę
PlayerStatsClient.loadPlayerStats()
.Jeśli wywołanie się powiedzie, usługi gier Google Play zwrócą obiekt
Task
, który asynchronicznie wczytuje obiektPlayerStats
. 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. |
|
Bardzo zaangażowani gracze w niskim przedziale centylowym wydatków. |
|
Gracze, którzy dużo wydają, wykazują oznaki osiągnięcia szczytu i zaczynają grać rzadziej. |
|
Gracze o bardzo wysokim lub bardzo niskim prawdopodobieństwie wydatków. |
|