In diesem Leitfaden erfährst du, wie du mithilfe der von den Google Play-Spieldiensten bereitgestellten Event-APIs Spieldaten für Spielanalysen sammelst. Sie finden die APIs in com.google.android.gms.games.event
und com.google.android.gms.games
.
Vorbereitung
Es kann hilfreich sein, die Konzepte von Ereignisspielen noch einmal durchzugehen, falls Sie dies noch nicht getan haben.
Bevor Sie mit dem Programmieren mit den Event-APIs beginnen:
Definiere die Ereignisse für dein Spiel in der Google Play Console.
Folgen Sie den Empfehlungen in der Checkliste für die Anmeldung.
Ereignis-Client abrufen
Damit du die Event-APIs verwenden kannst, muss dein Spiel zuerst ein EventsClient
-Objekt abrufen. Rufen Sie dazu die Methode Games.getEventsClient()
auf und übergeben Sie die Aktivität.
Ereignisse einreichen
Sie können Code in Ihrem Spiel hinzufügen, um die Play-Spieldienste jedes Mal zu benachrichtigen, wenn ein Ereignis von Interesse an Ihrem Spiel auftritt.
Rufen Sie zum Senden einer Ereignisaktualisierung EventsClient.increment()
mit dem eventId
-Wert und einer Ganzzahl incrementAmount
auf, die gleich oder größer als 0 ist.
- Die
eventId
wird von den Play-Spieldiensten generiert, wenn du das Ereignis zum ersten Mal in der Google Play Console definierst, und wird verwendet, um dieses Ereignis in deinem Spiel eindeutig zu identifizieren. - Mit der Eingabe
incrementAmount
können Sie den quantitativen Fortschritt des Spielers zum Erreichen eines spielspezifischen Ziels angeben. Wenn das Ereignis, das Ihr Spiel erfassen möchte, beispielsweise „Besiegen Sie 500 fehleraugende Monster“ ist, kann der WertincrementAmount
die Anzahl der Monster sein, die der Spieler in einer einzelnen Schlacht getötet hat.
Hier ein Beispiel für das Einreichen eines Ereignisses mit einem inkrementellen Wert von 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Ereignisse abrufen
Du kannst alle Ereignisdaten, die für dein Spiel auf den Google-Servern gespeichert sind, durch Aufrufen von EventsClient.load()
abrufen. Übergeben Sie im Methodenaufruf einen booleschen Wert, um anzugeben, ob die Play-Spieldienste die lokal zwischengespeicherten Daten auf dem Gerät des Nutzers löschen sollen.
Wenn Sie Daten für bestimmte Ereignisse abrufen möchten, die Sie in der Google Play Console definiert haben, rufen Sie EventsClient.loadByIds()
auf und übergeben Sie in den Eingabeparametern ein Array von Ereignis-IDs.
Das folgende Snippet zeigt, wie Sie die Liste aller Ereignisse für Ihr Spiel über die Play-Spieldienste abrufen können:
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); } } }); }