באמצעות Player Stats API תוכלו להתאים אישית את חוויות המשחק לפלחים ספציפיים של שחקנים ולשלבים שונים במחזור החיים של השחקן. אתם יכולים ליצור חוויות מותאמות אישית לכל פלח שחקנים על סמך ההתקדמות של השחקנים, ההוצאות שלהם והמעורבות שלהם. לדוגמה, אפשר להשתמש ב-API הזה כדי לבצע פעולות יזום כדי לעודד שחקן פחות פעיל לחדש את האינטראקציה עם המשחק, למשל על ידי הצגה וקידום של פריטים חדשים במשחק כשהשחקן נכנס לחשבון.
במדריך הזה מוסבר איך להשתמש ב-Player Stats API באפליקציה ילידית ב-C++ או ב-Objective-C.
העקרונות הבסיסיים של הנתונים הסטטיסטיים של השחקנים
אפשר להשתמש בממשקי ה-API של נתוני השחקן כדי לאחזר נתונים על הפעילות של שחקן במשחק. סוגי נתוני השחקנים שאפשר לאחזר כוללים:
- משך סשן ממוצע: משך הסשן הממוצע של הנגן, ברגעים. אורך הסשן נקבע לפי משך הזמן שבו השחקן מחובר לשירותי Google Play Games.
- סבירות לנטישה: התחזית לגבי הסיכוי של שחקן לנטוש ביום הבא, בטווח שבין 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::FetchForPlayerCallback callback = [](gpg::StatsManager::FetchForPlayerResponse const &response) {
if (IsError(response.status)) {
LogE("An error occurred fetching player stats.");
} else {
gpg::PlayerStats const & 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
[GPGPlayerStats playerStatsWithCompletionHandler:^(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 | אסטרטגיית מעורבות |
---|---|
שחקנים תכופים עם מספר רב של סשנים ופריסה טובה במדד החמישיון של ההוצאות, אבל לא שיחקו בשבוע האחרון או יותר. |
|
שחקנים שהמעורבות שלהם גבוהה ונמצאים בטווח אחוזים נמוך של הוצאות. |
|
שחקנים שמוציאים הרבה כסף ומתחילים לשחק בתדירות נמוכה יותר. |
|