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 :
- Définissez les événements de votre jeu dans la Google Play Console.
- Suivez les recommandations concernant la checklist de connexion.
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 valeurincrementAmount
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); } } }); }