Wydarzenia w grach na Androida

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ń:

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);
          }
        }
      });
}