Bu kılavuzda, Google Play Games Hizmetleri tarafından sağlanan etkinlik API'lerini kullanarak 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
üzerinde bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız etkinliklerle ilgili oyun konseptlerini incelemeniz faydalı olabilir.
Etkinlik 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.
Etkinlik istemcisini alma
Etkinlik API'lerini kullanmaya başlamak için oyununuzun önce bir EventsClient
nesnesi edinmesi gerekir. Bunu, Games.getEventsClient()
yöntemini çağırarak ve etkinliği ileterek yapabilirsiniz.
Etkinlikleri gönder
Oyununuzla ilgili bir etkinlik gerçekleştiğinde Play Games Hizmetleri'ne bildirimde bulunmak için oyununuza bir 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()
çağrısı yapın.
eventId
, etkinliği Google Play Console'da ilk kez tanımladığınızda Play Games Hizmetleri tarafından oluşturulur ve bu etkinliği oyununuzda benzersiz bir şekilde tanımlamak için kullanılır.- Oyuncunun oyuna özel bazı hedefleri tamamlamaya yönelik niceliksel ilerlemesini belirtmek için
incrementAmount
girişini kullanabilirsiniz. Örneğin, oyununuzun izlemek istediği etkinlik "Böcek gözlü 500 canavarı yenin" iseincrementAmount
değeri, oyuncunun tek bir savaşta öldürdüğü canavarların sayısı olabilir.
Aşağıda, 1'lik artış miktarıyla bir etkinliğin nasıl gönderileceğine ilişkin bir örnek verilmiştir:
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
Etkinlikleri alma
Oyununuz için Google'ın sunucularında depolanan tüm etkinlik verilerini EventsClient.load()
yöntemini çağırarak alabilirsiniz. Play Games Hizmetleri'nin, kullanıcının cihazında yerel olarak önbelleğe alınmış verileri temizlemesi gerekip gerekmediğini belirtmek için yöntem çağrısında bir boole değeri iletin.
Google Play Console'da tanımladığınız belirli etkinliklerin verilerini almak için EventsClient.loadByIds()
yöntemini çağırın ve giriş parametrelerinde bir etkinlik kimliği dizisi iletin.
Aşağıdaki snippet'te oyununuzla ilgili tüm etkinliklerin listesi için Play Oyun Hizmetleri'ni 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); } } }); }