Android oyunlarındaki oyuncu istatistikleri

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:

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:

  1. PlayerStatsClient.loadPlayerStats() yöntemini çağırın.
  2. Çağrı başarılı olursa Google Play Games Hizmetleri, PlayerStats nesnesini eşzamansız olarak yükleyen bir Task 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.
  • Oyuna geri döndüğünde indirim veya özel bonus hakkında bildirim gönderin.
  • Etkileyici başarıları vurgulayan bir yeniden karşılama mesajı gösterin ve oyuna geri dönmeyi teşvik etmek için tasarlanmış bir rozet verin.
Düşük harcama yüzdelik diliminde olan, etkileşimi yüksek oyuncular.
  • Arkadaşlarını oyununuzu indirip katılmaya davet etmeleri için teşvik edecek ek ücretler sunun. Bu yaklaşım, yeni oyuncular çekmek için oyuncunun oyundan aldığı keyfi temel alır.
Harcamalarının zirveye ulaştığını ve daha az oynamaya başladığına dair işaretler gösteren yüksek harcama yapan oyuncular
  • Yüksek değerli, kısa süreli araçlar, silahlar veya indirimler sunarak kullanıcıların ilgisini canlı tutmak için bonusları özelleştirin.
  • Oyuncu bir sonraki sefer oturum açtığında, daha sık ve daha uzun süreli etkileşim sağlayan klan saldırıları gibi topluluk özelliklerine yönlendiren bir video gösterin.
Harcama olasılığı çok yüksek veya çok düşük olan oyuncular.
  • Harcama yapma olasılığı düşük: Reklam videosu izleme seçeneği sunun. Satın alınabilecek daha uygun fiyatlı öğeler gösterin.
  • Harcama olasılığı yüksek: Bu kullanıcıları oyun içi mağazaya erken yönlendirin ve satın alma işlemi yapmaları için özel promosyonlar sunun.