קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בעקבות ההוצאה משימוש של API של כניסה באמצעות חשבון Google, אנחנו מסירים את ה-SDK של גרסה 1 למשחקים ב-2026. אחרי פברואר 2025, לא תוכלו לפרסם ב-Google Play כותרים ששולבו לאחרונה עם ערכת ה-SDK של גרסה 1 של משחקים. במקום זאת, מומלץ להשתמש ב-games v2 SDK.
כותרים קיימים עם השילובים הקודמים של המשחקים בגרסה 1 ימשיכו לפעול במשך כמה שנים, אבל מומלץ להעביר אותם לגרסה 2 החל מיוני 2025.
המדריך הזה מיועד לשימוש ב-SDK של Play Games Services v1. עדיין לא זמין SDK ל-C++ עבור Play Games Services v2.
באמצעות Player Stats API תוכלו להתאים אישית את חוויות המשחק לפלחים ספציפיים של שחקנים ולשלבים שונים במחזור החיים של השחקנים. אתם יכולים ליצור חוויות מותאמות אישית לכל פלח שחקנים על סמך ההתקדמות של השחקנים, ההוצאות שלהם והמעורבות שלהם. לדוגמה, אפשר להשתמש ב-API הזה כדי לבצע פעולות יזום כדי לעודד שחקן פחות פעיל לחדש את האינטראקציה עם המשחק, למשל על ידי הצגה וקידום של פריטים חדשים במשחק כשהשחקן נכנס לחשבון.
במדריך הזה מוסבר איך להשתמש ב-Player Stats API באפליקציה ילידית ב-C++ או ב-Objective-C.
העקרונות הבסיסיים של הנתונים הסטטיסטיים של השחקנים
אפשר להשתמש בממשקי ה-API של נתוני השחקן כדי לאחזר נתונים על הפעילות של שחקן במשחק. סוגי נתוני השחקנים שאפשר לאחזר כוללים:
משך סשן ממוצע: משך הסשן הממוצע של הצופה, בזמן אורך הסשן נקבע לפי משך הזמן שבו השחקן מחובר ל-Google Play Games Services.
סבירות לנטישה: התחזית לגבי הסיכוי של שחקן לנטוש ביום הבא, בטווח שבין 0 (סבירות נמוכה לנטישה) ל-1 (סבירות גבוהה לנטישה). נטישה מוגדרת כ-7 ימים של חוסר פעילות.
Days since last played: מספר הימים המשוער מאז שהמשתמש שיחק בפעם האחרונה.
מספר הרכישות: המספר המשוער של רכישות מתוך האפליקציה של השחקן.
מספר הסשנים: המספר המשוער של הסשנים של הנגן.
הסשנים נקבעים לפי מספר הפעמים שהשחקן נכנס לחשבון ב-Google Play Games Services.
אחוזון סשנים: הערך המשוער של אחוזון הסשנים של הצופה, שמוצג כערך עשרוני בין 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 תוכלו לזהות בקלות סוגים שונים של שחקנים, על סמך המעורבות שלהם והתנהגות ההוצאות שלהם, ולהחיל אסטרטגיות מתאימות כדי לשפר את חוויית המשחק שלהם.
בטבלה הבאה מפורטים כמה פלחים לדוגמה של צופים ושל שיטות מומלצות ליצירת עניין:
Player Segment
אסטרטגיית מעורבות
שחקנים תכופים עם מספר רב של סשנים ופריסה טובה במדד החמישיון של ההוצאות, אבל לא שיחקו בשבוע האחרון או יותר.
לשלוח להם התראה על הנחה או על בונוס מיוחד שזמין להם אם הם יחזרו לשחק.
להציג הודעה של 'ברוך הבא חזרה' עם הכרה בהישגים מרשימים, ולתת תג שנועד לעודד את השחקן לחזור לשחק.
שחקנים שהמעורבות שלהם גבוהה ונמצאים בטווח אחוזים נמוך של הוצאות.
תוכלו להתאים אישית את הבונוסים כדי לעודד אותם להזמין את החברים שלהם להתקין את המשחק ולהצטרף אליו. הגישה הזו מבוססת על ההנאה של השחקנים מהמשחק כדי לצרף שחקנים חדשים.
שחקנים שמוציאים הרבה כסף ומתחילים לשחק בתדירות נמוכה יותר.
כדאי להתאים את הבונוס כדי לעורר עניין מחודש, למשל על ידי מתן הנחות, כלים או כלי נשק שווים במיוחד לטווח קצר.
בפעם הבאה שהשחקן ייכנס לחשבון, תוכלו להציג לו סרטון שמפנה אותו לתכונות הקהילה, כמו התקפות של קלאנים, שמעודדות מעורבות תדירה וארוכה יותר.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","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-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. |"]]