במדריך הזה מוסבר איך להשתמש בממשק ה-API של נתוני השחקנים ב-Google Play Games Services. אתם יכולים להשתמש ב-Player Stats API כדי לאחזר נתונים על הפעילות של שחקן במשחק.
ממשק ה-API של נתוני השחקנים מאפשר לכם להתאים את חוויית המשחק לפלחי שחקנים ספציפיים ולשלבים שונים במחזור החיים של השחקן. אתם יכולים ליצור חוויות מותאמות אישית לכל פלח שחקנים על סמך ההתקדמות, ההוצאות והמעורבות שלהם. לדוגמה, אתם יכולים להשתמש בממשק ה-API הזה כדי לנקוט פעולות יזומות לעידוד שחקנים פחות פעילים לחזור לשחק במשחק שלכם, למשל על ידי הצגה וקידום של פריטים חדשים במשחק כשהשחקן מאמת את הזהות שלו.
ממשקי ה-API נמצאים בחבילות com.google.android.gms.games.stats ו-com.google.android.gms.games.
לפני שמתחילים
לפני שמתחילים להשתמש בממשק ה-API של נתוני השחקנים:
- מורידים את דוגמת הקוד ומעיינים בה.
- מעיינים בהמלצות שמופיעות ברשימת המשימות לאיכות.
קבלת לקוח הנתונים הסטטיסטיים של השחקן
כדי להתחיל להשתמש בממשק ה-API של נתוני השחקן, המשחק צריך קודם לקבל אובייקט PlayerStatsClient. כדי לעשות את זה, קוראים לשיטה PlayerStatsClient.getPlayersClient() ומעבירים את הפעילות.
הסיווג PlayerStatsClient משתמש בסיווג Task של Google Play Services כדי להחזיר תוצאות באופן אסינכרוני. במדריך למפתחים של Tasks API מוסבר איך משתמשים במשימות כדי לנהל עבודה שמתבצעת ב-Threads.
הסבר בסיסי על נתונים סטטיסטיים של שחקנים
אתם יכולים להשתמש ב-API של נתוני השחקן כדי לאחזר נתונים על הפעילות של השחקן במשחק. סוגי הנתונים של השחקן שאתם יכולים לאחזר כוללים:
משך סשן ממוצע: משך הסשן הממוצע של השחקן בדקות. משך הסשן נקבע לפי הזמן שבו השחקן מאומת על ידי Google Play Games Services.
ימים מאז המשחק האחרון: מספר הימים המשוער שעברו מאז שהשחקן שיחק בפעם האחרונה.
מספר הרכישות: המספר המשוער של רכישות מתוך האפליקציה שבוצעו על ידי השחקן.
מספר הסשנים: המספר המשוער של סשנים של הנגן. הסשנים נקבעים לפי מספר הפעמים ששחקן מאומת על ידי Google Play Games Services.
אחוזון הסשנים: קירוב של אחוזון הסשנים של השחקן, שמוצג כערך עשרוני בין 0 ל-1 כולל. הערך הזה מציין כמה סשנים השחקן הנוכחי שיחק בהשוואה לשאר בסיס השחקנים של המשחק. מספרים גבוהים יותר מציינים שהשחקן שיחק יותר סשנים.
אחוזון ההוצאות: האחוזון המשוער של ההוצאות של השחקן, שמוצג כערך עשרוני בין 0 ל-1 כולל. הערך הזה מציין כמה כסף השחקן הנוכחי הוציא בהשוואה לשאר בסיס השחקנים של המשחק. ערכים גבוהים יותר מציינים שהשחקן הזה הוציא יותר כסף.
סוגי הנתונים הבאים של נתוני השחקן הוצאו משימוש ותמיד מחזירים קבוע של ערך לא מוגדר:
- סבירות נטישה: תחזית לגבי הסבירות ששחקן ינטוש את המשחק ביום הבא. התחזית מוצגת כערך עשרוני בין 0 (סבירות נמוכה לנטישה) ל-1 (סבירות גבוהה לנטישה), כולל. נטישה מוגדרת כ-7 ימים של חוסר פעילות.
- הסתברות להוצאה: ההסתברות המשוערת לכך שהשחקן יבחר להוציא כסף במשחק הזה. ההסתברות מוצגת כערך עשרוני בין 0 (הסתברות נמוכה להוצאה) ל-1 (הסתברות גבוהה להוצאה), כולל.
- ההוצאה הכוללת ב-28 הימים הבאים: סכום ההוצאות הכולל המשוער של השחקנים במשחק הזה ב-28 הימים הבאים.
- הסבירות להוצאה גבוהה: הסבירות המשוערת לכך שבמהלך 28 הימים הבאים שחקן יוציא סכום שנמצא באחוזון ה-95 ומעלה מתוך בסיס השחקנים של המשחק הזה. הערך הזה ניתן כמספר עשרוני בין 0 (הסיכוי הנמוך ביותר להפוך ללקוח עם הוצאות גבוהות) לבין 1 (הסיכוי הגבוה ביותר להפוך ללקוח עם הוצאות גבוהות).
אחזור נתונים סטטיסטיים של שחקנים
כדי לאחזר נתונים סטטיסטיים של השחקן המאומת, פועלים לפי השלבים הבאים:
מבצעים קריאה ל-method
PlayerStatsClient.loadPlayerStats().אם הקריאה מצליחה, שירותי 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 מאפשר לכם לזהות סוגים שונים של שחקנים על סמך רמת המעורבות שלהם וההתנהגות שלהם בכל הנוגע להוצאות, ולהחיל אסטרטגיות מתאימות כדי לשפר את חוויית המשחק שלהם.
בטבלה הבאה מפורטים כמה פלחי צופים לדוגמה ואסטרטגיות מומלצות להגברת האינטראקציה:
| פלח של נגן | אסטרטגיית מעורבות |
|---|---|
| שחקנים קבועים עם מספר גבוה של סשנים ואחוזון טוב של הוצאות, אבל לא שיחקו בשבוע האחרון או יותר. |
|
| שחקנים עם רמת מעורבות גבוהה שנמצאים באחוזון נמוך של הוצאות. |
|
| שחקנים עם הוצאות גבוהות שמראים סימנים של מיצוי הפוטנציאל ומתחילים לשחק בתדירות נמוכה יותר. |
|
| שחקנים עם סבירות גבוהה מאוד או נמוכה מאוד להוצאת כספים. |
|