Android oyunları için etkinlikler

Bu kılavuzda, Google Play Games Hizmetleri tarafından sağlanan etkinlik API'lerini kullanarak oyun analizleri için oyuncu oyun oynama verilerini nasıl toplayacağınız gösterilmektedir. API'leri com.google.android.gms.games.event ve com.google.android.gms.games paketlerinde bulabilirsiniz.

Başlamadan önce

Henüz yapmadıysanız etkinlik oyun kavramlarını incelemeniz faydalı olabilir.

Etkinlik API'lerini kullanarak kod yazmaya başlamadan önce:

Etkinlikler istemcisini alma

Etkinlik API'lerini kullanmaya başlamak için oyununuzun önce bir EventsClient nesnesi alması gerekir. Bunu, PlayGames.getEventsClient() yöntemini çağırıp etkinliği ileterek yapabilirsiniz.

Etkinlikleri gönderme

Oyununuz için ilgi çekici bir etkinlik gerçekleştiğinde Play Oyun Hizmetleri'ni bilgilendirmek üzere oyununuza kod ekleyebilirsiniz.

Etkinlik güncellemesi göndermek için eventId değeri ve 0'a eşit veya 0'dan büyük bir tam sayı incrementAmount ile EventsClient.increment() işlevini çağırın.

  • eventId, etkinliği Google Play Console'da ilk kez tanımladığınızda Play Games Hizmetleri tarafından oluşturulur ve oyununuzda bu etkinliği benzersiz şekilde tanımlamak için kullanılır.

  • Oyuncuya özel bir hedefi tamamlama yolunda oyuncunun nicel ilerlemesini belirtmek için incrementAmount girişini kullanabilirsiniz. Örneğin, oyununuzun izlemek istediği etkinlik "500 böcek gözlü canavarı yen" ise incrementAmount değeri, oyuncunun tek bir savaşta öldürdüğü canavarların sayısı olabilir.

Aşağıda, artış miktarı 1 olan bir etkinliğin nasıl gönderileceğine dair bir örnek verilmiştir:

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

Etkinlikleri alma

EventsClient.load() işlevini çağırarak oyununuz için Google'ın sunucularında depolanan tüm etkinlik verilerini alabilirsiniz. Yöntem çağrısında, Play Games Hizmetleri'nin kullanıcının cihazındaki yerel olarak önbelleğe alınmış verileri temizleyip temizlemeyeceğini belirtmek için bir boole değeri iletin.

Google Play Console'da tanımladığınız belirli etkinliklerle ilgili verileri almak için EventsClient.loadByIds() işlevini çağırın ve giriş parametrelerine bir etkinlik kimlikleri dizisi gönderin.

Aşağıdaki snippet'te, oyununuzla ilgili tüm etkinliklerin listesi için Play Oyun Hizmetleri'ni nasıl sorgulayacağınız gösterilmektedir:

public void loadEvents() {
  PlayGames.getEventsClient(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);
          }
        }
      });
}