Bu kılavuzda, Google Play Games Hizmetleri tarafından sağlanan etkinlik API'lerini kullanarak oyun analizi için oyuncu oyun oynama verilerinin nasıl toplanacağı açıklanmaktadır. API'leri com.google.android.gms.games.event ve com.google.android.gms.games paketlerinde bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız etkinlikler ve oyun kavramları ile ilgili bilgileri incelemeniz faydalı olabilir.
Etkinlik API'lerini kullanarak kod yazmaya başlamadan önce:
Google Play Console'da oyununuzun etkinliklerini tanımlayın.
Oturum açma kontrol listesindeki önerileri uygulayın.
Events Client'ı edinme
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.
Etkinlik gönderme
Oyununuzla ilgili bir etkinlik gerçekleştiğinde Play Games Hizmetleri'ni bilgilendirmek için 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ı olan incrementAmount ile EventsClient.increment() işlevini çağırın.
eventId, Google Play Console'da etkinliği ilk tanımladığınızda Play Games Hizmetleri tarafından oluşturulur ve oyununuzdaki bu etkinliği benzersiz şekilde tanımlamak için kullanılır.incrementAmountgirişini kullanarak oyuncunun oyuna özgü bir hedefi tamamlama yolundaki nicel ilerlemesini belirtebilirsiniz. Örneğin, oyununuzun izlemek istediği etkinlik "500 tane böcek gözlü canavarı yen" iseincrementAmountdeğeri, oyuncunun tek bir savaşta öldürdüğü canavar sayısı olabilir.
1 artış miktarıyla etkinlik gönderme örneğini aşağıda bulabilirsiniz:
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ında yerel olarak önbelleğe alınan verileri temizleyip temizlememesi gerektiğ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ş parametrelerinde bir etkinlik kimlikleri dizisi iletin.
Aşağıdaki snippet'te, Play Games Hizmetleri'ne oyununuzdaki tüm etkinliklerin listesini 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); } } }); }