Événements dans les jeux Android

Ce guide vous explique comment collecter des données de jeu pour analyser les jeux à l'aide des API d'événements fournies par les services de jeux Google Play. Ces API sont disponibles dans com.google.android.gms.games.event et com.google.android.gms.games.

Avant de commencer

Si ce n'est pas déjà fait, n'hésitez pas à revoir les concepts d'événement dans les jeux.

Avant de commencer à coder à l'aide des API Events :

Obtenir le client d'événements

Pour commencer à utiliser les API Events, vous devez d'abord obtenir un objet EventsClient. Pour ce faire, il suffit d'appeler la méthode Games.getEventsClient() et de transmettre l'activité.

Envoi d'événements

Vous pouvez ajouter du code dans votre jeu pour avertir les services de jeux Google Play chaque fois qu'un événement intéressant s'y intéresse.

Pour envoyer une mise à jour d'événement, appelez EventsClient.increment() avec la valeur eventId et un entier incrementAmount supérieur ou égal à 0.

  • Le eventId est généré par les services de jeux Google Play lorsque vous définissez l'événement pour la première fois dans la Google Play Console. Il est utilisé pour identifier cet événement dans votre jeu de manière unique.
  • Vous pouvez utiliser l'entrée incrementAmount pour spécifier la progression quantitative du joueur par rapport à un objectif spécifique au jeu. Par exemple, si l'événement à suivre par votre jeu est "Vaincre 500 monstres aux yeux d'insectes", la valeur incrementAmount peut correspondre au nombre de monstres que le joueur a éliminés en un seul combat.

Voici un exemple d'envoi d'un événement avec un incrément de 1 :

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

Récupérer des événements

Vous pouvez récupérer toutes les données d'événement stockées sur les serveurs de Google pour votre jeu en appelant EventsClient.load(). Dans l'appel de méthode, transmettez une valeur booléenne pour indiquer si les services de jeux Google Play doivent effacer les données mises en cache localement sur l'appareil de l'utilisateur.

Pour récupérer des données portant sur des événements spécifiques que vous avez définis dans la Google Play Console, appelez EventsClient.loadByIds() et transmettez un tableau d'ID d'événements dans les paramètres d'entrée.

L'extrait suivant montre comment interroger les services de jeux Google Play pour obtenir la liste de tous les événements de votre jeu:

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