En esta guía, se muestra cómo recopilar datos de juego de los jugadores para las estadísticas mediante las APIs de eventos
que brindan los Servicios de juego de Google Play. Puedes encontrar las APIs en com.google.android.gms.games.event
y com.google.android.gms.games
.
Antes de comenzar
Si aún no lo hiciste, puede resultarte útil consultar los conceptos de juegos de eventos.
Antes de comenzar a programar mediante las APIs de eventos, haz lo siguiente:
- Define los eventos para tu juego en Google Play Console.
- Sigue las recomendaciones de la lista de tareas para acceder.
Obtén el cliente de eventos
Para comenzar a usar las APIs de eventos, primero el juego debe obtener un
Objeto EventsClient
. Para ello, llama al método Games.getEventsClient()
y pasa la actividad.
Cómo enviar eventos
Puedes agregar código a tu juego para notificar a los Servicios de juego de Google Play cada vez que evento de interés para tu juego.
Para enviar una actualización de evento, llama a EventsClient.increment()
con el valor eventId
y un
el número entero incrementAmount
que es igual o mayor que 0.
- Los Servicios de juego de Google Play generan
eventId
cuando defines por primera vez evento en Google Play Console y se usa para identificarlo de forma exclusiva en el juego. - Con la entrada
incrementAmount
, puedes especificar el progreso cuantitativo del jugador para completar un objetivo específico del juego. Por ejemplo, si el evento del que quieres hacer un seguimiento es "Defeat 500 buged-eysters" (Derrotar a 500 monstruos de ojos saltones), el valorincrementAmount
puede ser la cantidad de monstruos que mató el jugador en una sola batalla.
Este es un ejemplo de cómo enviar un evento con un incremento de 1:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Cómo recuperar eventos
Si llamas a EventsClient.load()
, puedes recuperar todos los datos de eventos almacenados en los servidores de Google para tu juego. En la
pasa un valor booleano para indicar si los servicios de juego de Google Play deben borrar
los datos almacenados en caché
en el dispositivo del usuario.
Para recuperar datos de eventos específicos que definiste en Google Play Console, llama a EventsClient.loadByIds()
y pasa un array de IDs de eventos en los parámetros de entrada.
En el siguiente fragmento, se muestra cómo puedes consultar los Servicios de juego de Google Play para la Lista de todos los eventos de tu juego:
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); } } }); }