Oyuncu istatistikleri API'si, oyun deneyimlerini belirli oyuncu segmentlerine ve oyuncu yaşam döngüsünün farklı aşamalarına göre uyarlamanıza olanak tanır. Oyuncuların nasıl ilerlediklerine, harcama yaptıklarına ve nasıl etkileşimde bulunduklarına bağlı olarak her oyuncu segmenti için özel deneyimler oluşturabilirsiniz. Örneğin, daha az aktif olan bir oyuncuyu oyununuzla yeniden etkileşime geçmeye teşvik etmek için proaktif işlemler yapmak amacıyla bu API'yi kullanabilirsiniz. Örneğin, oyuncu oturum açtığında yeni oyun içi öğeleri gösterebilir ve tanıtabilirsiniz.
Bu kılavuzda, Google Play Games Hizmetleri kullanılarak oyunlarda oyuncu istatistikleri API'sinin nasıl kullanılacağı gösterilmektedir. API'leri com.google.android.gms.games.stats
ve com.google.android.gms.games
paketlerinde bulabilirsiniz.
Başlamadan önce
Oyuncu istatistikleri API'sini kullanmaya başlamadan önce:
- Kod örneğini indirip inceleyin.
- Kalite Kontrol Listesi'nde açıklanan önerileri inceleyin.
Oyuncu istatistikleri istemcisini al
Oyuncu istatistikleri API'sini kullanmaya başlamak için oyununuzun önce bir PlayerStatsClient
nesnesi alması gerekir. Bunu, Games.getPlayerStatsClient()
yöntemini çağırıp etkinliği ve mevcut oynatıcı için GoogleSignInAccount
öğesini ileterek yapabilirsiniz. Oyuncu hesabı bilgilerini nasıl alacağınızı öğrenmek için Android Games'de oturum açma konusuna bakın.
Oyuncu istatistikleri hakkında temel bilgiler
Bir oyuncunun oyun içi etkinliğiyle ilgili verileri almak için oyuncu istatistikleri API'sini kullanabilirsiniz. Ayıklayabileceğiniz oyuncu verisi türleri şunlardır:
Ortalama oturum uzunluğu: Oynatıcının dakika cinsinden ortalama oturum uzunluğu. Oturum süresi, oyuncunun Google Play Oyun Hizmetleri'nde oturum açtığı süreye göre belirlenir.
Son oynama tarihinden bu yana geçen gün sayısı: Oyuncunun son oynama tarihinden bu yana geçen yaklaşık gün sayısı.
Satın alma sayısı: Oyuncu için yaklaşık uygulama içi satın alma işlemi sayısı.
Oturum sayısı: Oynatıcının yaklaşık oturum sayısı. Oturumlar, bir oyuncunun Google Play Games hizmetlerinde oturum açma sayısına göre belirlenir.
Oturum yüzdesi: Oyuncu için oturum yüzdesinin yaklaşık değeridir. 0 ile 1 (dahil) arasında bir ondalık değer olarak verilir. Bu değer, mevcut oyuncunun oyunun oyuncu tabanının geri kalanına kıyasla kaç oturum oynadığını gösterir. Daha yüksek sayılar, bu oyuncunun daha fazla oturum oynadığını gösterir.
Harcama yüzdelik dilimi: Oynatıcının yaklaşık harcama yüzdelik dilimi. 0 ile 1 (0 ve 1 dahil dahil) arasında ondalık bir değer olarak verilir. Bu değer, mevcut oyuncunun oyunun oyuncu tabanının geri kalanına kıyasla ne kadar harcama yaptığını gösterir. Daha yüksek sayılar, bu oyuncunun daha fazla harcama yaptığını gösterir.
Aşağıdaki oynatıcı verisi türleri kullanımdan kaldırılmıştır ve her zaman ayarlanmamış bir değer sabiti döndürür:
- Uygulamayı kullanmayı bırakma olasılığı: Bir oyuncunun ertesi gün uygulamayı kullanmayı bırakıp bırakmayacağının tahmini. 0 (uygulamayı kullanmayı bırakma olasılığı düşük) ile 1 (uygulamayı kullanmayı bırakma olasılığı yüksek) arasında bir ondalık değer olarak verilir. Kaybetme, 7 gün boyunca işlem yapılmaması olarak tanımlanır.
- Harcama olasılığı: Oyuncunun bu oyunda harcama yapmayı seçme olasılığının yaklaşık değeridir. 0 (düşük harcama olasılığı) ile 1 (yüksek harcama olasılığı) arasında bir ondalık değer olarak verilir.
- Sonraki 28 gün içindeki toplam harcama: Bu oyunda önümüzdeki 28 gün içinde oyuncuların yapacağı tahmini toplam harcama.
- Yüksek harcama olasılığı: Bir oyuncunun önümüzdeki 28 gün içinde bu oyunun oyuncu tabanının 95. yüzdelik diliminde veya daha yüksek bir tutarda harcama yapma olasılığı. Bu değer, 0 (yüksek harcama yapan kullanıcı olma olasılığı düşük) ile 1 (yüksek harcama yapan kullanıcı olma olasılığı yüksek) arasında bir ondalık değer olarak verilir.
Oyuncu istatistikleri verilerini alma
Şu anda oturum açmış olan oyuncunun oyuncu istatistikleri verilerini almak için aşağıdaki adımları uygulayın:
PlayerStatsClient.loadPlayerStats()
yöntemini çağırın.- Çağrı başarılı olursa Google Play Games Hizmetleri,
PlayerStats
nesnesini eşzamansız olarak yükleyen birTask
nesnesi döndürür. Oturum açmış oynatıcının uygulamanızdaki etkinlikleriyle ilgili verileri almak için bu nesnenin yöntemlerini kullanın.
Aşağıda bununla ilgili bir örnek verilmiştir:
public void checkPlayerStats() { Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(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()); } } }); }
Oyuncu istatistikleri verilerini kullanmayla ilgili ipuçları
Play Stats API, etkileşim ve harcama davranışlarına göre çeşitli oyuncu türlerini kolayca tanımlamanıza ve oyun deneyimlerini iyileştirmek için uygun stratejiler uygulamanıza olanak tanır.
Aşağıdaki tabloda bazı örnek oyuncu segmentleri ve önerilen etkileşim stratejileri listelenmiştir:
Oynatıcı Segmenti | Etkileşim stratejisi |
---|---|
Oturum sayısı yüksek ve harcama yüzdesi iyi olan ancak son bir hafta veya daha uzun süredir oynamamış olan sık oyuncular. |
|
Düşük harcama yüzdelik diliminde olan, etkileşimi yüksek oyuncular. |
|
Harcamalarının zirveye ulaştığını ve daha az oynamaya başladığına dair işaretler gösteren yüksek harcama yapan oyuncular |
|
Harcama olasılığı çok yüksek veya çok düşük olan oyuncular. |
|