Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Después de la baja de la API de Acceso a Google, quitaremos el SDK de juegos v1 en 2026. Después de febrero de 2025, no podrás publicar títulos que se hayan integrado recientemente con el SDK de juegos v1 en Google Play. Te recomendamos que uses el SDK de juegos v2.
Si bien los títulos existentes con las integraciones de la versión 1 de los juegos anteriores seguirán funcionando durante un
par de años, te recomendamos que
migres a la versión 2
a partir de junio de 2025.
Esta guía se aplica al uso del SDK de la versión 1 de los Servicios de juego de Play. El SDK de C++ para la versión 2 de los Servicios de juego de Play aún no está disponible.
La API de Player Stats te permite personalizar experiencias del juego para segmentos específicos de jugadores y diferentes etapas del ciclo de vida del jugador. Puedes crear experiencias personalizadas para cada segmento de jugadores según su avance, gasto y participación. Por ejemplo, puedes usar esta API para realizar acciones proactivas a fin de incentivar a un jugador menos activo para que vuelva a interesarse en tu juego; por ejemplo, mostrando y promocionando nuevos elementos del juego cuando acceda el jugador.
En esta guía, se muestra cómo usar la API de Player Stats en una aplicación nativa de C++ o
Objective-C.
Aspectos básicos de las estadísticas del jugador
Puedes usar las APIs de Player Stats para recuperar datos sobre la actividad de un jugador en el juego. Entre los tipos de datos sobre los jugadores que puedes obtener, se incluyen los siguientes:
Duración promedio de la sesión: Indica la duración promedio de la sesión del jugador en minutos. La extensión de la sesión se determina por el tiempo que el jugador permanece conectado a los Servicios de juego de Google Play.
Probabilidad de deserción: Indica la predicción de si un jugador abandonará el próximo día, dado como 0 (baja probabilidad de deserción) o 1 (alta probabilidad de deserción). Por definición, la migración equivale a 7 días de inactividad.
Días desde la última vez que se jugó: Indica la cantidad aproximada de días desde la última vez que el usuario jugó.
Cantidad de compras: Indica la cantidad aproximada de compras directas del jugador desde la aplicación.
Cantidad de sesiones: Indica la cantidad aproximada de sesiones del jugador.
Las sesiones se determinan por la cantidad de veces que el jugador accede a los Servicios de juego de Google Play.
Percentil de sesiones: Indica la aproximación del percentil de sesiones del jugador, dada como un valor decimal entre 0 y 1 inclusive. Este valor indica la cantidad de sesiones en las que participó el jugador actual en comparación con el resto de la base de jugadores del juego. Los números más altos indican que ese jugador participó en más sesiones.
Percentil de gasto: Indica el percentil de gasto aproximado del jugador, dado como un valor decimal entre 0 y 1 inclusive. Este valor indica el consumo del jugador actual en comparación con el resto de la base de jugadores del juego. Los números más altos indican que los gastos de este jugador fueron mayores.
Cómo obtener estadísticas del jugador que está conectado actualmente con 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);
Cómo obtener estadísticas del jugador que accedió con 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);}}];
Sugerencias para usar los datos de Player Stats
La API de Play Stats te permite identificar con facilidad varios tipos de jugadores según su participación y comportamiento de consumo, y aplicar estrategias adecuadas para mejorar la experiencia de juego.
En la siguiente tabla se muestran algunos ejemplos de segmentos de jugadores y estrategias de participación recomendadas:
Segmento de jugadores
Estrategia de participación
Jugadores frecuentes con una gran cantidad de sesiones y un buen percentil de consumo, pero que no hayan usado el juego durante la última semana o por más tiempo.
Envía una notificación sobre un descuento o una bonificación especial disponible cuando vuelvan a jugar.
Muestra un mensaje de bienvenida en el que se reconozcan logros notables y otorga una insignia para alentar el regreso al juego.
Jugadores muy activos en un percentil de consumo bajo.
Personaliza bonificaciones para alentarlos a que inviten a sus amigos a instalar y usar el juego. Este enfoque se basa en el disfrute del juego demostrado por el jugador con el objetivo de atraer jugadores nuevos.
Jugadores con consumo elevado que muestren signos de haber alcanzado un pico y comiencen a jugar con menos frecuencia.
Personaliza bonificaciones para renovar su interés; por ejemplo, puedes ofrecer herramientas de gran valor y corta duración, armas o descuentos.
La próxima vez que el usuario acceda al juego, muestra un video que lo dirija a las funciones de la comunidad, como ataques de clanes, que generen una participación más frecuente y prolongada.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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. |"]]