Questa guida mostra come raccogliere i dati di gioco dei giocatori per l'analisi del gioco
utilizzando le API degli eventi fornite da Google Play Services per i giochi. Le API sono disponibili nei pacchetti
com.google.android.gms.games.event
e com.google.android.gms.games
.
Prima di iniziare
Se non l'hai ancora fatto, potrebbe esserti utile rivedere i concetti di gioco degli eventi.
Prima di iniziare a scrivere codice utilizzando le API per gli eventi:
Definisci gli eventi per il tuo gioco in Google Play Console.
Segui i consigli della checklist di accesso.
Scarica il client eventi
Per iniziare a utilizzare le API Events, il tuo gioco deve prima ottenere un oggetto
EventsClient
. Puoi farlo chiamando il metodo PlayGames.getEventsClient()
e passando l'attività.
Inviare eventi
Puoi aggiungere codice al tuo gioco per inviare una notifica a Play Games Services ogni volta che si verifica un evento di interesse per il tuo gioco.
Per inviare un aggiornamento dell'evento, chiama
EventsClient.increment()
con il valore eventId
e un numero intero incrementAmount
maggiore o
uguale a 0.
L'
eventId
viene generato da Play Games Services quando definisci per la prima volta l'evento in Google Play Console e viene utilizzato per identificare in modo univoco questo evento nel tuo 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 tuo gioco vuole monitorare è "Sconfiggi 500 mostri con gli occhi a palla", il valore diincrementAmount
può essere il numero di mostri uccisi dal giocatore in una singola battaglia.
Ecco un esempio di come inviare un evento con un importo di incremento pari a 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Recuperare eventi
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 Play Games Services
deve cancellare i dati memorizzati nella cache locale sul dispositivo dell'utente.
Per recuperare i dati di eventi specifici che hai definito nella
console Google Play, chiama
EventsClient.loadByIds()
e trasmetti un array di ID evento nei parametri di input.
Il seguente snippet mostra come puoi eseguire query sui servizi per i giochi di Play per ottenere 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); } } }); }