Peristiwa di Game Android

Panduan ini menunjukkan cara mengumpulkan data gameplay pemain untuk analisis game menggunakan API acara yang disediakan oleh layanan game Google Play. API ini dapat ditemukan di com.google.android.gms.games.event dan com.google.android.gms.games.

Sebelum memulai

Jika Anda belum melakukannya, sebaiknya tinjau konsep game peristiwa.

Sebelum Anda mulai membuat kode menggunakan API peristiwa:

Mendapatkan klien peristiwa

Untuk mulai menggunakan API acara, game Anda terlebih dahulu harus mendapatkan Objek EventsClient. Anda dapat melakukannya dengan memanggil Games.getEventsClient() dan meneruskan dan GoogleSignInAccount untuk pemutar saat ini. Untuk mempelajari cara melihat informasi akun pemain, Login di Game Android.

Mengirim peristiwa

Anda dapat menambahkan kode dalam game untuk memberi tahu layanan game Google Play setiap kali peristiwa menarik untuk game Anda terjadi.

Untuk mengirim pembaruan peristiwa, panggil EventsClient.increment() dengan nilai eventId dan bilangan bulat incrementAmount yang sama dengan atau lebih besar dari 0.

  • eventId dibuat oleh layanan game Google Play saat Anda pertama kali menentukan peristiwa di Konsol Google Play dan digunakan untuk mengidentifikasi peristiwa ini secara unik dalam dalam game Anda.
  • Anda dapat menggunakan input incrementAmount untuk menentukan progres kuantitatif pemain dalam menyelesaikan beberapa sasaran khusus game. Misalnya, jika peristiwa yang ingin dilacak game Anda adalah 'Defeat 500 bug-eyed monster', nilai incrementAmount dapat berupa jumlah monster yang dibunuh pemain dalam satu pertempuran.

Berikut adalah contoh cara mengirimkan peristiwa dengan kenaikan jumlah 1:

public void submitEvent(String eventId) {
  Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .increment(eventId, 1);
}

Mengambil peristiwa

Anda dapat mengambil semua data peristiwa yang disimpan di server Google untuk game Anda, dengan memanggil EventsClient.load(). Di kolom panggilan metode, meneruskan nilai boolean untuk menunjukkan apakah layanan game Google Play harus menghapus ID data yang di-cache di perangkat pengguna.

Untuk mengambil data peristiwa tertentu yang Anda tentukan di Konsol Google Play, panggil EventsClient.loadByIds() dan teruskan array ID peristiwa dalam parameter input.

Cuplikan berikut menunjukkan cara membuat kueri layanan game Google Play untuk daftar semua peristiwa untuk game Anda:

public void loadEvents() {
  Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .load(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) {
          if (task.isSuccessful()) {
            // Process all the events.
            for (Event event : task.getResult().get()) {
              Log.d(TAG, "loaded event " + event.getName());
            }
          } else {
            // Handle Error
            Exception exception = task.getException();
            int statusCode = CommonStatusCodes.DEVELOPER_ERROR;
            if (exception instanceof ApiException) {
              ApiException apiException = (ApiException) exception;
              statusCode = apiException.getStatusCode();
            }
            showError(statusCode);
          }
        }
      });
}