Este guia mostra como coletar dados de jogabilidade usando as APIs de eventos
fornecidas 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.
Acessar o cliente de eventos
Para começar a usar as APIs de eventos, o jogo precisa ter um
objeto EventsClient
. Para fazer isso, chame o
método Games.getEventsClient()
e transmita a
atividade e o GoogleSignInAccount
para o player atual. Para saber como
extrair as informações da conta do jogador, consulte
Fazer login em jogos Android.
Enviar eventos
Você pode adicionar um código ao jogo para notificar os serviços relacionados a jogos do Google Play sempre que ocorrer um evento de interesse.
Para enviar uma atualização de evento, chame EventsClient.increment()
com o valor eventId
e um
incrementAmount
de número inteiro igual ou maior que 0.
- O
eventId
é gerado pelos serviços relacionados a jogos do Google Play quando você define o evento no Google Play Console pela primeira vez e é usado para identificar esse evento de modo exclusivo no 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); }
Recuperar eventos
Para recuperar todos os dados de eventos armazenados nos servidores do Google,
chame EventsClient.load()
. Na
chamada de método, transmita um valor booleano para indicar se os serviços relacionados a jogos do Google Play precisam limpar os dados
armazenados localmente 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 para conferir a 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); } } }); }