Ten przewodnik pokazuje, jak zbierać dane o rozgrywce graczy na potrzeby analizy gier za pomocą interfejsów API zdarzeń udostępnianych przez usługi gier Google Play. Interfejsy API można znaleźć w
com.google.android.gms.games.event
i com.google.android.gms.games
pakietach.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobisz, warto zapoznać się z pojęciami dotyczącymi zdarzeń w grach.
Zanim zaczniesz kodować za pomocą interfejsów API zdarzeń:
Zdefiniuj zdarzenia w swojej grze w Konsoli Google Play.
Postępuj zgodnie z zaleceniami z listy kontrolnej logowania.
Pobieranie klienta zdarzeń
Aby zacząć korzystać z interfejsów API zdarzeń, Twoja gra musi najpierw uzyskać
EventsClient
obiekt. Możesz to zrobić, wywołując PlayGames.getEventsClient()
metodę i przekazując aktywność.
Przesyłanie zdarzeń
Możesz dodać w grze kod, który będzie powiadamiał usługi gier Play o każdym zdarzeniu, które Cię interesuje.
Aby wysłać aktualizację zdarzenia, wywołaj
EventsClient.increment()
z wartością eventId i liczbą całkowitą incrementAmount równą lub
większą niż 0.
Wartość
eventIdjest generowana przez usługi gier Play, gdy po raz pierwszy zdefiniujesz zdarzenie w Konsoli Google Play. Służy ona do jednoznacznego identyfikowania tego zdarzenia w Twojej grze.Za pomocą danych wejściowych
incrementAmountmożesz określić ilościowy postęp gracza w realizacji określonego celu w grze. Jeśli na przykład gra ma śledzić zdarzenie „Pokonaj 500 potworów o wyłupiastych oczach”, wartośćincrementAmountmoże być liczbą potworów zabitych przez gracza w jednej bitwie.
Oto przykład przesyłania zdarzenia z wartością incrementAmount równą 1:
public void submitEvent(String eventId) {
PlayGames.getEventsClient(this)
.increment(eventId, 1);
}Pobieranie zdarzeń
Możesz pobrać wszystkie dane zdarzeń przechowywane na serwerach Google w przypadku Twojej gry, wywołując
metodę
EventsClient.load().
W wywołaniu metody przekaż wartość logiczną, aby wskazać, czy usługi gier Play mają wyczyścić dane zapisane w pamięci podręcznej na urządzeniu użytkownika.
Aby pobrać dane dotyczące konkretnych zdarzeń zdefiniowanych w
Konsoli Google Play, wywołaj metodę
EventsClient.loadByIds()
i przekaż w parametrach wejściowych tablicę identyfikatorów zdarzeń.
Ten fragment kodu pokazuje, jak wysłać do usług gier Play zapytanie 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); } } }); }