Google ile Giriş API'sinin desteğinin sonlandırılmasının ardından, 2026'da Games v1 SDK'sını kaldırıyoruz. Şubat 2025'ten sonra games v1 SDK'sıyla yeni entegre edilen oyunları Google Play'de yayınlayamayacaksınız. Bunun yerine games v2 SDK'sını kullanmanızı öneririz.
Önceki Games v1 entegrasyonlarına sahip mevcut uygulamalar birkaç yıl daha çalışmaya devam edecek olsa da
Haziran 2025'ten itibaren
v2'ye geçiş yapmanız
önerilir.
Bu kılavuz, Play Games Hizmetleri v1 SDK'sının kullanımıyla ilgilidir. En son SDK sürümü hakkında bilgi için v2 belgelerine bakın.
Bu kılavuzda, Google Play Games Hizmetleri tarafından sağlanan etkinlik API'lerini kullanarak oyun analizleri 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
içinde bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız etkinliklerle ilgili oyun kavramlarını incelemeniz faydalı olabilir.
Etkinlik API'lerini kullanarak kod yazmaya başlamadan önce:
- Google Play Console'da oyununuzla ilgili etkinlikleri 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, Games.getEventsClient()
yöntemini çağırıp etkinliği ve mevcut oyuncu için GoogleSignInAccount
değerini ileterek yapabilirsiniz. Oyuncu hesabı bilgilerini nasıl alacağınızı öğrenmek için Android oyunlarında oturum açma başlıklı makaleyi inceleyin.
Etkinlik gönderme
Oyununuza, oyununuzla ilgili önemli bir etkinlik gerçekleştiğinde Google Play Games Hizmetleri'ni bilgilendiren 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()
işlevini çağırın.
eventId
, Google Play Console'da etkinliği ilk kez tanımladığınızda Google Play Oyun Hizmetleri tarafından oluşturulur ve oyununuzda bu etkinliği benzersiz şekilde tanımlamak için kullanılır.- Oyuncunun oyuna özgü bir hedefi tamamlama yolundaki nicel ilerlemesini belirtmek için
incrementAmount
girişini kullanabilirsiniz. Örneğin, oyununuzun izlemek istediği etkinlik "500 tane kocagözlü canavarı yen" iseincrementAmount
değ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) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(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, Google Play Games Hizmetleri'nin kullanıcının cihazında 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 kimliği dizisi iletin.
Aşağıdaki snippet'te, Google Play Games Hizmetleri'ne oyununuzdaki tüm etkinliklerin listesini nasıl sorgulayabileceğiniz gösterilmektedir:
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); } } }); }