Este guia mostra como coletar dados de jogabilidade do jogador para análise usando as APIs de eventos
fornecidos pelos serviços relacionados a jogos do Google Play. As APIs podem ser encontradas em
com.google.android.gms.games.event
e com.google.android.gms.games
.
Antes de começar
Caso ainda não tenha feito isso, recomendamos consultar os conceitos do jogo de eventos.
Antes de começar a programar usando as APIs de eventos:
- Defina os eventos do seu jogo no Google Play Console.
- Siga as recomendações da lista de verificação de login.
Como acessar o cliente de eventos
Para começar a usar as APIs de eventos, o jogo precisa ter uma
Objeto EventsClient
. Você pode fazer isso chamando o método
método Games.getEventsClient()
e transmitindo o
atividade e a GoogleSignInAccount
para o player atual. Para saber como
recuperar as informações da conta do jogador, consulte
Faça login em jogos Android.
Como enviar eventos
É possível adicionar um código ao jogo para notificar os serviços relacionados a jogos do Google Play sempre que um evento de interesse do seu jogo.
Para enviar uma atualização de evento, chame EventsClient.increment()
com o valor eventId
e um
incrementAmount
do número inteiro igual ou maior que 0.
- O
eventId
é gerado pelos serviços relacionados a jogos do Google Play quando você o define pela primeira vez. o evento no Google Play Console e é usado para identificá-lo exclusivamente seu jogo. - Você pode usar a entrada
incrementAmount
para especificar o progresso quantitativo do jogador em relação à conclusão de um objetivo específico do jogo. Por exemplo, se o evento que seu jogo quer rastrear é "Derrotar 500 monstros de olhos esbugalhados", o valor deincrementAmount
pode ser o número de monstros que o jogador matou em uma única batalha.
Veja um exemplo de como enviar um evento com um incremento de 1:
public void submitEvent(String eventId) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
Como recuperar eventos
Para recuperar todos os dados de eventos armazenados nos servidores do Google,
chame EventsClient.load()
. Na
, transmita um valor booleano para indicar se os serviços relacionados a jogos do Google Play devem limpar a
dados em cache no dispositivo do usuário.
Para recuperar dados de eventos específicos definidos no Google Play Console, chame
EventsClient.loadByIds()
e transmita uma matriz de IDs de eventos nos parâmetros de entrada.
O snippet a seguir mostra como consultar os serviços relacionados a jogos do Google Play pelo lista de todos os eventos do seu jogo:
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); } } }); }