Este guia mostra como usar a API Player Stats nos serviços relacionados a jogos do Google Play. Você pode usar a API Player Stats para extrair dados sobre a atividade de um jogador no jogo.
A API Player Stats permite personalizar experiências de jogo para segmentos específicos de jogadores e diferentes fases do ciclo de vida do jogador. Você pode criar experiências personalizadas para cada segmento de jogadores de acordo com a forma como eles progridem, gastam e interagem. Por exemplo, você pode usar essa API para executar ações proativas, encorajando um jogador menos ativo a se envolver novamente com o jogo, como mostrar e promover novos itens no jogo quando o usuário fizer login.
As APIs podem ser encontradas nos pacotes
com.google.android.gms.games.stats
e com.google.android.gms.games
.
Antes de começar
Antes de começar a usar a API Player Stats:
- Faça o download e analise o exemplo de código (em inglês).
- Familiarize-se com as recomendações descritas na Lista de verificação de qualidade.
Acessar o cliente de estatísticas do jogador
Para começar a usar a API Player Stats, o jogo precisa incluir um objeto
PlayerStatsClient
. Para isso, chame o método
PlayerStatsClient.getPlayersClient()
e transmita a atividade.
A classe
PlayerStatsClient
usa a classe
Task
do Google Play Services para retornar resultados de forma assíncrona. Para saber mais sobre
o uso de tarefas para gerenciar trabalhos em linhas de execução, consulte o
guia para desenvolvedores da API Tasks.
Conceitos básicos das estatísticas do jogador
Você pode usar a API Player Stats para extrair dados sobre a atividade de um jogador no jogo. Os tipos de dados de jogador que é possível extrair incluem:
Duração média da sessão: a duração média da sessão do jogador em minutos. A duração de cada sessão é determinada pelo período em que o jogador permaneceu conectado aos serviços relacionados a jogos do Google Play.
Dias desde o último jogo: o número aproximado de dias desde a última vez que o usuário jogou.
Número de compras: o número aproximado de compras no app feitas pelo jogador.
Número de sessões: o número aproximado de sessões do jogador. As sessões são determinadas pelo número de vezes que o jogador faz login nos serviços relacionados a jogos do Google Play.
Percentil de sessões: o percentil de sessões aproximado do jogador, indicado como um valor decimal entre 0 e 1. Esse valor indica o número de sessões do jogador atual em comparação com o restante da base de usuários do jogo. Números maiores indicam que esse jogador jogou mais sessões.
Percentil de gastos: o percentil aproximado de gastos do jogador, indicado como um valor decimal entre 0 e 1. Esse valor indica quanto o jogador atual gastou em comparação com o restante da base de usuários do jogo. Números mais altos indicam que esse jogador gastou mais.
Os tipos de dados do jogador abaixo foram descontinuados e sempre retornam uma constante de valor não definido:
- Probabilidade de desistência de usuários: uma previsão que avalia se o jogador vai desistir do jogo no dia seguinte, indicada como um valor decimal entre 0 e 1 (baixa e alta probabilidade de desistência, respectivamente). A desistência é definida como 7 dias de inatividade.
- Probabilidade de gastos: a probabilidade aproximada do jogador decidir gastar no jogo, indicada como um valor decimal entre 0 e 1 (baixa e alta probabilidade de gastos, respectivamente).
- Gastos totais nos próximos 28 dias: total aproximado estimado de gastos do jogador nos próximos 28 dias no jogo.
- Probabilidade de gastos altos: a probabilidade aproximada de que, nos próximos 28 dias, o jogador vai gastar um valor posicionado no percentil 95 ou maior da base de usuários do jogo. Esse valor é indicado como um número decimal entre 0 e 1 (baixa e alta probabilidade do jogador fazer gastos altos, respectivamente).
Extrair dados da Player Stats
Para extrair dados da Player Stats do jogador conectado, siga estas etapas:
Chamando o método
PlayerStatsClient.loadPlayerStats()
.Se a chamada for bem-sucedida, os serviços relacionados a jogos do Google Play vão retornar um objeto
Task
que carrega de forma assíncrona um objetoPlayerStats
. Use os métodos desse objeto para extrair dados sobre as atividades do jogador conectado ao app.
Veja um exemplo:
public void checkPlayerStats() { PlayGames.getPlayerStatsClient(this) .loadPlayerStats(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) { if (task.isSuccessful()) { // Check for cached data. if (task.getResult().isStale()) { Log.d(TAG, "using cached data"); } PlayerStats stats = task.getResult().get(); if (stats != null) { Log.d(TAG, "Player stats loaded"); if (stats.getDaysSinceLastPlayed() > 7) { Log.d(TAG, "It's been longer than a week"); } if (stats.getNumberOfSessions() > 1000) { Log.d(TAG, "Veteran player"); } if (stats.getChurnProbability() == 1) { Log.d(TAG, "Player is at high risk of churn"); } } } else { int status = CommonStatusCodes.DEVELOPER_ERROR; if (task.getException() instanceof ApiException) { status = ((ApiException) task.getException()).getStatusCode(); } Log.d(TAG, "Failed to fetch Stats Data status: " + status + ": " + task.getException()); } } }); }
Dicas para usar dados de estatísticas do jogador
Com a API Play Stats, é possível identificar vários tipos de jogadores de acordo com o comportamento de engajamento e gastos, além de aplicar estratégias adequadas para aprimorar a experiência do jogo.
A tabela abaixo lista alguns exemplos de segmentos de jogadores e as estratégias de engajamento recomendadas:
Segmento de jogadores | Estratégia de engajamento |
---|---|
Jogadores frequentes com alto número de sessões e bom percentil de gastos, mas que não jogam há uma semana ou mais. |
|
Jogadores altamente envolvidos em um percentil de gastos baixo. |
|
Jogadores com gastos altos mostrando sinais de já terem passado pelo interesse máximo e começando a jogar com menos frequência. |
|
Jogadores com probabilidade muito alta ou muito baixa de gastar. |
|