Questa guida mostra come raccogliere i dati sul gameplay dei giocatori per le analisi di gioco utilizzando le API 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 ancora fatto, potrebbe essere utile rivedere i concetti dei giochi di Eventi.
Prima di iniziare a programmare utilizzando le API degli eventi:
- Definisci gli eventi per il tuo gioco in Google Play Console.
- Segui i consigli della lista di controllo per l'accesso.
Ottenere il client di eventi
Per iniziare a utilizzare le API di eventi, il tuo gioco deve prima ottenere un oggetto
EventsClient
. Per farlo, chiama il metodo
Games.getEventsClient()
e passa l'attività e il GoogleSignInAccount
per il player corrente. Per scoprire come recuperare i dati dell'account del giocatore, consulta Accedere a Giochi Android.
Inviare eventi
Puoi aggiungere codice nel tuo gioco per inviare una notifica ai servizi per i giochi di Google Play 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
uguale o maggiore di 0.
- Il
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 identificare in modo univoco questo evento nel tuo gioco. - Puoi utilizzare l'input
incrementAmount
per specificare i progressi quantitativi del giocatore verso il completamento di un obiettivo specifico del gioco. Ad esempio, se l'evento che il gioco vuole monitorare è "Sconfiggi 500 mostri dagli occhi insetto", 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 importo di incremento pari a 1:
public void submitEvent(String eventId) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
Recupera eventi
Puoi recuperare tutti i dati sugli eventi memorizzati nei server di Google per il tuo gioco chiamando EventsClient.load()
. Nella chiamata al metodo, passa 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 che hai definito in Google Play Console, chiama
EventsClient.loadByIds()
e passa un array di ID evento nei parametri di input.
Il seguente snippet mostra come eseguire query su Google Play Services per i giochi per ottenere l'elenco di tutti gli eventi del tuo gioco:
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); } } }); }