Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Após a descontinuação da
API Google Sign-In, vamos remover o SDK v1 de jogos em 2026. A partir de fevereiro de 2025, não será mais possível publicar
títulos recém-integrados ao SDK v1 para jogos no Google Play. Recomendamos que você use o
SDK v2 para jogos.
Embora os títulos atuais com as integrações anteriores dos jogos da v1 continuem funcionando por
alguns anos, recomendamos que você
migre para a v2
a partir de junho de 2025.
Este guia é para usar o SDK dos serviços relacionados a jogos do Google Play v1. O SDK C++ para
os serviços relacionados a jogos do Google Play v2 ainda não está disponível.
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 realizar ações proativas
e incentivar um jogador menos ativo a se envolver novamente com o jogo, como
mostrar e promover novos itens no jogo quando o usuário faz login.
Este guia mostra como usar a API Player Stats em um aplicativo nativo C++ ou
Objective-C.
Conceitos básicos das estatísticas do jogador
Você pode usar as APIs 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.
Probabilidade de desistência de usuários: uma previsão que avalia se o jogador vai desistir
do jogo no dia seguinte, indicada como 0 (baixa probabilidade de desistência) ou 1 (alta probabilidade de
desistência). A rotatividade é definida como 7 dias de inatividade.
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 que o
jogador atual jogou 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 (inclusive). 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.
Receber estatísticas do jogador conectado no momento com C++
// Create the callback for our asynchronous fetch call. This callback will// log either an error or the average session length for the currently// signed-in player.gpg::StatsManager::FetchForPlayerCallbackcallback=[](gpg::StatsManager::FetchForPlayerResponseconst&response){if(IsError(response.status)){LogE("An error occurred fetching player stats.");}else{gpg::PlayerStatsconst & player_stats=response.data;if(player_stats.HasAverageSessionLength()){LogI("Average session length: %f",player_stats.AverageSessionLength());}else{LogW("Currently signed-in player had no associated average session length stats.");}}};// Asynchronously fetch the Player Stats. When the fetch is finished it// will call our callback. game_services_ is the std::unique_ptr<GameServices>// returned by gpg::GameServices::Builder.Create()game_services_->Stats().FetchForPlayer(callback);
Acessar as estatísticas do jogador conectado no momento com Objective-C
// Asynchronously fetches the Player Stats and then logs either a// description of them or an error[GPGPlayerStatsplayerStatsWithCompletionHandler:^(GPGPlayerStats*playerStats,NSError*error){if(error){NSLog(@"Error fetching player stats: %@",error);}else{NSLog(@"Description of stats for the currently signed-in player: %@",playerStats);}}];
Dicas para usar dados de estatísticas do jogador
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 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.
Envie uma notificação sobre um desconto ou bônus especial,
que vai ser disponibilizado quando o usuário voltar a jogar.
Mostre uma mensagem de boas-vindas, reconhecendo conquistas
importantes, e ofereça um selo para incentivar o
retorno ao jogo.
Jogadores altamente envolvidos em um percentil de gastos baixo.
Personalize bônus especiais para incentivar o usuário a convidar amigos
a instalar e participar do jogo. Essa abordagem aproveita a satisfação
demonstrada pelo usuário para recrutar novos jogadores.
Jogadores com gastos altos mostrando sinais de já terem passado pelo interesse máximo e começando
a jogar com menos frequência.
Personalize bônus para renovar o interesse do jogador, como
a oferta de ferramentas, armas ou descontos de alto valor e
curta duração.
Na próxima vez que o jogador fizer login, mostre um vídeo que direcione
a recursos da comunidade, como ataques de clãs, que
promovem um engajamento mais longo e frequente.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Add player stats to your game\n\nFollowing the deprecation of the\n[Google Sign-In](https://android-developers.googleblog.com/2024/09/streamlining-android-authentication-credential-manager-replaces-legacy-apis.html)\nAPI, we are removing the games v1 SDK in 2026. After February 2025, you will be unable to publish\ntitles that are newly integrated with games v1 SDK, on Google Play. We recommend that you use the\ngames v2 SDK instead. \n\nWhile existing titles with the previous games v1 integrations continue to function for a\ncouple of years, you are encouraged to\n[migrate to v2](/games/pgs/android/migrate-to-v2)\nstarting June 2025. \n\nThis guide is for using the Play Games Services v1 SDK. The C++ SDK for\nPlay Games Services v2 is not yet available.\n\nThe Player Stats API let you tailor game experiences to specific segments of\nplayers and different stages of the player lifecycle. You can build tailored\nexperiences for each player segment based on how players are progressing,\nspending, and engaging. For example, you can use this API to take proactive\nactions to encourage a less active player to re-engage with your game, such as\nby displaying and promoting new in-game items when the player signs in.\n\nThis guide shows you how to use the Player Stats API in a native C++ or\nObjective-C application.\n\nPlayer stats basics\n-------------------\n\nYou can use the Player Stats APIs to retrieve data about a player's in-game\nactivity. The types of player data you can retrieve include:\n\n- **Average session length**: The average session length of the player in minutes. Session length is determined by the time that a player is signed in to Google Play Games services.\n- **Churn probability**: The prediction of whether a player will churn in the next day, given as 0 (low probability of churn) or 1 (high probability of churn). Churn is defined as 7 days of inactivity.\n- **Days since last played**: The approximate number of days since the player last played.\n- **Number of purchases**: The approximate number of in-app purchases for the player.\n- **Number of sessions**: The approximate number of sessions of the player. Sessions are determined by the number of times that a player signs in to Google Play Games services.\n- **Session percentile**: The approximation of sessions percentile for the player, given as a decimal value between 0 and 1 (inclusive). This value indicates how many sessions the current player has played in comparison to the rest of this game's player base. Higher numbers indicate that this player has played more sessions.\n- **Spend percentile**: The approximate spend percentile of the player, given as a decimal value between 0 and 1 (inclusive). This value indicates how much the current player has spent in comparison to the rest of this game's player base. Higher numbers indicate that this player has spent more.\n\nGet player stats for a currently signed-in player with C++\n----------------------------------------------------------\n\n // Create the callback for our asynchronous fetch call. This callback will\n // log either an error or the average session length for the currently\n // signed-in player.\n gpg::StatsManager::FetchForPlayerCallback callback = [](gpg::StatsManager::FetchForPlayerResponse const &response) {\n if (IsError(response.status)) {\n LogE(\"An error occurred fetching player stats.\");\n } else {\n gpg::PlayerStats const & player_stats = response.data;\n if (player_stats.HasAverageSessionLength()) {\n LogI(\"Average session length: %f\", player_stats.AverageSessionLength());\n } else {\n LogW(\"Currently signed-in player had no associated average session length stats.\");\n }\n }\n };\n // Asynchronously fetch the Player Stats. When the fetch is finished it\n // will call our callback. game_services_ is the std::unique_ptr\u003cGameServices\u003e\n // returned by gpg::GameServices::Builder.Create()\n game_services_-\u003eStats().FetchForPlayer(callback);\n\nGet player stats for a currently signed-in player with Objective-C\n------------------------------------------------------------------\n\n // Asynchronously fetches the Player Stats and then logs either a\n // description of them or an error\n [GPGPlayerStats playerStatsWithCompletionHandler:^(GPGPlayerStats *playerStats, NSError *error) {\n if (error) {\n NSLog(@\"Error fetching player stats: %@\", error);\n } else {\n NSLog(@\"Description of stats for the currently signed-in player: %@\", playerStats);\n }\n }];\n\nTips for using player stats data\n--------------------------------\n\nThe Play Stats API lets you easily identify various types of players, based on\ntheir engagement and spending behavior, and apply appropriate strategies to\nenhance their game experience.\n\nThe following table lists some example player segments and recommended\nengagement strategies:\n\n| Player Segment | Engagement Strategy |\n|---------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Frequent players with a high number of sessions and good spend percentile, but have not played for the last week or more. | - Send a notification about a discount or special bonus available upon their return to play. - Show a welcome back message that acknowledges impressive accomplishments, and award a badge designed to encourage return play. |\n| Highly engaged players in a low spend percentile. | - Tailor bonuses to incentivize them to invite their friends to install and join your game. This approach builds on the player's demonstrated enjoyment of the game to recruit new players. |\n| High spending players showing signs of having peaked and starting to play less frequently. | - Tailor bonuses to freshen their interest, such as by offering high-value, short-duration tools, weapons, or discounts. - The next time the player signs in, show a video that directs them to community features, like clan attacks, that drive more frequent and longer engagement. |"]]