Ten przewodnik pokazuje, jak zbierać dane związane z grami 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
.
Zanim zaczniesz
Warto zapoznać się z koncepcjami dotyczącymi wydarzeń.
Zanim zaczniesz kodować zdarzenia za pomocą interfejsów API zdarzeń:
- Zdefiniuj zdarzenia gry w Konsoli Google Play.
- Postępuj zgodnie z zaleceniami dotyczącymi logowania na konto.
Pobieranie klienta zdarzeń
Aby zacząć korzystać z interfejsów API zdarzeń, gra musi najpierw uzyskać obiekt EventsClient
. Aby to zrobić, wywołaj metodę Games.getEventsClient()
i przekaż działanie.
Przesyłanie wydarzeń
Możesz dodać kod w grze, aby za każdym razem, gdy wydarzy się coś ciekawego, powiadamiać Usługi gier Google Play.
Aby wysłać aktualizację wydarzenia, wywołaj metodę EventsClient.increment()
z wartością eventId
i liczbą całkowitą incrementAmount
równą 0 lub większą.
eventId
jest generowany przez usługi gier Google Play, gdy zdefiniujesz zdarzenie w Konsoli Google Play i jednoznacznie identyfikuje je w grze.- Możesz użyć wartości
incrementAmount
, aby określić miary postępów gracza w realizacji celów związanych z grą. Jeśli np. zdarzenie, które chce śledzić gra, to „Pokonaj 500 potworów z błędami dla opon”, wartościąincrementAmount
może być liczba potworów zabitych w trakcie pojedynczej bitwy.
Oto przykład przesyłania zdarzenia z przyrostem wartości 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Pobieram wydarzenia
Aby pobrać wszystkie dane zdarzeń przechowywane na serwerach Google w Twojej grze, wywołaj funkcję EventsClient.load()
. W wywołaniu metody przekaż wartość logiczną wskazującą, czy usługi gier Google Play powinny czyścić lokalnie dane z pamięci podręcznej na urządzeniu użytkownika.
Aby pobrać dane dotyczące konkretnych zdarzeń zdefiniowanych w Konsoli Google Play, wywołaj EventsClient.loadByIds()
i przekaż tablicę identyfikatorów zdarzeń w parametrach wejściowych.
Ten fragment kodu pokazuje, jak wysyłać zapytania do usług gier Google Play w celu wyświetlenia wszystkich zdarzeń z 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); } } }); }