Interfejs API statystyk gracza pozwala dostosować rozgrywkę do konkretnych segmentów graczy i różnych etapów ich cyklu życia. Możesz tworzyć dostosowane wrażenia dla każdego segmentu graczy na podstawie ich postępów, wydatków i zaangażowania. Możesz na przykład użyć tego interfejsu API, aby podjąć działania z zamiarem zachęcenia mniej aktywnych graczy do ponownego zaangażowania się w Twoją grę. Możesz na przykład wyświetlać i promować nowe przedmioty w grze, gdy gracz się zaloguje.
Ten przewodnik pokazuje, jak używać interfejsu API statystyk gracza w grach korzystających z usług gier Google Play. 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 odtwarzacza:
- Pobierz i zapoznaj się z przykładowym kodem.
- Zapoznaj się z rekomendacjami opisanymi w kontrolnej liście jakości.
Pobieranie klienta statystyk zawodników
Aby zacząć korzystać z interfejsu API statystyk gracza, gra musi najpierw uzyskać obiekt PlayerStatsClient
. Możesz to zrobić, wywołując metodę Games.getPlayerStatsClient()
i przekazując dla aktywności oraz GoogleSignInAccount
dla bieżącego gracza. Aby dowiedzieć się, jak pobrać informacje o koncie gracza, przeczytaj artykuł Logowanie się w Grach na Androida.
Podstawy statystyk zawodników
Za pomocą interfejsu Stats API możesz pobierać dane o aktywności gracza w grze. Dostępne typy danych dotyczących odtwarzania:
Średnia długość sesji: średnia długość sesji użytkownika w minutach. Długość sesji zależy od czasu, przez który gracz jest zalogowany w usługach gier Google Play.
Dni od ostatniej rozgrywki: przybliżona liczba dni od ostatniej rozgrywki.
Liczba zakupów: przybliżona liczba zakupów w aplikacji użytkownika.
Liczba sesji: przybliżona liczba sesji odtwarzacza. Sesje są określane na podstawie liczby logowań gracza w usługach gier Google Play.
Procenty sesji: przybliżony odsetek sesji gracza podany jako wartość dziesiętna z zakresu od 0 do 1. Ta wartość wskazuje, ile sesji odbył obecny gracz w porównaniu z resztą graczy tej gry. Wyższe liczby wskazują, że ten gracz odtwarzał więcej sesji.
Spend percentile (Procent wydatków): przybliżony odsetek wydatków gracza podany jako wartość dziesiętna z zakresu od 0 do 1. Ta wartość wskazuje, ile wydał obecny gracz w porównaniu z resztą graczy w tej grze. Wyższe liczby wskazują, że ten gracz wydał więcej.
Te typy danych o odtwarzaczu są wycofane i zawsze zwracają stałą wartość unset:
- Prawdopodobieństwo rezygnacji: prognoza dotycząca tego, czy gracz zrezygnuje z gry w ciągu następnego dnia. Podana jako wartość dziesiętna w zakresie od 0 (małe prawdopodobieństwo rezygnacji) do 1 (wysokie prawdopodobieństwo rezygnacji) włącznie. Rezygnacja jest rozumiana jako nieaktywność przez 7 dni.
- Prawdopodobieństwo dokonania zakupu: przybliżone prawdopodobieństwo, że gracz zdecyduje się na dokonanie zakupu w tej grze. Wartość podana jako liczba dziesiętna w zakresie od 0 (niskie prawdopodobieństwo dokonania zakupu) do 1 (wysokie prawdopodobieństwo dokonania zakupu).
- Łączne wydatki w ciągu najbliższych 28 dni: przybliżony łączny oczekiwany wydatek graczy w tej grze w ciągu najbliższych 28 dni.
- Prawdopodobieństwo wydania wyższego poziomu: przybliżone prawdopodobieństwo, że w ciągu najbliższych 28 dni gracz wyda kwotę znajdującą się w co najmniej 95 centylu liczby graczy. Wartość ta jest wyrażona w postaci dziesiętnej w przedziale od 0 (małe prawdopodobieństwo stania się dużym klientem) do 1 (duże prawdopodobieństwo stania się dużym klientem).
Pobieranie danych statystyk zawodników
Aby pobrać dane dotyczące statystyk gracza, który jest obecnie zalogowany, wykonaj te czynności:
- Wywołaj metodę
PlayerStatsClient.loadPlayerStats()
. - Jeśli wywołanie się powiedzie, usługi gier Google Play zwraca obiekt
Task
, który asynchronicznie wczytuje obiektPlayerStats
. Użyj metod tego obiektu, by pobrać dane o aktywności w aplikacji zalogowanego gracza.
Oto przykład:
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()); } } }); }
Wskazówki dotyczące używania danych statystyk zawodników
Interfejs Play Stats API pozwala łatwo identyfikować różne typy graczy na podstawie ich zaangażowania i wydatków, a także stosować odpowiednie strategie, aby poprawić wrażenia graczy.
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 grają w gry z dużą liczbą sesji i dobrym centylem wydatków, ale nie grali od co najmniej ostatniego tygodnia. |
|
Bardzo zaangażowani gracze w niskim centylu wydatków. |
|
gracze, którzy wydają dużo pieniędzy, wykazują oznaki szczytowego poziomu aktywności i zaczynają rzadziej grać; |
|
Gracze z bardzo wysokim lub bardzo niskim prawdopodobieństwem wydatku. |
|