נתונים סטטיסטיים של שחקנים במשחקי Android

במדריך הזה מוסבר איך להשתמש ב-API של נתוני השחקנים בשירותי המשחקים של Google Play. אתם יכולים להשתמש ב-API של נתוני השחקן כדי לאחזר נתונים על הפעילות של שחקן במשחק.

ה-API של נתוני השחקנים מאפשר לכם להתאים את חוויית המשחק לפלחי שחקנים ספציפיים ולשלבים שונים במחזור החיים של השחקן. אתם יכולים ליצור חוויות מותאמות אישית לכל פלח של שחקנים, בהתאם להתקדמות שלהם, להוצאות שלהם ולמידת המעורבות שלהם. לדוגמה, אפשר להשתמש ב-API הזה כדי לנקוט פעולות יזומות לעידוד שחקנים פחות פעילים לחזור לשחק במשחק. למשל, אפשר להציג ולקדם פריטים חדשים במשחק כשהשחקן מאמת את הזהות שלו.

ממשקי ה-API נמצאים בחבילות com.google.android.gms.games.stats ו-com.google.android.gms.games.

לפני שמתחילים

לפני שמתחילים להשתמש ב-API של נתוני השחקנים:

הורדת אפליקציית הלקוח של נתוני השחקן

כדי להתחיל להשתמש ב-Player Stats API, המשחק שלכם צריך קודם לקבל אובייקט PlayerStatsClient. אפשר לעשות את זה על ידי קריאה לשיטה PlayerStatsClient.getPlayersClient() והעברת הפעילות.

המחלקה PlayerStatsClient משתמשת במחלקה Task של שירותי Google Play כדי להחזיר תוצאות באופן אסינכרוני. מידע נוסף על השימוש במשימות לניהול עבודה בשרשור זמין במדריך למפתחים בנושא Tasks API.

הסבר בסיסי על נתונים סטטיסטיים של שחקנים

אתם יכולים להשתמש ב-API של נתוני השחקן כדי לאחזר נתונים על הפעילות של שחקן במשחק. סוגי נתוני השחקנים שאפשר לאחזר כוללים:

  • משך סשן ממוצע: משך הסשן הממוצע של הצופה בדקות. אורך הסשן נקבע לפי הזמן שבו שחקן מאומת על ידי Google Play Games Services.

  • ימים מאז המשחק האחרון: מספר הימים המשוער שעברו מאז שהשחקן שיחק לאחרונה.

  • מספר הרכישות: המספר המשוער של רכישות מתוך האפליקציה שבוצעו על ידי השחקן.

  • מספר הסשנים: המספר המשוער של סשנים של הנגן. הסשנים נקבעים לפי מספר הפעמים ששחקן עבר אימות על ידי Google Play Games Services.

  • אחוזון הסשן: קירוב של אחוזון הסשנים עבור הנגן, שמוצג כערך עשרוני בין 0 ל-1 כולל. הערך הזה מציין כמה סשנים השחקן הנוכחי שיחק בהשוואה לשאר בסיס השחקנים של המשחק הזה. מספרים גבוהים יותר מציינים שהשחקן הזה שיחק ביותר סשנים.

  • אחוזון ההוצאות: האחוזון המשוער של ההוצאות של השחקן, שמוצג כערך עשרוני בין 0 ל-1 כולל. הערך הזה מציין כמה כסף השחקן הנוכחי הוציא בהשוואה לשאר השחקנים במשחק. מספרים גבוהים יותר מציינים שהשחקן הזה הוציא יותר כסף.

סוגי הנתונים הבאים של נתוני השחקן הוצאו משימוש ותמיד מחזירים קבוע של ערך לא מוגדר:

  • הסתברות לנטישה: חיזוי של הסבירות לכך ששחקן ינטוש ביום הבא. הערך שמתקבל הוא עשרוני בין 0 (סבירות נמוכה לנטישה) ל-1 (סבירות גבוהה לנטישה), כולל. הגדרה של נטישה: 7 ימים ללא פעילות.
  • הסתברות להוצאת כספים: ההסתברות המשוערת שהשחקן יבחר להוציא כספים במשחק הזה. ההסתברות מוצגת כערך עשרוני בין 0 (הסתברות נמוכה להוצאת כספים) ל-1 (הסתברות גבוהה להוצאת כספים), כולל.
  • ההוצאה הכוללת ב-28 הימים הבאים: ההוצאה הכוללת המשוערת של השחקנים במשחק הזה ב-28 הימים הבאים.
  • הסבירות להוצאה גבוהה: הסבירות המשוערת לכך שבמהלך 28 הימים הבאים שחקן יוציא סכום שנמצא באחוזון ה-95 ומעלה מבין כלל השחקנים במשחק הזה. הערך הזה מוצג כמספר עשרוני בין 0 (הסיכוי הנמוך ביותר להפוך ללקוח עם הוצאות גבוהות) ל-1 (הסיכוי הגבוה ביותר להפוך ללקוח עם הוצאות גבוהות).

אחזור נתונים סטטיסטיים של שחקנים

כדי לאחזר נתונים סטטיסטיים של שחקן מאומת, מבצעים את הפעולות הבאות:

  1. מבצעים קריאה ל-method‏ PlayerStatsClient.loadPlayerStats().

  2. אם הקריאה מצליחה, שירותי Google Play Games מחזירים אובייקט Task שבאופן אסינכרוני טוען אובייקט PlayerStats. אפשר להשתמש בשיטות של האובייקט הזה כדי לאחזר נתונים על הפעילויות של השחקן המאומת באפליקציה.

הנה דוגמה:

public void checkPlayerStats() {
  PlayGames.getPlayerStatsClient(this)
      .loadPlayerStats(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) {
          if (task.isSuccessful()) {
            // Check for cached data.
            if (task.getResult().isStale()) {
              Log.d(TAG, "using cached data");
            }
            PlayerStats stats = task.getResult().get();
            if (stats != null) {
              Log.d(TAG, "Player stats loaded");
              if (stats.getDaysSinceLastPlayed() > 7) {
                Log.d(TAG, "It's been longer than a week");
              }
              if (stats.getNumberOfSessions() > 1000) {
                Log.d(TAG, "Veteran player");
              }
              if (stats.getChurnProbability() == 1) {
                Log.d(TAG, "Player is at high risk of churn");
              }
            }
          } else {
            int status = CommonStatusCodes.DEVELOPER_ERROR;
            if (task.getException() instanceof ApiException) {
              status = ((ApiException) task.getException()).getStatusCode();
            }
            Log.d(TAG, "Failed to fetch Stats Data status: "
                + status + ": " + task.getException());
          }
        }
      });
}

טיפים לשימוש בנתוני סטטיסטיקה של שחקנים

ה-API של נתוני Play מאפשר לכם לזהות סוגים שונים של שחקנים על סמך רמת המעורבות שלהם וההתנהגות שלהם בכל הנוגע להוצאות, ולהחיל אסטרטגיות מתאימות כדי לשפר את חוויית המשחק שלהם.

בטבלה הבאה מפורטים כמה פלחי צופים לדוגמה ואסטרטגיות מומלצות לעידוד מעורבות:

פלח של נגן אסטרטגיית מעורבות
שחקנים קבועים עם מספר גבוה של סשנים ודירוג טוב באחוזון ההוצאות, שלא שיחקו בשבוע האחרון או יותר.
  • שליחת התראה על הנחה או על בונוס מיוחד שזמינים אם הם יחזרו לשחק.
  • הצגת הודעת חזרה למשחק שכוללת הכרה בהישגים מרשימים, ומתן תג שנועד לעודד חזרה למשחק.
שחקנים עם רמת מעורבות גבוהה באחוזון הוצאות נמוך.
  • התאמת הבונוסים כדי לעודד אותם להזמין את החברים שלהם להתקין את המשחק ולהצטרף אליו. הגישה הזו מתבססת על ההנאה שהשחקן חווה מהמשחק, כדי לגייס שחקנים חדשים.
שחקנים עם הוצאות גבוהות שמראים סימנים של מיצוי הפוטנציאל ומתחילים לשחק בתדירות נמוכה יותר.
  • כדי לעורר עניין, כדאי להתאים את הבונוסים, למשל על ידי הצעת כלים, כלי נשק או הנחות שווים לזמן קצר.
  • בפעם הבאה שהשחקן יאמת את עצמו, צריך להציג לו סרטון שמפנה אותו לתכונות של הקהילה, כמו התקפות של שבטים, שמעודדות מעורבות תכופה וארוכה יותר.
שחקנים עם סבירות גבוהה מאוד או נמוכה מאוד להוצאה.
  • לא צפויים לבצע רכישה: מאפשרים להם לצפות בסרטון פרסומת. הצגת פריטים לרכישה במחירים נמוכים יותר.
  • סביר שיבזבזו כסף: כדאי להפנות אותם לחנות במשחק בשלב מוקדם, ולספק מבצעים מיוחדים כדי לעודד אותם לקנות.