يوضّح لك هذا الدليل كيفية استخدام واجهة برمجة التطبيقات Player Stats API لخدمات ألعاب Google Play. يمكنك استخدام واجهة برمجة التطبيقات Player Stats API لاسترداد بيانات عن نشاط اللاعب داخل اللعبة.
تتيح لك واجهة برمجة التطبيقات Player Stats API تخصيص تجارب الألعاب لشرائح معيّنة من اللاعبين ومراحل مختلفة من دورة حياة اللاعب. يمكنك إنشاء تجارب مخصّصة لكل شريحة من اللاعبين استنادًا إلى مستوى تقدّمهم وإنفاقهم وتفاعلهم. على سبيل المثال، يمكنك استخدام واجهة برمجة التطبيقات هذه لاتخاذ إجراءات استباقية لتشجيع اللاعبين الأقل نشاطًا على إعادة التفاعل مع لعبتك، وذلك من خلال عرض عناصر جديدة داخل اللعبة والترويج لها عند مصادقة اللاعب.
يمكن العثور على واجهات برمجة التطبيقات في الحزمتَين
com.google.android.gms.games.stats
وcom.google.android.gms.games.
قبل البدء
قبل البدء في استخدام واجهة برمجة التطبيقات Player Stats API، يجب:
- تنزيل عينة التعليمات البرمجية ومراجعتها .
- التعرّف على الاقتراحات الموضّحة في قائمة التحقّق من الجودة.
الحصول على برنامج Player Stats
لبدء استخدام واجهة برمجة التطبيقات Player Stats API، يجب أن تحصل لعبتك أولاً على عنصر
PlayerStatsClient. يمكنك إجراء ذلك من خلال استدعاء طريقة
PlayerStatsClient.getPlayersClient()
وتمرير النشاط.
يستخدِم صف
PlayerStatsClient
صف
Task
في "خدمات Google Play" لعرض النتائج بشكل غير متزامن. لمزيد من المعلومات حول
استخدام المهام لإدارة العمليات المتعدّدة، يُرجى الاطّلاع على
دليل المطوّرين لواجهة برمجة التطبيقات Tasks API.
أساسيات إحصاءات اللاعب
يمكنك استخدام واجهة برمجة التطبيقات Player Stats API لاسترداد بيانات عن نشاط اللاعب داخل اللعبة. تشمل أنواع بيانات اللاعب التي يمكنك استردادها ما يلي:
متوسط مدة الجلسة: متوسط مدة جلسة اللاعب بالـ دقائق. يتم تحديد مدة الجلسة من خلال الوقت الذي تتم فيه مصادقة اللاعب من قِبل خدمات ألعاب Google Play.
عدد الأيام منذ آخر لعب: العدد التقريبي للأيام منذ آخر مرة لعب فيها اللاعب
عدد عمليات الشراء: العدد التقريبي لعمليات الشراء داخل التطبيق التي أجراها اللاعب.
عدد الجلسات: العدد التقريبي لجلسات اللاعب يتم تحديد الجلسات من خلال عدد المرات التي تتم فيها مصادقة اللاعب من قِبل خدمات ألعاب Google Play.
النسبة المئوية للجلسات: التقدير التقريبي للنسبة المئوية لجلسات اللاعب، ويتم عرضها كقيمة عشرية بين 0 و1 ضِمنًا تشير هذه القيمة إلى عدد الجلسات التي لعبها اللاعب الحالي مقارنةً ببقية قاعدة اللاعبين في هذه اللعبة. تشير الأرقام الأعلى إلى أنّ هذا اللاعب قد لعب عددًا أكبر من الجلسات.
النسبة المئوية للإنفاق: النسبة المئوية التقريبية للإنفاق لدى اللاعب، ويتم عرضها كقيمة عشرية بين 0 و1 ضِمنًا تشير هذه القيمة إلى المبلغ الذي أنفقه اللاعب الحالي مقارنةً ببقية قاعدة اللاعبين في هذه اللعبة. تشير الأرقام الأعلى إلى أنّ هذا اللاعب قد أنفق المزيد.
تم إيقاف أنواع بيانات اللاعب التالية وتعرض دائمًا قيمة ثابتة غير مضبوطة:
- احتمالية التوقف عن اللعب: التنبؤ بما إذا كان اللاعب سيتوقف عن اللعب في اليوم التالي، ويتم عرضه كقيمة عشرية بين 0 (احتمال منخفض للتوقف عن اللعب) و1 (احتمال مرتفع للتوقف عن اللعب) ضِمنًا. يُعرَّف التوقف عن اللعب على أنّه 7 أيام من عدم النشاط.
- احتمال الإنفاق: الاحتمال التقريبي لاختيار اللاعب الإنفاق في هذه اللعبة، ويتم عرضه كقيمة عشرية بين 0 (احتمال منخفض للإنفاق) و1 (احتمال مرتفع للإنفاق) ضِمنًا
- إجمالي الإنفاق خلال الـ 28 يومًا التالية: إجمالي الإنفاق المتوقّع التقريبي للاعب خلال الـ 28 يومًا التالية في هذه اللعبة
- High spender probability: الاحتمال التقريبي لأن ينفق اللاعب خلال الـ 28 يومًا التالية مبلغًا يقع في النسبة المئوية الخامسة والتسعين أو أعلى من قاعدة اللاعبين في هذه اللعبة ويتم عرض ذلك كقيمة عشرية بين 0 (احتمال منخفض لأن يصبح اللاعب من بين اللاعبين الذين ينفقون مبالغ كبيرة) و1 (احتمال مرتفع لأن يصبح اللاعب من بين اللاعبين الذين ينفقون مبالغ كبيرة).
استرداد بيانات إحصاءات اللاعب
لاسترداد بيانات إحصاءات اللاعب الذي تمت مصادقته، اتّبِع الخطوات التالية:
استدعِ طريقة
PlayerStatsClient.loadPlayerStats().إذا كان الاستدعاء ناجحًا، تعرض خدمات ألعاب Google Play عنصرًا
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()); } } }); }
نصائح لاستخدام بيانات إحصاءات اللاعب
تتيح لك واجهة برمجة التطبيقات Play Stats API تحديد أنواع مختلفة من اللاعبين، استنادًا إلى سلوكهم من حيث معدّل الاهتمام بالتطبيق والإنفاق، وتطبيق استراتيجيات مناسبة لتحسين تجربة اللعب لديهم.
يعرض الجدول التالي بعض الأمثلة على شرائح اللاعبين واستراتيجيات التفاعل المقترَحة:
| شريحة اللاعب | استراتيجية معدّل الاهتمام بالتطبيق |
|---|---|
| اللاعبون الذين يلعبون بشكل متكرر ولديهم عدد كبير من الجلسات ونسبة مئوية جيدة للإنفاق ، ولكنهم لم يلعبوا خلال الأسبوع الماضي أو أكثر |
|
| اللاعبون المتفاعلون بشكل كبير الذين لديهم نسبة مئوية منخفضة للإنفاق |
|
| اللاعبون الذين ينفقون مبالغ كبيرة ويظهرون علامات على أنّهم وصلوا إلى ذروة الإنفاق وبدأوا يلعبون بشكل أقل تكرارًا |
|
| اللاعبون الذين لديهم احتمال مرتفع جدًا أو منخفض جدًا للإنفاق |
|