Questa guida ti mostra come raccogliere i dati relativi al gameplay dei giocatori per le analisi dei giochi usando le API per gli eventi fornite dai servizi per i giochi di Google Play. Le API sono disponibili in
com.google.android.gms.games.event
e com.google.android.gms.games
.
Prima di iniziare
Se non l'hai già fatto, potresti trovare utile rileggere i concetti dei giochi basati sugli eventi.
Prima di iniziare a programmare utilizzando le API Eventi:
- Definisci gli eventi per il tuo gioco in Google Play Console.
- Segui i consigli per l'elenco di controllo per l'accesso.
Ottenere il client eventi
Per iniziare a utilizzare le API Eventi, il gioco deve prima ottenere un oggetto EventsClient
. Per farlo, chiama il metodo Games.getEventsClient()
e trasmetti l'attività.
Invio degli eventi in corso...
Puoi aggiungere codice al tuo gioco per informare i servizi per i giochi di Google Play ogni volta che si verifica un evento di tuo interesse.
Per inviare un aggiornamento evento, chiama EventsClient.increment()
con il valore eventId
e un numero intero incrementAmount
uguale o superiore a 0.
- L'evento
eventId
viene generato dai servizi per i giochi di Google Play quando definisci per la prima volta l'evento in Google Play Console e viene utilizzato per identificarlo in modo univoco nel gioco. - Puoi utilizzare l'input
incrementAmount
per specificare l'avanzamento quantitativo del giocatore verso il completamento di un obiettivo specifico del gioco. Ad esempio, se l'evento che il gioco vuole monitorare è "Sconfiggi 500 mostri con occhi bug", il valoreincrementAmount
può essere il numero di mostri che il giocatore ha ucciso in una singola battaglia.
Ecco un esempio di come inviare un evento con un incremento di 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Recupero eventi in corso...
Puoi recuperare tutti i dati sugli eventi memorizzati nei server di Google per il tuo gioco chiamando EventsClient.load()
. Nella chiamata al metodo, trasmetti un valore booleano per indicare se i servizi per i giochi di Google Play devono cancellare i dati memorizzati nella cache locale sul dispositivo dell'utente.
Per recuperare i dati relativi a eventi specifici definiti in Google Play Console, chiama
EventsClient.loadByIds()
e trasmetti un array di ID evento nei parametri di input.
Il seguente snippet mostra come eseguire query sui servizi per i giochi di Google Play per l'elenco di tutti gli eventi per il tuo gioco:
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); } } }); }