Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Nach der Einstellung der Google Sign-In API entfernen wir 2026 das Games v1 SDK. Nach Februar 2025 können Sie bei Google Play keine Titel mehr veröffentlichen, die neu mit dem Games v1 SDK eingebunden sind. Wir empfehlen stattdessen die Verwendung des Games V2 SDK.
Vorhandene Titel mit der vorherigen V1-Integration für Spiele funktionieren noch einige Jahre lang. Wir empfehlen dir jedoch, ab Juni 2025 auf V2 umzustellen.
Dieser Leitfaden bezieht sich auf die Verwendung des Play Games Services SDK v1. Das C++ SDK für Play Games Services 2 ist noch nicht verfügbar.
Mit der Player Stats API können Sie das Spielerlebnis auf bestimmte Spielersegmente und verschiedene Phasen des Spielerlebenszyklus zuschneiden. Sie können für jedes Spielersegment personalisierte Inhalte erstellen, die auf dem Fortschritt, den Ausgaben und der Interaktion der Spieler basieren. Sie können diese API beispielsweise verwenden, um proaktive Maßnahmen zu ergreifen, um weniger aktive Spieler dazu anzuregen, Ihr Spiel wieder zu spielen. So können Sie beispielsweise neue In-Game-Artikel präsentieren und bewerben, wenn sich der Spieler anmeldet.
In diesem Leitfaden erfährst du, wie du die Player Stats API in einer nativen C++- oder Objective-C-Anwendung verwendest.
Spielerstatistiken – Grundlagen
Mit den Player Stats APIs kannst du Daten zu den Aktivitäten eines Spielers im Spiel abrufen. Du kannst unter anderem folgende Spielerdaten abrufen:
Durchschnittliche Sitzungsdauer: Die durchschnittliche Sitzungsdauer des Nutzers in Minuten. Die Sitzungsdauer wird durch die Zeit bestimmt, während der ein Spieler in den Google Play-Spieldiensten angemeldet ist.
Abwanderungswahrscheinlichkeit: Die Vorhersage, ob ein Spieler am nächsten Tag abwandert, angegeben als 0 (geringe Abwanderungswahrscheinlichkeit) oder 1 (hohe Abwanderungswahrscheinlichkeit). Als Abwanderung wird eine Inaktivität von 7 Tagen definiert.
Tage seit der letzten Aktivität: Die ungefähre Anzahl der Tage, seit der Spieler zuletzt aktiv war.
Anzahl der Käufe: Die ungefähre Anzahl der In-App-Käufe des Spielers.
Anzahl der Sitzungen: Die ungefähre Anzahl der Sitzungen des Spielers.
Sitzungen werden anhand der Häufigkeit bestimmt, mit der sich ein Spieler in den Google Play-Spieldiensten anmeldet.
Sitzungsprozentil: Die Schätzung des Sitzungsprozentils für den Spieler, angegeben als Dezimalzahl zwischen 0 und 1 (einschließlich). Dieser Wert gibt an, wie viele Sitzungen der aktuelle Spieler im Vergleich zum Rest der Spielerbasis dieses Spiels gespielt hat. Je höher die Zahl, desto mehr Sitzungen hat dieser Spieler absolviert.
Perzentil der Ausgaben: Das ungefähre Perzentil der Ausgaben des Spielers, angegeben als Dezimalzahl zwischen 0 und 1 (einschließlich). Dieser Wert gibt an, wie viel der aktuelle Spieler im Vergleich zum Rest der Spielerbasis dieses Spiels ausgegeben hat. Je höher die Zahl, desto mehr hat dieser Spieler ausgegeben.
Spielerstatistiken für einen aktuell angemeldeten Spieler mit C++ abrufen
// 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);
Spielerstatistiken für einen aktuell angemeldeten Spieler mit Objective-C abrufen
// 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);}}];
Tipps zur Verwendung von Spielerstatistiken
Mit der Play Stats API können Sie verschiedene Arten von Spielern anhand ihres Interaktions- und Ausgabeverhaltens ganz einfach identifizieren und entsprechende Strategien zur Verbesserung des Spiels anwenden.
In der folgenden Tabelle findest du einige Beispiele für Spielersegmente und empfohlene Strategien für die Interaktion:
Spielersegment
Strategie für die Interaktion
Häufige Spieler mit einer hohen Anzahl von Sitzungen und einem guten Prozentsatz der Ausgaben, die seit mindestens einer Woche nicht mehr gespielt haben.
Senden Sie eine Benachrichtigung über einen Rabatt oder einen speziellen Bonus, der verfügbar ist, wenn der Nutzer wieder spielt.
Zeigen Sie eine Willkommensnachricht mit einer Anerkennung für beeindruckende Leistungen und verleihen Sie ein Abzeichen, das zum Wiedereinstieg animieren soll.
Spieler mit hoher Interaktionsrate, die im unteren Prozentsatz der Ausgaben liegen.
Passen Sie Boni an, um Nutzer dazu anzuregen, ihre Freunde dazu einzuladen, Ihr Spiel zu installieren und zu spielen. Bei diesem Ansatz wird die Freude der Spieler am Spiel genutzt, um neue Spieler zu gewinnen.
Spieler mit hohen Ausgaben, die Anzeichen dafür zeigen, dass sie ihren Höhepunkt erreicht haben und seltener spielen.
Passen Sie Boni an, um das Interesse der Nutzer zu wecken, z. B. indem Sie hochwertige, kurzlebige Tools, Waffen oder Rabatte anbieten.
Wenn sich der Spieler das nächste Mal anmeldet, wird ein Video eingeblendet, in dem er zu Community-Funktionen wie Clanangriffen weitergeleitet wird, die zu häufigeren und längeren Interaktionen führen.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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. |"]]