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 tomar medidas proativas e incentivar os jogadores menos ativos a se envolver novamente com o jogo, com a exibição e a promoção de novos itens no app quando o usuário fizer login.
Este guia mostra como usar a API Player Stats com os serviços relacionados a jogos do Google Play. 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 download e analise o exemplo de código.
- Familiarize-se com as recomendações descritas na Lista de verificação de qualidade.
Incluir o cliente da Player Stats
Para começar a usar a API Player Stats, o jogo precisa incluir um objeto PlayerStatsClient
. Para fazer isso, chame o método Games.getPlayerStatsClient()
e passe a atividade e o GoogleSignInAccount
do jogador atual. Para saber como recuperar as informações da conta do jogador, consulte Login em jogos Android.
Conceitos básicos da Player Stats
Você pode usar a API Player Stats para recuperar dados sobre a atividade de um jogador no jogo. Os tipos de dados de jogador que é possível recuperar incluem o seguinte:
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 ao Google Play Games Services.
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 aplicativo 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 no Google Play Games Services.
Percentil de sessões: é o percentil de sessões aproximado do jogador, indicado como um valor decimal entre 0 e 1 (incluindo os próprios números 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 (incluindo os próprios números 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 seguintes tipos de dados do jogador foram suspensos e sempre retornam uma constante de valor não definido:
- Probabilidade de desligamento de usuários: é uma previsão que avalia se o jogador se desligará do jogo no dia seguinte, indicada como um valor decimal entre 0 e 1 (baixa e alta probabilidade de desligamento, respectivamente), incluindo os próprios números 0 e 1. O desligamento de usuários é definido como sete dias de inatividade.
- Probabilidade de gastos: é a probabilidade aproximada de o jogador decidir gastar no jogo, indicada como um valor decimal entre 0 e 1 (baixa e alta probabilidade de gastos, respectivamente), incluindo os próprios números 0 e 1.
- Gastos totais nos próximos 28 dias: é o total aproximado 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 gastará um valor posicionado no percentil 95 ou superior da base de usuários do jogo. Esse valor é indicado como um número decimal entre 0 e 1 (baixa e alta probabilidade de o jogador fazer gastos altos, respectivamente).
Recuperar dados da Player Stats
Para recuperar dados da Player Stats do jogador conectado no momento, siga estas etapas:
- Chame o método
PlayerStatsClient.loadPlayerStats()
. - Se a chamada for bem-sucedida, os serviços relacionados a jogos do Google Play retornarão uma
Task
, que carregará um objetoPlayerStats
assincronamente. Use os métodos desse objeto para recuperar dados sobre as atividades do jogador conectado ao app.
Veja um exemplo:
public void checkPlayerStats() { Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(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 da Player Stats
Com a API Player Stats, é possível identificar com facilidade 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 a seguir 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. |
|