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:
- Pobierz i sprawdź przykładowy kod.
- Zapoznaj się z rekomendacjami opisanymi na liście kontrolnej jakości.
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:
Wywołaj metodę
PlayerStatsClient.loadPlayerStats()
.Jeśli wywołanie się powiedzie, usługi gier Google Play zwracają obiekt
Task
, który asynchronicznie wczytuje obiektPlayerStats
. 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. |
|
Zaangażowani gracze przy centylu niskich wydatków. |
|
Gracze o wysokich wydatkach wykazują o tym, że są na szczycie i zaczynają rzadziej grać. |
|
Gracze o bardzo wysokim lub bardzo niskim prawdopodobieństwie wydania. |
|