W związku z wycofaniem interfejsu Logowania przez Google w 2026 r. usuniemy pakiet SDK gier w wersji 1. Po lutym 2025 r. nie będzie można publikować w Google Play tytułów, które zostały dopiero zintegrowane z pakietem SDK gier w wersji 1. Zalecamy zamiast tego korzystać z pakietu SDK gier w wersji 2.
Chociaż istniejące tytuły z integracją poprzedniej wersji gry 1 będą działać przez kilka lat, zachęcamy do przejścia na wersję 2 od czerwca 2025 r.
Ten przewodnik dotyczy pakietu SDK usług gier Play w wersji 1. Informacje o najnowszej wersji pakietu SDK znajdziesz w dokumentacji wersji 2.
Z tego przewodnika dowiesz się, jak zbierać dane o grze użytkowników na potrzeby analizy gry za pomocą interfejsów API zdarzeń udostępnianych przez Usługi gier Google Play. Interfejsy API znajdziesz w com.google.android.gms.games.event
i com.google.android.gms.games
.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobisz, warto zapoznać się z koncepcjami dotyczącymi zdarzeń w grze.
Zanim zaczniesz kodować przy użyciu interfejsów API zdarzeń:
- Zdefiniuj zdarzenia w grze w Konsoli Google Play.
- Wykonaj czynności opisane na liście kontrolnej logowania.
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()
, przekazując w niej aktywność i GoogleSignInAccount
dla bieżącego odtwarzacza. Aby dowiedzieć się, jak odzyskać informacje o koncie gracza, przeczytaj artykuł Logowanie się w Grach na Androida.
Przesyłanie zdarzeń
Możesz dodać do gry kod, który powiadomi Usługi gier Google Play, gdy wystąpi zdarzenie istotne dla Twojej gry.
Aby wysłać aktualizację zdarzenia, wywołaj funkcję EventsClient.increment()
z wartością eventId
i liczbą całkowitą incrementAmount
równą co najmniej 0.
- Wartość
eventId
jest generowana przez Usługi gier Google Play podczas pierwszego zdefiniowania zdarzenia w Konsoli Google Play i służy do jednoznacznej identyfikacji tego zdarzenia w grze. - Za pomocą parametru
incrementAmount
możesz określić ilościowe postępy gracza w realizacji celu związanego z grą. Jeśli np. zdarzeniem, które chcesz śledzić w grze, jest „Pokonać 500 potworów o wielkich oczach”, parametrincrementAmount
może zawierać 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) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
Pobieranie zdarzeń
Aby pobrać wszystkie dane zdarzeń zapisane na serwerach Google dla swojej gry, wywołaj EventsClient.load()
. W wywołaniu metody podaj wartość logiczną, aby wskazać, czy Usługi gier Google Play mają 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 w parametrach wejściowych podaj tablicę identyfikatorów zdarzeń.
Ten fragment kodu pokazuje, jak zapytać usługi gier Google Play o listę wszystkich zdarzeń w grze:
public void loadEvents() { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(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); } } }); }