Bu kılavuzda, Google Play oyun hizmetleri tarafından sağlanan etkinlik API'leri kullanılarak oyun analizleri için oyuncu oyun verilerinin nasıl toplanacağı gösterilmektedir. API'leri com.google.android.gms.games.event
ve com.google.android.gms.games
sayfalarında bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız etkinlik oyunu kavramlarını incelemeniz faydalı olabilir.
Etkinlikler API'lerini kullanarak kodlamaya başlamadan önce:
- Google Play Console'da oyununuzla ilgili etkinlikleri tanımlayın.
- Oturum açma kontrol listesi önerilerini uygulayın.
Etkinlikler istemcisini edinme
Etkinlik API'lerini kullanmaya başlamak için oyununuzun öncelikle bir EventsClient
nesnesi edinmesi gerekir. Bunu yapmak için Games.getEventsClient()
yöntemini çağırıp etkinliği iletebilirsiniz.
Etkinlik gönderme
Oyununuzla ilgili bir olay meydana geldiğinde Google Play oyun hizmetlerini bilgilendirmek için oyununuza kod ekleyebilirsiniz.
Bir etkinlik güncellemesi göndermek için EventsClient.increment()
değerini eventId
değeriyle ve 0 veya daha büyük bir tam sayı incrementAmount
ile arayın.
eventId
, Google Play oyun hizmetlerinde ilk olarak etkinliği Google Play Console'da tanımladığınızda oluşturulur ve oyununuzda bu etkinliği benzersiz şekilde tanımlamak için kullanılır.incrementAmount
girişini, oyuncunun oyuna özgü bazı hedefleri tamamlamaya ilişkin sayısal ilerlemesini belirtmek için kullanabilirsiniz. Örneğin, oyununuzun izlemek istediği etkinlik "500 böcek gözlü canavarları yen" ise oyuncunun tek bir savaşta öldürdüğü canavarların sayısıincrementAmount
değeri olabilir.
Aşağıda, 1'lik artışla bir etkinliği nasıl göndereceğinize dair bir örnek verilmiştir:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Etkinlik alma
EventsClient.load()
çağırarak Google'ın sunucularında depolanan tüm etkinlik verilerini oyununuz için alabilirsiniz. Yöntem çağrısında, Google Play oyun hizmetlerinin kullanıcının cihazındaki yerel olarak önbelleğe alınan verileri temizlemesi gerekip gerekmediğini belirtmek için bir boole değeri iletin.
Google Play Console'da tanımladığınız belirli etkinliklere ait verileri almak için EventsClient.loadByIds()
yöntemini çağırın ve giriş parametrelerinde bir dizi etkinlik kimliği iletin.
Aşağıdaki snippet'te, oyununuzla ilgili tüm etkinliklerin listesi için Google Play oyun hizmetlerini nasıl sorgulayabileceğiniz 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); } } }); }