Oyun İstatistikleri, oyuncuların kendi oyuncu profillerinde oyununuzla ilgili görebildiği kümülatif istatistiklerdir. Bu istatistikler; oyuncuların ömür boyu ilerleme durumunu takip etmesine, öne çıkan anları görmesine ve diğer oyuncularla karşılaştırma yapmasına olanak tanır. Ayrıca Görevler, Sosyal Meydan Okumalar ve gelecekte eklenecek diğer Google Play özelliklerini destekler.
Oyun istatistikleri:
- Satın alma işlemi gerektirmemelidir (ör. mücevher satın alma). Yani herhangi bir uygulama içi satın alma işlemi sonucunda güncellenmemelidir.
- Reklam izlemeyi gerektirmemelidir. Yani reklam izleme sonucunda güncellenmemelidir.
- Oyunun genel kullanımıyla ilgili olmamalıdır (ör. oyunu açma, ayarları kullanma).
- Kullanıcı kimlikleri, şifreler, tam konum veya sağlık verileri dahil olmak üzere Google Play Politikası'nda tanımlanan kişisel ve hassas kullanıcı verilerini ya da rahatsız edici, küfürlü, müstehcen, şiddet barındıran veya nefret barındıran içerikleri barındırmamalıdır.
- Tüm kullanıcılar tarafından kullanılabilir olmalıdır (ör. ekibe özel bir işlem olmamalı, yalnızca belirli bir seviyedeki kullanıcılar tarafından kullanılabilir olmamalı veya sınırlı süreli canlı operasyonlarla sınırlı olmamalıdır).
Resimde, Siz sekmesindeki oyuncu profilinde Oyun İstatistikleri gösterilmektedir. Siz sekmesindeki bu kullanıcı arayüzü (UI) yalnızca test amaçlıdır. Oyun İstatistikleri kullanıcı arayüzü Eylül 2026'da kullanıma sunulacak.
Toplama türü
Toplama türü, Google Play'e gönderdiğiniz etkinlik başına değerlerden bir istatistiğin nasıl hesaplanacağını bildirir:
- SUM: Kümülatif istatistikler (ör. toplanan toplam jeton sayısı, verilen toplam hasar) için kullanılır. Oyun, her etkinlik örneği sırasında kazanılan ayrı miktarı göndermelidir.
- COUNT: Bir etkinliğin gerçekleşme sayısını temsil eden istatistikler (ör. oynanan oyunlar, kazanılan oyunlar) için kullanılır. Oyun, ayrı etkinlik gerçekleşme örneklerini göndermelidir.
- MAX: Yalnızca tek seferlik en yüksek başarılar için kullanın (ör. tek bir koşudaki en yüksek puan, maksimum kombo serisi veya tek bir maçta verilen en yüksek hasar). Önceden hesaplanmış çalışan değerlerden yaşam boyu toplamları görüntülemek için geçici çözüm olarak MAX'i kullanmayın.
Tekrarlanan istatistikler için kritik uygulama şartı
- Etkinlik başına değerleri gönderin: Her etkinlik için yalnızca o etkinlikte gerçekleşenleri (ör. tek bir koşuda toplanan paralar) gönderin. Ardından, istatistik yapılandırmanızda SUM veya COUNT gibi bir toplama türü ayarlayın. Bu sayede, tekrarlanan istatistikler etkileşim mekanikleri genelinde yeniden kullanılabilir ve Google Play doğru oyuncu deneyimlerini oluşturabilir.
- Yaşam boyu toplamları göndermeyin: Örneğin, bir oyuncunun oyun istemcinizde veya sunucunuzda topladığı toplam jeton sayısını izleyip bu toplamı MAX toplama ile göndermeyin. Bu istatistikler Oyuncu Profili kullanıcı arayüzünde gösterilmeye devam edecek ancak Google Play, oyuncu deneyimini iyileştirmek ve oyununuzun etkisini artırmak için ligler, görevler ve sprintler gibi ödüllendirici özellikleri desteklemek amacıyla bu istatistikleri kullanamayacak.
Doğru etkinlik modellemeyle ilgili talimatlar ve örnekler için Oyuncu Etkinlikleri ve İstatistiklerinizi yapılandırma başlıklı makaleleri inceleyin.
Entegrasyon adımları
Game Stats API'yi kullanarak verileri, tekrarlanan istatistikler için oyuncu etkinlikleri ve ilerleme durumu istatistiği için önceden tanımlanmış bir etkinlik progressUpdate olarak gönderin. Ayrıca, oyuncu profilinde görünecek istatistikleri hesaplama mantığını ve bunların görüntüleme bilgilerini de yapılandırmanız gerekir.
Oyuncu etkinlikleri, farklı oyun içi anları, oyun döngüsü tamamlamalarını veya ilerleme aşamalarını temsil eder.
Oyuncu etkinliği aşağıdaki gibi tanımlanır ve modellenir:
- Etkinlik, oyuncunun gerçekleştirdiği belirli bir işlemle temsil edilir. Örneğin, bir maçı tamamlama, bir koşuyu bitirme, bir sandığın kilidini açma veya bir alandaki ilerleme durumunu kaydetme.
- Her eylem, belirli sonuçlar doğurur veya eylemi tanımlayan belirli özelliklere sahiptir. Bunlar, etkinlik ve etkinliğin belirli sonuçları (ör. maç türü, o koşu sırasında toplanan paralar, maç sonucu veya kafadan vuruş sayısı) hakkında bağlam sağlayan etkinlik özellikleri olarak modellenir.
Entegrasyon aşağıdaki adımlardan oluşur:
- Ham veri şemasını bildirme: Google Play Console'da CSV yükleyerek oyuncu etkinliklerini tanımlayın. Etkinlik oluşturma başlıklı makaleyi inceleyin.
- Oyun İstatistikleri API'si ile entegrasyon: Oyuncu etkinlikleri ve
progressUpdateetkinliği için ham oyuncu verilerini beyan edilen biçimde gönderin.- Tanımlanan tüm etkinlikleri istemci tarafı veya sunucu tarafı entegrasyonu kullanarak gönderin.
Daha fazla bilgi için Oyuncu Etkinlikleri ve
progressUpdateetkinliği ile ilgili örneklere bakın.
- Tanımlanan tüm etkinlikleri istemci tarafı veya sunucu tarafı entegrasyonu kullanarak gönderin.
Daha fazla bilgi için Oyuncu Etkinlikleri ve
- ZIP dosyası yükleme: 5 tekrarlanan istatistiği ve 1 oyuncu ilerleme seviyesini tanımlayan 3 CSV dosyası ve tüm simge resim dosyalarını sağlayın.
Daha fazla bilgi için ZIP dosyası yönergeleri konusunu inceleyin.
Aşağıdaki bilgileri ekleyin:
- Tekrarlanan istatistikler için CSV dosyası:
- İstatistiğin benzersiz kimliği.
- İstatistik hesaplaması için kullanılacak etkinlik etiketini belirtin. Burada
progressUpdateetkinlik etiketini kullanamazsınız.- İstatistik hesaplaması için kullanılacak özellik etiketini belirtin. Bu, belirtilen etkinliğin bir özelliği olmalıdır.
- Seçilen özellik etiketindeki istatistiğin nasıl hesaplanacağını belirlemek için toplama türünü (SUM, MAX, MIN veya COUNT) belirtin.
- Mantığın yalnızca koşul karşılandığında hesaplanması için isteğe bağlı bir filtre koşulu belirtin. Özellik ve etkinlik etiketini, operatörü (=, <, <=, >= veya >) ve eşik değerini tanımlayın.
- İstatistiğin rekabetçi özellikler için kullanılıp kullanılamayacağını belirtmek üzere bir boole işareti ekleyin.
- Özellik, rekabetçi özellikler için kullanılabiliyorsa gerçek bir oyuncu için minimum ve maksimum saatlik sınırlar. Bu sayede, ligler ve sosyal meydan okumalar gibi özelliklere katılırken kötüye kullanımda bulunabilecek oyuncuları tespit edebileceğiz.
- Oyuncuların göreceği istatistik için benzersiz bir görünen ad girin.
- İstatistiği açıklayan benzersiz bir metin girin. Bu açıklama, oyuncunun istatistiği nasıl kazandığıyla ilgili ayrıntıları içermeli ve oyunculara Oyuncu Profili kullanıcı arayüzünde gösterilmelidir.
- CSV dosyasına tam simge dosya adını girerek istatistiği temsil eden benzersiz bir simge ekleyin.
- Artan veya azalan değerin oyuncu için iyi olup olmadığına dair isteğe bağlı bir giriş sağlayın. Bu giriş, oyuncu hareketlerini kutlamak için kullanılacak.
- İstatistik için km, mil ve saniye gibi isteğe bağlı bir ölçü birimi girin.
- Oyuncu ilerleme durumu istatistiği için CSV dosyası:
- Oyuncuların göreceği oyuncu ilerleme durumu için benzersiz bir görünen ad girin.
- İstatistiği temsil eden benzersiz bir simge sağlayın.
- İlerleme durumu istatistiği için bir açıklama girin.
- Artan veya azalan değerin oyuncu için iyi olup olmadığına dair isteğe bağlı bir giriş sağlayın. Bu giriş, yalnızca
currentProgressözelliği INT türünde olduğunda oyuncu hareketlerini kutlamak için kullanılır. - İstatistik için isteğe bağlı bir ölçü birimi (ör. km, mil, saniye) belirtin.
- Yerelleştirme için CSV dosyası: Tüm istatistikler için yerelleştirilmiş görünen adlar sağlayın.
- Her yerelleştirme için bir satır ekleyin.
- Yerelleştirmenin eklendiği istatistiği benzersiz şekilde tanımlamak için önceki CSV'ye eklenen istatistik görünen adı dizesini kullanın.
- Dil kodları listesinden dili belirtin.
- Belirtilen dilde görünen ad için yerelleştirme ekleyin.
- Belirtilen dilde istatistik açıklaması için yerelleştirme ekleyin.
- Tekrarlanan istatistikler için CSV dosyası:
Şemayı planlama
Oyun İstatistikleri API'sini kullanarak iki tür veri gönderebilirsiniz: oyuncu etkinlikleri ve oyuncu ilerleme istatistikleri için önceden tanımlanmış bir etkinlik.
Aşağıdaki örneklerde, oyuncu etkinliklerinin çeşitli oyun türlerinde nasıl göründüğü gösterilmektedir:
Oyuncu Etkinlikleri
Oyuncu etkinlikleri; farklı oyun içi anlar, oyun döngüsü tamamlamaları veya ilerleme aşamalarıyla tanımlanır.
- Etkinlikleri belirli oyun içi anlar, oyun döngüsü tamamlamaları veya ilerleme aşamaları olarak tanımlayın:
- Tamamlanan bir maç veya koşu gibi oyun döngüsü tamamlamaları.
- Kaydedilen alan keşfi ilerleme durumu veya tamamlanan seviye gibi ilerleme aşamaları.
- Tekrarlanan istatistikler, oyuncunun tekrarlanabilir işlemlerini gerçekten temsil etmesi gerektiğinden tanımlanan etkinlikler temel oyun deneyimiyle ilişkilendirilmelidir.
- Etkinlik ve sonuçları hakkında bağlam sağlamak için özellikler ekleyin. Örneğin, seviye numarası, maç türü, silah türü, silah sayısı, kafadan vuruşlar, toplanan paralar, maç sonucu, tur süresi veya araba türü.
- Oyun oturumu içindeki etkinlikleri gerçekleştikleri anda gönderin. Örneğin, döngü tamamlandıktan hemen sonra bir oyun döngüsü tamamlama etkinliği gönderin.
Örnekler
| Oyun türü | Etkinlik Etiketi | Oyun içi an / İlerleme etkinliği tamamlama / Oyun döngüsü tamamlama | Sonuç | Özellikleri |
|---|---|---|---|---|
| Doğrusal ilerlemeli bağımsız bulmaca oyunu | chapter_completed | İlerleme etkinliği tamamlama | Yok | Bölüm numarası, bölüm adı, deneme sayısı, ekran sayısı, hamle sayısı, bölüm içeriği |
| screen_completed | İlerleme etkinliği tamamlama | Bölüm numarası, bölüm adı, deneme sayısı, hamle sayısı, bölüm içeriği | ||
| 3D sonsuz koşu oyunu | run_completed | Oyun Döngüsünü Tamamlama | Toplanan altın sayısı, puan | Koşu süresi, jetpack'ten toplanan paralar, koşu başlangıcında kullanılan güçlendirici, kullanılan sörf tahtaları, kullanılan mıknatıslar, kullanılan zıplama ayakkabıları, kullanılan jetpack |
| Açık Dünya Aksiyon RYO | areaExplorationProgress | İlerleme etkinliği tamamlama | Yenilen düşmanlar, toplanan iksirler | Alan numarası, Alan adı, İlerleme yüzdesi |
| questCompleted | Oyun döngüsünün tamamlanması | Yok | Görev adı | |
| weaponUnlocked | Oyun içi an | Yok | Silah Adı, Silah Seviyesi | |
| chestUnlocked | Oyun içi an | Geliştirme cevheri toplandı | ||
| Dekoratif meta içeren basit bulmaca | puzzleCompleted | Oyun döngüsünü tamamlama / İlerleme etkinliğini tamamlama | Toplanan jeton sayısı, Toplanan güçlendirici sayısı | Hamle sayısı, Butler'ın hediyesi kullanıldı mı?, Seviye türü, seviye numarası, kullanılan renk güçlendiriciler, kullanılan dinamitler |
| cardsCollected | Oyun içi an | 1 yıldızlı kartlar, 2 yıldızlı kartlar, 3 yıldızlı kartlar, toplam kart sayısı | Albüm numarası, Albüm adı | |
| Arcade Yarış Oyunları | raceCompleted | Oyun döngüsünün tamamlanması | Sıralama, kullanılan NOS, yarış süresi | Type of race, rating, car_used |
| carUpgraded | Oyun içi an | Yükseltilen araba özelliği, eski seviye / değer, yeni seviye / değer | Araba türü, mevcut garaj seviyesi | |
| Üçüncü şahıs Battle Royale nişancı oyunu | matchCompleted | Oyun döngüsünün tamamlanması | Eleme, Kafadan Vuruş, Onur Değeri | Maç türü, hayatta kalma süresi |
| E-spor Yönetimi Simülasyonu | matchCompleted | Oyun döngüsünün tamamlanması | Sonuç, atılan gol sayısı, goller | Rakip takım adı, oynayan takım adı |
| trainingCompleted | Oyun içi an | Tamamlanan antrenmanlar, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition |
progressUpdate Etkinlik
Oyununuzda birincil ilerleme mekaniği varsa oyuncunun mevcut ilerleme durumunu göndermek için bu etkinliği kullanın. Etkinlikte, INT veya STRING türünde "currentProgress" adlı önceden tanımlanmış bir özellik bulunur. Bu özelliği kullanarak oyuncunun birincil ilerleme mekaniğindeki mevcut ilerleme değerini göndermeniz beklenir. Bu etkinliği kullanırsanız önceden tanımlanmış "currentProgress" özelliği mevcut olmalı ve bu özellik kullanılarak bir ilerleme durumu istatistiği tanımlanmalıdır.
Oyununuzdaki diğer ilerleme sistemlerinin mevcut değerini (ör. lifetime highest score veya current coin balance) bu etkinliğin diğer özellikleri olarak gönderebilirsiniz.
Oyuncular, profillerini oyundaki mevcut ilerleme durumuna göre karşılaştırabildiğinden, ilk entegrasyondan sonra mevcut ilerleme durumu değerinin gecikme olmadan alınması önemlidir. Oyunculara mevcut ilerleme durumunu doğru şekilde göstermek için her oyun oturumunun başında ve mevcut ilerleme durumu güncellendiğinde progressUpdate etkinliğini göndermeniz gerekir.
Örnekler
| Oyun türü | `progressUpdate` etkinliğinin currentProgress özelliği |
|---|---|
| Doğrusal İlerlemeli Bulmaca Oyunu | Mevcut Bölüm Numarası veya Seviye Numarası |
| 3d Endless Runner | Yüksek puan, mevcut güçlendirici bakiyesi |
| Basit Bulmaca | Mevcut seviye numarası, ilk denemede kazanılan oyun sayısı, tamamlanan alan sayısı, tamamlanan koleksiyon sayısı |
| Arcade Yarış Oyunları | Geçerli seviye numarası, para birimi bakiyesi |
| Açık Dünya Aksiyon RYO | Mevcut Karakter Sıralaması, Mevcut Seviye numarası |
| Üçüncü Şahıs Nişancı | Geçerli seviye numarası |
| E-spor Simülasyonu | Yönetici seviyesi numarası, kulüp seviyesi numarası |
İstatistiklerinizi yapılandırma
Her istatistikle ilgili hesaplama mantığını ve görüntüleme bilgilerini tanımlayarak tekrarlayan ve ilerleme istatistiklerinizi yapılandırmanız gerekir. Farklı oyun türlerinden tekrarlayan istatistik örnekleri aşağıda verilmiştir. Tekrarlanan istatistikler, genellikle çok az sayıda (3-4) oyun oturumunda herhangi bir oyuncu için tekrar tekrar güncellenen ve temel oyun döngüsüyle ilişkili olan istatistiklerdir.
SUM, COUNT veya MAX işlevlerini ne zaman kullanacağınızı öğrenmek için Doğru toplama türünü seçme başlıklı makaleyi inceleyin.
| Oyun Adı | Oyun istatistiği görünen adı | Etkinlik Özelliği | Hesaplama mantığı [aggregation] | Filtrele |
|---|---|---|---|---|
| 3D Endless Runner | Çalıştırma tamamlandı | run_completed etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] |
| Toplanan jeton sayısı | run_completed etkinliğinin coins_collected özelliği | Toplam | Yok | |
| Toplanan Anahtar Sayısı | run_completed etkinliğinin keys_collected özelliği | Toplam | Yok | |
| En Yüksek Koşu Puanı | run_completed etkinliğinin puan özelliği | Maks. | Yok | |
| Yüksek jetonlu koşular tamamlandı | run_completed etkinliğinin coins_collected özelliği | Sayı | Değer > 5.000 | |
| Doğrusal İlerlemeli Bulmaca Oyunu | Tamamlanan bölümler | chapter_completed etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] |
| Tamamlanan ekranlar | screen_completed etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] | |
| İlk denemede tamamlanan bölümler | chapter_completed etkinliğinin num_try özelliği | Sayı | Num_try = 1 | |
| İlk denemede tamamlanan ekranlar | screen_completed etkinliğinin num_try özelliği | Sayı | Num_try = 1 | |
| Açık Dünya Aksiyon RYO | Tamamlanan görevler | quest_completed etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] |
| Keşfedilen Alanlar | area_exploration_progress etkinliğinin perc_progress özelliği | Sayı | Değer = 100 | |
| Kilidi açılan kılıçlar | weapon_unlocked etkinliğinin weapon_type özelliği | Sayı | Değer = "kılıç" | |
| Yenilen düşman sayısı | area_exploration_progress etkinliğinin Enemies_defeated özelliği | Toplam | Yok | |
| Sağlık İksiri Toplandı | chest_unlocked etkinliğinin enhancement_ores özelliği | Toplam | Yok | |
| Basit Bulmaca | Tamamlanan seviye sayısı | level_completed etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] |
| İlk denemede tamamlanan seviye sayısı | level_completed etkinliğinin num_try özelliği | Sayı | Değer = 1 | |
| Kullanılan Renk Güçlendirici Sayısı | level_completed etkinliğinin Color_booster_used özelliği | Toplam | Yok | |
| Kullanılan Bomba Güçlendirici Sayısı | level_completed etkinliğinin bomb_booster_used özelliği | Toplam | Yok | |
| Toplanan kart sayısı | cards_collected etkinliğinin total_cards özelliği | Toplam | Yok | |
| Arcade Yarış Oyunları | Kazanılan yarışlar | race_completed etkinliğinin sıralama özelliği | Sayı | Değer = 1 |
| En hızlı yarış | race_completed etkinliğinin race_time özelliği | Min. | Yok | |
| NOS kullanılıyor | race_completed etkinliğinin NOS_used özelliği | Toplam | Yok | |
| Mustang ile tamamlanan yarışlar | race_completed etkinliğinin car_type özelliği | Sayı | Değer = "Mustang" | |
| Araba yükseltmeleri | car_upgraded etkinliğinin herhangi bir özelliği | Sayı | Tüm değerler [filtre yok] | |
| Üçüncü şahıs Battle Royale nişancı oyunu | Kazanılan Maçlar | match_completed etkinliğinin herhangi bir özelliği | Sayı | Match_result = TRUE |
| Toplam eleme sayısı | match_completed etkinliğinin elemeler özelliği | Toplam | Yok | |
| En uzun hayatta kalma süresi | match_completed etkinliğinin survival_time özelliği | Maks. | Yok | |
| Toplam kafadan vuruş sayısı | match_completed etkinliğinin vesikalık fotoğraflar özelliği | Toplam | Yok | |
| Toplam Beceri Değeri | match_completed etkinliğinin skill_value özelliği | Toplam | Yok | |
| E-spor Yönetimi Simülasyonu | Kazanılan Maçlar | match_completed etkinliğinin sonuç özelliği | Sayı | Result = "Won" |
| Toplam gol sayısı | match_completed etkinliğinin goals_scored özelliği | Toplam | Yok | |
| Kazanılan zorlu maçlar | hard_match_completed etkinliğinin sonuç özelliği | Sayı | Result = "Won" | |
| En yüksek averajlı galibiyet | match_completed etkinliğinin goal_difference özelliği | Maks. | Result = "Won" | |
| Toplam antrenman sayısı | training_completed etkinliğinin drills_done özelliği | Toplam | Yok | |
| Tamamlanan toplam eğitim sayısı | training_completed etkinliğinin herhangi bir özelliği | Sayı | Yok |
Entegrasyon ayrıntıları
Bu bölümde, etkinliklerin nasıl oluşturulacağı ve hem istemci tarafı hem de sunucu tarafı entegrasyonlarında nasıl gönderileceği gösterilmektedir.
Verileri ne zaman göndermelisiniz?
Oyuncu etkinlikleri, oyun döngüsünün tamamlanması veya belirli oyun içi anlarla ilgili oyun içi işlemleri temsil eder. Bu etkinlikleri gerçekleştikleri anda gönderin. Örneğin, oyun döngüsü tamamlanır tamamlanmaz oyun döngüsü tamamlama etkinliğini gönderin.
progressUpdate Etkinliği, oyuncunun mevcut ilerleme seviyesini temsil eder.
İlerleme durumu istatistiğiyle ilgili veriler, aşağıdaki durumlarda bu etkinlik kullanılarak gönderilmelidir:
- Mevcut ilerleme durumunda bir güncelleme olduğunda en son değeri hemen gönderin.
- Oyuncunun bu istatistiğinin her zaman mevcut olmasını sağlamak için oyuncu oyunu her başlattığında.
Entegrasyon yolları
İki entegrasyon yolu vardır: istemci ve sunucudan sunucuya.
Sunucudan sunucuya entegrasyon
Herkese açık bir API uç noktası, aşağıdaki yapılandırmaları kullanarak istek yükünde etkinlik göndermenize olanak tanır:
HTTP isteği
POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:
batchRecordEvents
Yol parametreleri
| Parametre | Veri türü | Açıklama |
|---|---|---|
| playerId | Dize | Oyuncunun PGS kimliği. |
Yetkilendirme ve Kimlik Doğrulama
Sunucudan sunucuya API çağrıları, OAuth 2.0 kullanan standart Play Games Hizmetleri'ne sunucu tarafı erişim yönergelerine uygundur. İstekler, https://www.googleapis.com/auth/games kapsamıyla yetkilendirilmiş bir hamiline ait jeton içermelidir.
Events: Request Body
Arka uç API'sinin katı yapısal doğrulama sınırları vardır:
- Grup boyutu:
BatchRecordEventsRequestbaşına en fazla 30 etkinlik. - Özellik sayısı:
PlayerGameEventbaşına en fazla 25 özel özellik. - Uzunluk sınırları: Etkinlik adı (maks. 100 karakter), özellik anahtarları (maks. 100 karakter) ve özellik dizesi değerleri (maks. 1.024 karakter).
- Etkinlik kimliği: Geçerli bir 36 karakterlik UUID dizesi olmalıdır.
- Yeniden deneme ve önbelleğe alma: API başarısız olursa yerel olarak aşırı sayıda etkinliği önbelleğe almaktan veya biriktirmekten kaçının. 30 etkinliği aşan toplu yeniden denemeler reddedilir. Yeniden denemeleri her zaman toplu işlem boyutu sınırına uyacak şekilde parçalara ayırın.
BatchRecordEventsRequest
BatchRecordEventsRequest sayfasına bakın.
{ "packageName": string, "requestTime": string, "events": [ { object (PlayerGameEvent) } ] }
PlayerGameEvent
{ "eventId": string, "eventName": string, "eventProperties": { // keys (e.g., "matchId", "score") "": { object (PropertyValue) } }, "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z"). }
PropertyValue
// ONE of the following fields will be present: { // 64-bit integer formatted as a string to prevent data loss "intValue": "string", // Double-precision floating point number. "doubleValue": number, // Standard UTF-8 text string. "stringValue": "string", // Boolean value (true or false). "boolValue": boolean, // Duration in seconds suffixed with 's' (e.g., "240s" or "3.5s"). "durationValue": "string" }
progressUpdate etkinliği: İstek içeriği
BatchRecordEventsRequest
{ "packageName": string, "requestTime": string, "events": [ { object (PlayerGameEvent) } ] }
PlayerGameEvent - progressUpdate
{ "eventId": string, "eventName": "progressUpdate", "eventProperties": { "": { object (PropertyValue) // Must have at least one property "currentProgress" of type INT or STRING } }, "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z") }
Yanıt Metni
İşlem başarılı olursa boş bir JSON nesnesiyle HTTP 200 OK durumu döndürülür.
Örnek istek içeriği
Etkinlik: PlayerGameEvent
{ "packageName": "com.example.awesomegame",//Your package name "requestTime": "2026-05-09T00:44:44Z", "events": [ { "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID for deduplication and idempotency "eventName": "matchCompleted", "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-05-09T01:44:44Z"). "eventProperties": { "matchId": { "stringValue": "Match_A" }, "gameMode": { "stringValue": "Battle_B" }, "locationId": { "stringValue": "Location_XYZ" }, "playerElimination": { "intValue": 2 }, "isWinner": { "boolValue": true } } } ] }
progressUpdate etkinliği
{ "packageName": "com.example.awesomegame",//Your package name "requestTime": "2026-05-09T00:44:44Z", "events": [ { "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID "eventName": "progressUpdate", "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z"). "eventProperties": { "currentProgress": { "intValue": 52 }, //Add more properties as per your requirement } } ] }
İstemci uygulamaları
Platformunuzda Oyun İstatistikleri istemci uygulaması hakkında bilgi edinmek için aşağıdaki kaynaklara göz atın:
Aşamalar
| Tarih | Oyun İstatistikleri API Entegrasyonu | Oyun İstatistikleri yapılandırması |
| Eylül 2026 | Yok | Oyuncular, oyuncu profillerinde oyun istatistiklerini görmeye başlar. |