Player Stats di Game Android

Player Stats API memungkinkan Anda menyesuaikan pengalaman game dengan segmen pemain tertentu dan beragam tahapan siklus hidup pemain. Anda dapat menciptakan pengalaman yang disesuaikan untuk setiap segmen pemain berdasarkan progres, pengeluaran, dan interaksi mereka. Misalnya, Anda dapat menggunakan API ini untuk mengambil tindakan proaktif guna mendorong pemain yang kurang aktif untuk berinteraksi kembali dengan game Anda, seperti dengan menampilkan dan mempromosikan item baru dalam game saat pemain login.

Panduan ini menunjukkan cara menggunakan Player Stats API dalam game melalui layanan game Google Play. API dapat ditemukan dalam paket com.google.android.gms.games.stats dan com.google.android.gms.games.

Sebelum memulai

Sebelum Anda mulai menggunakan Player Stats API:

Mendapatkan klien Player Stats

Untuk mulai menggunakan Player Stats API, game Anda harus mendapatkan objek PlayerStatsClient terlebih dahulu. Anda dapat melakukannya dengan memanggil metode Games.getPlayerStatsClient() serta meneruskan aktivitas dan GoogleSignInAccount untuk pemain saat ini. Untuk mempelajari cara mengambil informasi akun pemain, lihat Login di Game Android.

Dasar-dasar Player Stats

Anda dapat menggunakan Player Stats API untuk mengambil data tentang aktivitas pemain dalam game. Jenis data pemain yang dapat diambil antara lain:

  • Durasi sesi rata-rata: Durasi sesi rata-rata dari pemain dalam menit. Durasi sesi ditentukan oleh waktu yang digunakan pemain saat login ke layanan Google Play Game.

  • Jumlah hari sejak terakhir bermain: Perkiraan jumlah hari sejak pemain terakhir bermain.

  • Jumlah pembelian: Perkiraan jumlah pembelian dalam aplikasi yang dilakukan oleh pemain.

  • Jumlah sesi: Perkiraan jumlah sesi pemain. Sesi ditentukan oleh berapa kali pemain login ke layanan Google Play Game.

  • Persentil sesi: Perkiraan persentil sesi untuk pemain, yang ditentukan sebagai nilai desimal antara 0 hingga 1 inklusif. Nilai ini menunjukkan jumlah sesi yang telah dimainkan oleh pemain saat ini dibandingkan dengan komunitas pemain game ini yang lainnya. Jumlah yang lebih tinggi menunjukkan bahwa sesi yang dimainkan oleh pemain ini lebih banyak.

  • Persentil belanja: Perkiraan persentil belanja pemain, yang ditentukan sebagai nilai desimal antara 0 hingga 1 inklusif. Nilai ini menunjukkan jumlah pengeluaran pemain saat ini dibandingkan dengan komunitas pemain game ini yang lainnya. Jumlah yang lebih tinggi menunjukkan bahwa pengeluaran pemain ini lebih banyak.

Jenis data pemain berikut tidak digunakan lagi dan selalu menampilkan konstanta nilai yang tidak ditetapkan:

  • Probabilitas churn: Prediksi apakah pemain akan berhenti menggunakan aplikasi pada hari berikutnya, yang ditentukan sebagai nilai desimal antara 0 (probabilitas churn rendah) hingga 1 (probabilitas churn tinggi) inklusif. Churn didefinisikan sebagai 7 hari tidak aktif.
  • Probabilitas belanja: Perkiraan probabilitas pemain dalam memilih untuk berbelanja dalam game ini, yang ditentukan sebagai nilai desimal antara 0 (probabilitas belanja rendah) hingga 1 (probabilitas belanja tinggi) inklusif.
  • Total belanja selama 28 hari berikutnya: Perkiraan total belanja pemain yang diharapkan selama 28 hari berikutnya dalam game ini.
  • Probabilitas pembeli setia: Perkiraan probabilitas bahwa selama 28 hari berikutnya pemain akan membelanjakan sebesar 95% persentil atau lebih tinggi untuk komunitas pemain game ini. Nilai ini ditunjukkan sebagai nilai desimal antara 0 (probabilitas rendah untuk menjadi pembeli setia) hingga 1 (probabilitas tinggi untuk menjadi pembeli setia).

Mengambil data Player Stats

Untuk mengambil data Player Stats dari pemain yang saat ini login, ikuti langkah-langkah berikut:

  1. Panggil metode PlayerStatsClient.loadPlayerStats().
  2. Jika panggilan berhasil, layanan Google Play Game menampilkan objek Task yang memuat objek PlayerStats secara asinkron. Gunakan metode objek ini untuk mengambil data tentang aktivitas pemain yang login di aplikasi Anda.

Berikut contohnya:

    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());
              }
            }
          });
    }
    

Tips Menggunakan data Player Stats

Play Stats API memudahkan Anda mengidentifikasi berbagai jenis pemain, berdasarkan interaksi dan perilaku belanja mereka, serta menerapkan strategi yang sesuai untuk menyempurnakan pengalaman game mereka.

Tabel berikut menampilkan beberapa contoh segmen pemain dan strategi interaksi yang direkomendasikan:

Segmen Pemain Strategi Interaksi
Pemain aktif dengan jumlah sesi yang tinggi dan persentil belanja yang baik, tetapi belum bermain dalam seminggu terakhir atau lebih.
  • Kirim notifikasi tentang diskon atau bonus khusus saat mereka kembali bermain.
  • Tampilkan pesan sambutan yang mengumumkan pencapaian yang mengesankan, dan berikan penghargaan berupa badge yang didesain untuk mendorong mereka kembali bermain.
Pemain yang sangat aktif dengan persentil belanja rendah.
  • Berikan bonus khusus untuk mendorong mereka mengajak temannya menginstal dan memainkan game Anda. Pendekatan ini akan meningkatkan kenikmatan bermain game untuk merekrut pemain baru.
Pemain dengan jumlah pengeluaran tinggi yang menunjukkan tanda kejenuhan dan mulai jarang bermain.
  • Berikan bonus khusus untuk menarik kembali minat mereka, misalnya dengan menawarkan senjata atau perlengkapan berdurasi singkat yang bernilai tinggi, atau diskon.
  • Saat pemain login kembali, tampilkan video yang mengarahkannya ke fitur komunitas, seperti serangan klan, yang mendorong interaksi lebih sering dan lebih lama.
Pemain dengan probabilitas belanja sangat tinggi atau sangat rendah.
  • Kemungkinan tidak berbelanja: Berikan opsi untuk menonton video iklan. Tampilkan item yang telah diturunkan harganya yang dapat dibeli.
  • Kemungkinan akan berbelanja: Arahkan mereka ke toko dalam game lebih awal, dan berikan promosi khusus untuk mendorong mereka melakukan pembelian.