Android Oyunlardaki Oyuncu İstatistikleri

Oyuncu istatistikleri API'si, oyun deneyimlerini belirli oyuncu segmentlerine ve oyuncu yaşam döngüsünün farklı aşamalarına uyarlamanızı sağlar. Oyuncuların ilerleme durumu, harcamaları ve etkileşimine göre her oyuncu segmenti için özelleştirilmiş deneyimler oluşturabilirsiniz. Örneğin, daha az aktif bir oyuncuyu oyununuzla yeniden etkileşimde bulunmaya teşvik etmek için proaktif işlemler yapmak için bu API'yi kullanabilirsiniz. Örneğin, oyuncu oturum açtığında yeni oyun içi öğeleri görüntüleyip tanıtabilir.

Bu kılavuzda, Google Play oyun hizmetleri kullanılan oyunlarda oyuncu istatistikleri API'sının nasıl kullanılacağı gösterilmektedir. API'ler com.google.android.gms.games.stats ve com.google.android.gms.games paketlerinde bulunabilir.

Başlamadan önce

Oynatıcı istatistikleri API'sini kullanmaya başlamadan önce:

Oyuncu istatistikleri istemcisini alma

Oynatıcı istatistikleri API'sini kullanmaya başlamak için oyununuzun öncelikle bir PlayerStatsClient nesnesi edinmesi gerekir. Bunu yapmak için Games.getPlayerStatsClient() yöntemini çağırıp etkinliği iletebilirsiniz.

Oyuncu İstatistikleri ile ilgili temel bilgiler

Oyuncuların oyun içi etkinlikleriyle ilgili verileri almak için oyuncu istatistikleri API'sını kullanabilirsiniz. Alabileceğiniz oynatıcı verisi türleri şunlardır:

  • Ortalama oturum uzunluğu: Oyuncunun dakika cinsinden ortalama oturum süresi. Oturum uzunluğu, bir oyuncunun Google Play Games hizmetlerinde oturum açtığı zamana göre belirlenir.

  • Son oynamadan bu yana geçen gün sayısı: Oyuncunun oynadığı son oyundan beri geçen yaklaşık gün sayısı.

  • Satın alma sayısı: Oyuncunun yaklaşık uygulama içi satın alma sayısı.

  • Oturum sayısı: Oynatıcının yaklaşık oturum sayısıdır. Oturum sayısı, bir oyuncunun Google Play Games hizmetlerinde kaç kez oturum açtığına göre belirlenir.

  • Oturum yüzdelik dilimi: Oyuncu için oturum yüzdelik değerinin yaklaşık değeridir ve 0 ile 1 arasında (bu değerler dahil) bir ondalık değer olarak verilir. Bu değer, mevcut oyuncunun bu oyunun geri kalan oyuncu tabanı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üzdesi: Oyuncunun yaklaşık harcama yüzdelik dilimi (0 ve 1 dahil olmak üzere ondalık sayı olarak verilir). Bu değer, mevcut oyuncunun bu oyunun geri kalan oyuncu tabanı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 oyuncu verisi türleri kullanımdan kaldırılır ve her zaman ayarlanmamış bir değer sabiti döndürür:

  • Uygulamayı kullanmayı bırakma olasılığı: Oyuncunun ertesi gün uygulamayı kullanmayı bırakması tahminini ifade eder. Bu değer, 0 (devre dışı bırakma olasılığı düşük) ile 1 (bırakma olasılığı) dahil olmak üzere 1 (bu değerler dahil) arasında ondalık bir değer olarak verilir. Uygulamayı kullanmayı bırakma, 7 gün boyunca işlem yapılmaması olarak tanımlanır.
  • Harcama olasılığı: Oyuncunun bu oyunda harcamayı seçme olasılığı, 0 (düşük harcama olasılığı) ile 1 (harcama olasılığı yüksek) dahil olmak üzere ondalık bir değer olarak verilir.
  • Sonraki 28 gün içindeki toplam harcama: Bu oyunda sonraki 28 gün içinde oyuncuların beklenen toplam harcama tutarıdır.
  • Yüksek harcama olasılığı: Oyuncunun, önümüzdeki 28 gün içinde bu oyuncunun oyuncu tabanının 95. yüzdelik diliminde veya daha üstünde yer alan bir tutarı harcama olasılığıdır. Bu değer, 0 (yüksek harcama yapma olasılığı düşük) ile 1 (yüksek harcama yapan olma olasılığı yüksek) arasında ondalık bir değer olarak verilir.

Oyuncu istatistikleri verilerini alma

Şu anda oturum açmış olan oyuncuya ilişkin oyuncu istatistikleri verilerini almak için aşağıdaki adımları uygulayın:

  1. PlayerStatsClient.loadPlayerStats() yöntemini çağırın.
  2. Arama başarılı olursa Google Play oyun hizmetleri, bir PlayerStats nesnesini eşzamansız olarak yükleyen bir Task nesnesi döndürür. Oturum açmış oyuncuları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() {
  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());
          }
        }
      });
}

Oyuncu İstatistikleri verilerini kullanmayla ilgili ipuçları

Play İstatistikleri API'sı, kullanıcıların etkileşim ve harcama davranışlarına göre kolayca farklı oyuncu türlerini belirlemenize ve oyun deneyimlerini geliştirmek üzere uygun stratejiler uygulamanıza olanak tanır.

Aşağıdaki tabloda bazı örnek oynatıcı segmentleri ve önerilen etkileşim stratejileri listelenmiştir:

Oyuncu Segmenti Etkileşim Stratejisi
Oturum sayısı yüksek ve harcama açısından iyi bir yüzdeye sahip olmakla birlikte son bir hafta veya daha uzun süre boyunca sık sık oyun oynayan oyuncular.
  • Oynadıkları oyunda indirim veya özel bonus hakkında bildirim gönderin.
  • Etkileyici başarıları onaylayan bir karşılama mesajı gösterin ve oyunu tekrar oynamayı teşvik etmek için tasarlanmış bir rozet kazanın.
Düşük harcama yüzdesine sahip, etkileşim düzeyi yüksek oyuncular.
  • Arkadaşlarınızı oyununuzu yüklemeye ve oyununuza katılmaya teşvik etmek için bonusları özelleştirin. Bu yaklaşım, oyuncunun yeni oyuncular kazanmak için oyundan keyif aldığını gösterir.
Yüksek harcama yapan oyuncuların zirve noktasına ulaştığı ve daha az oynamaya başladığı belirtileri görülür.
  • Avantajları (ör. değeri yüksek, kısa süreli araçlar, silahlar veya indirimler) sunmak için kullanıcıların ilgi alanlarını tazeleyin.
  • Oyuncu tekrar oturum açtığında daha sık ve daha uzun etkileşim sağlayan klan saldırıları gibi topluluk özelliklerine yönlendiren bir video gösterir.
Harcama olasılığı çok yüksek veya çok düşük olan oyuncular.
  • Harcama olasılığı düşük: Reklam videosu izleme seçeneği sunun. Satın almak için daha düşük fiyatlı ürünler gösterin.
  • Harcama olasılığı yüksek: Kullanıcıları oyun içi mağazaya erkenden yönlendirin ve satın almaya teşvik edecek özel promosyonlar sunun.