Z tego przewodnika dowiesz się, jak zbierać dane o rozgrywce graczy na potrzeby analityki gry, korzystając z interfejsów API zdarzeń dostarczanych przez Usługi gier Google Play. Interfejsy API można znaleźć tutaj: com.google.android.gms.games.event
i com.google.android.gms.games
.
Zanim zaczniesz
W razie potrzeby zapoznaj się z pomysłami na gry z wydarzeniami.
Zanim zaczniesz tworzyć kod z wykorzystaniem interfejsów API zdarzeń:
Zdarzenia dotyczące gry możesz określić w Konsoli Google Play.
Postępuj zgodnie z zaleceniami z listy kontrolnej logowania.
Pobieranie klienta zdarzeń
Aby zacząć korzystać z interfejsów API zdarzeń, gra musi najpierw uzyskać obiekt EventsClient
. Możesz to zrobić, wywołując metodę Games.getEventsClient()
i przekazując aktywność.
Prześlij zdarzenia
Możesz dodać w grze kod, który będzie powiadamiał usługi gier Play zawsze, gdy wystąpi interesujące Cię zdarzenie.
Aby wysłać aktualizację zdarzenia, wywołaj metodę EventsClient.increment()
z wartością eventId
i liczbą całkowitą incrementAmount
równą 0 lub większą.
- Parametr
eventId
jest generowany przez usługi gier Play, gdy po raz pierwszy zdefiniujesz zdarzenie w Konsoli Google Play. Służy do jednoznacznego identyfikowania zdarzenia w grze. - Korzystając z danych
incrementAmount
, możesz określić ilościowe postępy użytkownika na drodze do osiągnięcia celu związanego z grą. Jeśli na przykład zdarzenie, które chcesz śledzić, to „Pokonuj 500 wrogich potworów”, wartośćincrementAmount
może być liczbą potworów zabitych przez gracza w jednej bitwie.
Oto przykład, jak przesłać zdarzenie o przyrostowej wartości 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Pobieranie wydarzeń
Możesz pobrać wszystkie dane zdarzeń związane z grą przechowywane na serwerach Google, wywołując metodę EventsClient.load()
. W wywołaniu metody podaj wartość logiczną, aby wskazać, czy usługi gier Play mają wyczyścić dane przechowywane lokalnie na urządzeniu użytkownika.
Aby pobrać dane dotyczące określonych zdarzeń zdefiniowanych w Konsoli Google Play, wywołaj metodę EventsClient.loadByIds()
i w parametrach wejściowych przekaż tablicę identyfikatorów zdarzeń.
Ten fragment kodu pokazuje, jak wysłać zapytanie do usług gier Play o listę wszystkich zdarzeń z Twojej gry:
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); } } }); }