با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
پس از منسوخ شدن Google Sign-In API، ما بازیها v1 SDK را در سال 2026 حذف میکنیم. پس از فوریه 2025، نمیتوانید عناوینی را که به تازگی با بازیهای v1 SDK ادغام شدهاند، در Google Play منتشر کنید. توصیه می کنیم به جای آن از بازی ها v2 SDK استفاده کنید. در حالی که عناوین موجود با ادغام های قبلی نسخه 1 برای چند سال به کار خود ادامه می دهند، شما تشویق می شوید که از ژوئن 2025 به نسخه 2 مهاجرت کنید . این راهنما برای استفاده از Play Games Services v1 SDK است. C++ SDK برای Play Games Services v2 هنوز در دسترس نیست.
Player Stats API به شما امکان می دهد تجربیات بازی را برای بخش های خاصی از بازیکنان و مراحل مختلف چرخه زندگی بازیکن تنظیم کنید. شما می توانید بر اساس نحوه پیشرفت، هزینه و تعامل بازیکنان، تجربیات مناسبی برای هر بخش بازیکن بسازید. به عنوان مثال، میتوانید از این API برای انجام اقدامات پیشگیرانه برای تشویق بازیکن کمتر فعال برای تعامل مجدد با بازی خود استفاده کنید، مانند نمایش و تبلیغ موارد جدید در بازی هنگام ورود بازیکن.
این راهنما به شما نشان می دهد که چگونه از Player Stats API در یک برنامه C++ یا Objective-C بومی استفاده کنید.
اصول اولیه آمار بازیکن
می توانید از API های Player Stats برای بازیابی اطلاعات مربوط به فعالیت های بازیکن در بازی استفاده کنید. انواع داده های پخش کننده ای که می توانید بازیابی کنید عبارتند از:
میانگین طول جلسه : میانگین طول جلسه بازیکن بر حسب دقیقه. طول جلسه با زمانی تعیین میشود که بازیکن به سیستم خدمات بازیهای Google Play وارد میشود.
احتمال ریزش : پیشبینی اینکه آیا یک بازیکن در روز بعد ریزش خواهد کرد یا خیر، که به صورت 0 (احتمال ریزش کم) یا 1 (احتمال ریزش زیاد) داده میشود. Churn به عنوان 7 روز عدم فعالیت تعریف می شود.
روزهای پس از آخرین بازی : تعداد تقریبی روزهای پس از آخرین بازی بازیکن.
تعداد خریدها : تعداد تقریبی خریدهای درون برنامه ای برای بازیکن.
تعداد جلسات : تعداد تقریبی جلسات بازیکن. جلسات بر اساس تعداد دفعاتی که بازیکن وارد سرویسهای بازیهای Google Play میشود تعیین میشود.
صدک جلسه : تقریب صدک جلسات برای بازیکن، که به عنوان یک مقدار اعشاری بین 0 و 1 (شامل) داده می شود. این مقدار نشان می دهد که بازیکن فعلی در مقایسه با بقیه بازیکنان این بازی چند جلسه بازی کرده است. اعداد بالاتر نشان می دهد که این بازیکن جلسات بیشتری بازی کرده است.
صدک خرج کردن : صدک هزینه تقریبی بازیکن که به صورت اعشاری بین 0 و 1 (شامل) داده می شود. این مقدار نشان می دهد که بازیکن فعلی در مقایسه با بقیه بازیکنان این بازی چقدر هزینه کرده است. اعداد بالاتر نشان می دهد که این بازیکن بیشتر خرج کرده است.
دریافت آمار بازیکن برای بازیکنی که در حال حاضر با 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);
دریافت آمار بازیکن برای بازیکنی که در حال حاضر با 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);}}];
نکاتی برای استفاده از داده های آمار پخش کننده
Play Stats API به شما این امکان را می دهد که انواع مختلف بازیکنان را بر اساس درگیری و رفتار خرج کردن آنها به راحتی شناسایی کنید و استراتژی های مناسب را برای بهبود تجربه بازی آنها اعمال کنید.
جدول زیر چند نمونه از بخشهای بازیکن و استراتژیهای تعامل پیشنهادی را فهرست میکند:
بخش بازیکن
استراتژی تعامل
بازیکنان مکرر با تعداد جلسات بالا و درصد خرج خوب، اما در هفته گذشته یا بیشتر بازی نکرده اند.
یک اعلان در مورد تخفیف یا جایزه ویژه موجود پس از بازگشت آنها به بازی ارسال کنید.
یک پیام خوش آمدگویی نشان دهید که دستاوردهای چشمگیر را تأیید می کند، و نشانی را که برای تشویق بازی برگشت طراحی شده است، اعطا کنید.
بازیکنان بسیار درگیر در صدک هزینه پایین.
جوایز خیاطی کنید تا آنها را تشویق کنید تا دوستان خود را برای نصب و پیوستن به بازی شما دعوت کنند. این رویکرد مبتنی بر لذت نشان داده بازیکن از بازی برای جذب بازیکنان جدید است.
بازیکنانی که هزینه بالایی دارند و نشانههایی از رسیدن به اوج و شروع کمتر بازی را نشان میدهند.
پاداشها را برای تازه کردن علاقهشان، از جمله با ارائه ابزارها، سلاحها یا تخفیفهایی با ارزش بالا و کوتاه مدت تنظیم کنید.
دفعه بعد که بازیکن وارد سیستم میشود، ویدیویی نشان دهید که او را به ویژگیهای انجمن هدایت میکند، مانند حملات قبیله، که باعث تعامل بیشتر و طولانیتر میشود.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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. |"]]