Eventi nei giochi Android

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:

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 valore incrementAmount 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);
          }
        }
      });
}