W tym przewodniku dowiesz się, jak zbierać dane o rozgrywce użytkowników na potrzeby analizy gry za pomocą interfejsów API zdarzeń udostępnianych przez Usługi gier Play. Interfejsy API znajdziesz w pakietach com.google.android.gms.games.event
i com.google.android.gms.games
.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiłeś, warto zapoznać się z koncepcjami dotyczącymi zdarzeń i gry.
Zanim zaczniesz kodować przy użyciu interfejsów API zdarzeń:
Zdefiniuj zdarzenia w grze w Konsoli Google Play.
Postępuj zgodnie z zaleceniami w kontrolnej liście czynności dotyczących logowania się.
Pobieranie klienta zdarzeń
Aby zacząć korzystać z interfejsów API zdarzeń, gra musi najpierw uzyskać obiekt EventsClient
. Aby to zrobić, wywołaj metodę PlayGames.getEventsClient()
i podaj w niej aktywność.
Przesyłanie zdarzeń
Możesz dodać do gry kod, który będzie informować usługi gier Play o wystąpieniu zdarzenia istotnego dla Twojej gry.
Aby wysłać aktualizację zdarzenia, wywołaj funkcję EventsClient.increment()
z wartością eventId
i liczbą całkowitą incrementAmount
równą lub większą od 0.
Wartość
eventId
jest generowana przez Usługi gier Play podczas pierwszego zdefiniowania zdarzenia w Konsoli Google Play i służy do jednoznacznego identyfikowania tego zdarzenia w grze.Za pomocą parametru
incrementAmount
możesz określić ilościowo postęp gracza w realizacji celu związanego z grą. Jeśli na przykład zdarzeniem, które chcesz śledzić, jest „Pokonanie 500 potworów”, wartośćincrementAmount
może być liczbą potworów, które gracz zabił w pojedynczej bitwie.
Oto przykład przesyłania zdarzenia z wartością przyrostową 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Pobieranie zdarzeń
Możesz pobrać wszystkie dane zdarzeń zapisane na serwerach Google w przypadku swojej gry, wywołując funkcję EventsClient.load()
.
W wywołaniu metody podaj wartość logiczną, aby wskazać, czy usługi gier Play powinny wyczyścić dane z lokalnego pamięci podręcznej na urządzeniu użytkownika.
Aby pobrać dane dotyczące konkretnych zdarzeń zdefiniowanych w Konsoli Google Play, wywołaj funkcję EventsClient.loadByIds()
i przekaż tablicę identyfikatorów zdarzeń w parametrach wejściowych.
Ten fragment kodu pokazuje, jak zapytać usługi gier Play o listę wszystkich zdarzeń w Twojej grze:
public void loadEvents() { PlayGames.getEventsClient(this) .load(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) { if (task.isSuccessful()) { // Process all the events. for (Event event : task.getResult().get()) { Log.d(TAG, "loaded event " + event.getName()); } } else { // Handle Error Exception exception = task.getException(); int statusCode = CommonStatusCodes.DEVELOPER_ERROR; if (exception instanceof ApiException) { ApiException apiException = (ApiException) exception; statusCode = apiException.getStatusCode(); } showError(statusCode); } } }); }