Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W związku z wycofaniem interfejsu Logowania przez Google w 2026 r. usuniemy pakiet SDK gier w wersji 1. Po lutym 2025 r. nie będzie można publikować w Google Play tytułów, które zostały dopiero zintegrowane z pakietem SDK gier w wersji 1. Zalecamy zamiast tego korzystać z pakietu SDK gier w wersji 2.
Chociaż istniejące tytuły z integracją poprzedniej wersji gry 1 będą działać przez kilka lat, zachęcamy do przejścia na wersję 2 od czerwca 2025 r.
Ten przewodnik dotyczy pakietu SDK usług gier Play w wersji 1. Pakiet C++ SDK usług gier Google Play w wersji 2 nie jest jeszcze dostępny.
Interfejs API Statystyk gracza pozwala dostosować rozgrywkę do konkretnych segmentów graczy i różnych etapów ich cyklu życia. Możesz tworzyć dostosowane wrażenia dla każdego segmentu graczy na podstawie ich postępów, wydatków i zaangażowania. Możesz na przykład użyć tego interfejsu API, aby podjąć działania zachęcające mniej aktywnych graczy do ponownego zaangażowania się w Twoją grę, np. wyświetlając i promując nowe przedmioty w grze, gdy gracz się zaloguje.
Z tego przewodnika dowiesz się, jak korzystać z interfejsu Player Stats API w natywnej aplikacji w C++ lub Objective-C.
Podstawy statystyk zawodników
Za pomocą interfejsów API Statystyk gracza możesz pobierać dane o aktywności gracza w grze. Dostępne typy danych dotyczących odtwarzania:
Średni czas trwania sesji: średni czas trwania sesji użytkownika w minutach. Długość sesji zależy od czasu, przez który gracz jest zalogowany w usługach gier Google Play.
Prawdopodobieństwo rezygnacji: prognoza dotycząca tego, czy gracz zrezygnuje z gry następnego dnia. Wartość ta jest wyrażana jako 0 (niskie prawdopodobieństwo rezygnacji) lub 1 (wysokie prawdopodobieństwo rezygnacji). Rezygnacja jest zdefiniowana jako 7 dni bezczynności.
Dni od ostatniej rozgrywki: przybliżona liczba dni od ostatniej rozgrywki.
Liczba zakupów: przybliżona liczba zakupów w aplikacji dokonanych przez gracza.
Liczba sesji: przybliżona liczba sesji odtwarzacza.
Sesje są określane na podstawie liczby logowań gracza w usługach gier Google Play.
Procent sesji: przybliżony odsetek sesji gracza podany jako wartość dziesiętna z zakresu od 0 do 1 (włącznie). Ta wartość wskazuje, ile sesji odbył obecny gracz w porównaniu z resztą graczy tej gry. Wyższe liczby wskazują, że ten gracz odtworzył więcej sesji.
Procent wydatków: przybliżony odsetek wydatków gracza podany jako wartość dziesiętna z zakresu od 0 do 1 (włącznie). Ta wartość wskazuje, ile wydał obecny gracz w porównaniu z resztą graczy w tej grze. Wyższe liczby wskazują, że ten gracz wydał więcej.
Pobieranie statystyk gracza, który jest obecnie zalogowany, za pomocą 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);
Pobieranie statystyk gracza, który jest obecnie zalogowany, w języku 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);}}];
Wskazówki dotyczące korzystania z danych statystyk graczy
Interfejs Play Stats API umożliwia łatwe rozpoznawanie różnych typów graczy na podstawie ich zaangażowania i zachowania w zakresie wydawania środków oraz stosowanie odpowiednich strategii, aby zwiększyć ich wrażenia z gry.
W tabeli poniżej znajdziesz przykładowe segmenty graczy i zalecane strategie zaangażowania:
Segment graczy
Strategia zaangażowania
Często grający użytkownicy z dużą liczbą sesji i dobrym odsetkiem wydatków, którzy nie grali przez co najmniej tydzień.
Wyślij powiadomienie o rabacie lub specjalnym bonusie, z których gracz będzie mógł skorzystać po powrocie do gry.
wyświetlać wiadomość powitalną z podziękami za imponujące osiągnięcia i przyznawać odznakę, która zachęca do powrotu do gry;
Bardzo zaangażowani gracze w niskim centylu wydatków.
Dostosuj bonusy, aby zachęcić ich do zapraszania znajomych do zainstalowania gry i dołączenia do niej. To podejście polega na zachęcaniu do gry nowych graczy, którzy już wcześniej wykazali zainteresowanie grą.
gracze, którzy wydają dużo pieniędzy, wykazują oznaki szczytowego poziomu wydatków i zaczynają rzadziej grać;
Dostosuj bonusy, aby zachęcić graczy do ponownego zainteresowania się grą. Możesz na przykład zaoferować cenne narzędzia, broń lub rabaty na krótki okres.
Gdy gracz zaloguje się po raz kolejny, wyświetl mu film, który kieruje go do funkcji społeczności, takich jak ataki klanów, które zwiększają częstotliwość i długość zaangażowania.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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. |"]]