Maç İstatistikleri

Oyun istatistikleri, oyuncuların oyuncu profillerinde görebileceği, oyununuzla ilgili kümülatif istatistiklerdir. Bu istatistikler, oyuncuların yaşam boyu ilerlemeyi takip etmesine, önemli anları görmesine ve diğer oyuncularla karşılaştırma yapmasına olanak tanır. Ayrıca gelecekte Görevler ve Sosyal Yarışmalar gibi Google Play özelliklerini destekler.

  • Satın alma işlemi gerektirmemelidir (ör. mücevher satın alma). Bu nedenle, herhangi bir UİSA satın alma işlemi sonucunda güncellenmemelidir.
  • Reklam izlenmesini gerektirmemelidir. Yani reklam izlendiğinde güncellenmemelidir.
  • Oyunun genel kullanımı olmamalıdır (örneğin, oyunu açma, ayarları kullanma).
  • Play Politikası'nda tanımlandığı şekilde, kullanıcı kimlikleri, şifreler, tam konum veya sağlık verileri ya da saldırganca, küfürlü, cinsel içerikli, şiddet içeren veya nefret söylemi barındıran içerikler de dahil olmak üzere kişisel ve hassas kullanıcı verileri içermemelidir.
  • Tüm kullanıcılar tarafından kullanılabilir olmalıdır (ör. ekibe özel bir işlem olmamalı veya yalnızca belirli bir seviyedeki kullanıcılar tarafından kullanılabilir ya da sınırlı süreli canlı etkinliklerle sınırlı olmamalıdır).

Entegrasyon adımları

Tekrarlanan istatistikler için esnek oyuncu etkinlikleri ve ilerleme durumu istatistiği için önceden tanımlanmış bir etkinlik progressUpdate olarak Oyun İstatistikleri API'sini kullanarak veri gönderin. Ayrıca, oyuncu profilinde görünecek istatistiklerin hesaplanması ve bu istatistiklerin görüntülenme bilgileriyle ilgili mantığı da yapılandırmanız gerekir.

Oyuncu etkinlikleri, farklı oyun içi anları, oyun döngüsü tamamlamalarını veya ilerleme kilometre taşlarını temsil eder.

Oyuncu etkinliği şu şekilde tanımlanır ve modellenir:

  1. Etkinlikler, oyuncunun yaptığı belirli bir işlemle (ör. maçı tamamlama, koşuyu bitirme, sandığın kilidini açma veya bir alandaki ilerlemeyi kaydetme) temsil edilir.
  2. Her işlem belirli sonuçlar doğurur veya işlemi tanımlayan belirli özelliklere sahiptir. Bunlar, etkinlik ve belirli sonuçları hakkında bağlam sağlayan etkinlik özellikleri olarak modellenir (örneğin, eşleşme türü, bu koşu sırasında toplanan jetonlar, maç sonucu veya headshot sayısı).

Entegrasyon aşağıdaki adımlardan oluşur:

  • Ham veri şemasını beyan edin: Play Console'da CSV yükleme kullanarak oyuncu etkinliklerini tanımlayın. Etkinlik oluşturma başlıklı makaleyi inceleyin.
  • Oyun İstatistikleri API'si ile entegrasyon: Esnek oyuncu etkinlikleri ve progressUpdate etkinliği için ham oyuncu verilerini belirtilen biçimde gönderin.
  • ZIP dosyası yükleme: 3 CSV dosyası ve 5 tekrarlayan istatistik ile 1 oyuncu ilerleme düzeyini tanımlayan tüm simge resim dosyalarını sağlayın. Daha fazla bilgi için ZIP dosyası yönergeleri konusunu inceleyin. Aşağıdaki ayrıntıları ekleyin:
    • Tekrarlanan istatistikler için CSV dosyası:
      • İstatistik için benzersiz bir kimlik.
      • İstatistik hesaplamasında kullanılacak etkinlik etiketini belirtin. Burada progressUpdate etkinlik etiketini kullanamazsınız.
        • İstatistik hesaplamasında kullanılacak özellik etiketini belirtin. Bu, belirtilen etkinliğin bir özelliği olmalıdır.
        • Seçili mülk etiketindeki istatistiğin nasıl hesaplanacağını belirlemek için toplama türünü (TOPLAM, MAKS, MİN veya SAY) belirtin.
        • Mantığın yalnızca koşul karşılandığında hesaplanması için isteğe bağlı bir filtre koşulu belirtin. Özelliği 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ı belirten bir Boole işareti ekleyin.
      • Özellik, rekabetçi özellikler için kullanılabiliyorsa gerçek bir oyuncu için saatlik minimum ve maksimum sınırlar. Bu bilgi, ligler ve sosyal yarışmalar gibi özelliklere katılırken kötüye kullanımda bulunabilecek oyuncuları belirlememize yardımcı olur.
      • 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 oyuncu profili kullanıcı arayüzünde oyunculara gösterilmelidir.
      • CSV dosyasına tam simge dosya adını girerek istatistiği temsil eden benzersiz bir simge sağlayın.
      • Artan veya azalan değerin oyuncu için iyi olup olmadığıyla ilgili isteğe bağlı bir giriş sağlayın. Bu giriş, oyuncu hareketlerini kutlamak için kullanılacak.
      • İstatistik için isteğe bağlı bir ölçü birimi (ör. km, mil ve saniye) sağlayın.
    • 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ığıyla ilgili isteğe bağlı bir giriş sağlayın. Bu giriş, yalnızca currentProgress özelliği INT türündeyken oyuncu hareketlerini kutlamak için kullanılır.
      • İstatistik için isteğe bağlı bir ölçü birimi (ör. km, mil, saniye) girin.
    • 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.
      • İstatistik açıklamasına belirtilen dilde yerelleştirme ekleyin.

Şemayı planlama

Oyun İstatistikleri API'sini kullanarak iki tür veri gönderebilirsiniz: oyuncu etkinlikleri ve oyuncu ilerleme durumu 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:

Oynatıcı Etkinlikleri

Oyuncu etkinlikleri, farklı oyun içi anlar, oyun döngüsü tamamlamaları veya ilerleme kilometre taşları ile tanımlanır.

  • Etkinlikleri belirli oyun içi anlar, oyun döngüsünün tamamlanması veya ilerleme aşamaları olarak tanımlayın:
    • Oyun döngüsü tamamlanmaları (ör. tamamlanan bir maç veya koşu)
    • Kaydedilen alan keşfi ilerlemesi veya tamamlanan seviye gibi ilerleme kilometre taşları.
    • Tekrar eden istatistikler, oyuncunun tekrarlanabilir işlemlerini gerçekten temsil etmelidir. Bu nedenle, tanımlanan etkinlikler temel oynanışla ilişkilendirilmelidir.
  • Etkinlik ve sonuçları hakkında bağlam bilgisi sağlamak için özellikler ekleyin. Örneğin; seviye numarası, eşleme türü, silah türü, silah sayısı, kafa vuruşları, toplanan jetonlar, maç sonucu, tur süresi veya araba türü.
  • Oyun oturumu içindeki etkinlikleri gerçekleşir gerçekleşmez 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ğini Tamamlama / Oyun Döngüsünü Tamamlama Sonuç Özellikleri
Doğrusal ilerleme içeren bağımsız bulmaca oyunu chapter_completed İlerleme etkinliğinin tamamlanması Yok Bölüm numarası, bölüm adı, deneme sayısı, ekran sayısı, hareket sayısı, bölüm içeriği
screen_completed İlerleme etkinliğinin tamamlanması Bölüm numarası, bölüm adı, deneme sayısı, hamle sayısı, bölüm içeriği
3D Endless runner run_completed Oyun Döngüsünün Tamamlanması Toplanan altınlar, puan Koşu süresi, jetpack'ten toplanan para, koşu başlangıcında kullanılan güçlendirici, kullanılan sörf tahtaları, kullanılan mıknatıslar, kullanılan zıplama aracı, kullanılan jetpack
Açık dünya aksiyon RYO areaExplorationProgress İlerleme etkinliğinin tamamlanması Yenilen düşmanlar, toplanan iksirler Alan numarası, alan adı, ilerleme yüzdesi
questCompleted Oyun döngüsünü tamamlama Yok Görev adı
weaponUnlocked Oyun içi an Yok Silah Adı, Silah Seviyesi
chestUnlocked Oyun içi an Geliştirme cevheri toplandı
Süslemeli meta öğeleri içeren rahat bulmaca puzzleCompleted Oyun döngüsünü tamamlama / İlerleme etkinliğini tamamlama Toplanan para 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ış raceCompleted Oyun döngüsünü tamamlama Sıra, kullanılan NOS, yarış_süresi Yarış türü, puan, kullanılan_araba
carUpgraded Oyun içi an Yükseltilen araç özelliği, eski seviye / değer, yeni seviye / değer Aracın türü, mevcut garaj seviyesi
Üçüncü şahıs battle royale nişancı oyunu matchCompleted Oyun döngüsünü tamamlama Eleme, Vesikalık Fotoğraf, Onur Değeri Eşleşme türü, hayatta kalma süresi
E-Spor Yönetimi Simülasyonu matchCompleted Oyun döngüsünü tamamlama Sonuç, atılan gol sayısı, goller Rakip takım adı, oynayan takım adı
trainingCompleted Oyun içi an Drills done, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition

progressUpdate Etkinlik

Oyununuzda birincil ilerleme mekanizması varsa oyuncunun mevcut ilerleme durumunu göndermek için bu etkinliği kullanın. Etkinliğin, INT veya STRING türünde "currentProgress" adlı önceden tanımlanmış bir özelliği vardır. Bu özelliği kullanarak, birincil ilerleme mekanizmasındaki oyuncu ilerlemesinin mevcut değerini göndermeniz beklenir. Bu etkinliği kullanıyorsanız önceden tanımlanmış "currentProgress" özelliği mevcut olmalı ve bu özellik kullanılarak bir ilerleme durumu tanımlanmalıdır.

Oyununuzdaki diğer ilerleme sistemleri için geçerli değeri (ö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 alınmasında gecikme olmaması önemlidir. Oyunculara doğru mevcut ilerleme durumunu 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 İlerleme Bulmaca Oyunu Mevcut Bölüm Numarası veya Seviye Numarası
3d Endless Runner En yüksek puan, mevcut güçlendirici bakiyesi
Basit Bulmaca Mevcut seviye numarası, İlk Denemede Kazanma sayısı, Tamamlanan Alan sayısı, Tamamlanan Koleksiyon sayısı
Arcade Yarış Mevcut seviye numarası, para birimi bakiyesi
Açık dünya aksiyon RYO Mevcut Karakter Sırası, Mevcut Seviye numarası
Üçüncü Şahıs Nişancı Oyunu Geçerli seviye numarası
E-spor Simülasyonu Yönetici düzeyi numarası, kulüp düzeyi numarası

İstatistiklerinizi yapılandırma

Her istatistikle ilgili hesaplama mantığını ve görüntüleme bilgilerini tanımlayarak tekrarlanan ve ilerleme istatistiklerinizi yapılandırmanız gerekir. Farklı oyun türlerindeki tekrarlanan istatistiklere dair örnekler aşağıda verilmiştir. Tekrarlayan istatistikler genellikle çok az (3-4) oyun oturumunda herhangi bir oyuncu için tekrar tekrar güncellenen ve ana oyun döngüsüyle ilişkili olan istatistiklerdir.

Oyun Adı Oyun istatistiği görünen adı Etkinlik özelliği Hesaplama mantığı [aggregation] Filtrele
3D Endless Runner Çalıştırmalar tamamlandı run_completed etkinliğinin herhangi bir özelliği Sayı Tüm değerler [filtre yok]
Toplanan jetonlar run_completed etkinliğinin coins_collected özelliği Toplam Yok
Toplanan Anahtarlar Keys_collected özelliği, event run_completed Toplam Yok
En Yüksek Sayı Koşusu 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 > 5000
Doğrusal İlerleme Bulmaca Oyunu Tamamlanan bölümler chapter_completed etkinliğinin herhangi bir özelliği Sayı Tüm değerler [filtre yok]
Tamamlanan ekran sayısı 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 Num_try özelliği, screen_completed etkinliği Sayı Num_try = 1
Açık dünya aksiyon RYO Tamamlanan görevler event_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
Kılıçların kilidi açıldı Weapon_unlocked etkinliğinin weapon_type özelliği Sayı Değer = "sword"
Yenilen düşman sayısı event_area_exploration_progress etkinliğinin enemies_defeated özelliği Toplam Yok
Toplanan Sağlık İksirleri chest_unlocked etkinliğinin enhancement_ores özelliği Toplam Yok
Basit Bulmaca Tamamlanan seviye sayısı event_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üçlendiriciler Etkinlik düzeyinde level_completed özelliğinin Color_booster_used özelliği Toplam Yok
Kullanılan Bomba Güçlendiriciler level_completed etkinliğinin Bomb_booster_used özelliği Toplam Yok
Toplanan kartlar event_cards_collected etkinliğinin total_cards özelliği Toplam Yok
Arcade Yarış Kazanılan yarışlar Etkinliğin rank özelliği race_completed Sayı Değer = 1
En hızlı yarış Etkinlik race_completed öğesinin race_time özelliği Min. Yok
NOS kullanıldı NOS_used özelliği (race_completed etkinliği) Toplam Yok
Mustang ile tamamlanan yarışlar Etkinlik race_completed'in car_type özelliği Sayı Değer = "Mustang"
Araba yükseltmeleri event_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 event_match_completed etkinliğinin herhangi bir özelliği Sayı Match_result = TRUE
Toplam eleme sayısı Eliminations property of the event match_completed Toplam Yok
En uzun hayatta kalma süresi event_match_completed etkinliğinin survival_time özelliği Maks. Yok
Toplam yakın çekim sayısı Etkinlik eşleşmesinin vesikalık fotoğrafları (match_completed) Toplam Yok
Toplam Beceri Değeri event_match_completed etkinliğinin skill_value özelliği Toplam Yok
E-Spor Yönetimi Simülasyonu Kazanılan maçlar Etkinlik match_completed'in sonuç özelliği Sayı Sonuç = "Won"
Toplam gol sayısı event_match_completed etkinliğinin goals_scored özelliği Toplam Yok
Kazanılan zor maçlar hard_match_completed etkinliğinin sonuç özelliği Sayı Sonuç = "Won"
En yüksek gol farkıyla kazanma event_match_completed etkinliğinin goal_difference özelliği Maks. Sonuç = "Won"
Toplam antrenman Etkinlik eğitim_tamamlandı özelliğinin drills_done özelliği Toplam Yok
Tamamlanan toplam eğitim sayısı event eğitim_tamamlandı etkinliğinin herhangi bir özelliği Sayı Yok

Entegrasyon ayrıntıları

API uç noktaları ve SDK, erken geri bildirim için kullanılabilir ve Ağustos 2026'dan itibaren Genel Kullanıma (GA) sunulacaktır. Zaman çizelgesi başlıklı makaleyi inceleyin.

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şir gerçekleşmez gönderin. Örneğin, döngü tamamlandığı anda oyun döngüsü tamamlama etkinliğini gönderin.

progressUpdate Event, oyuncunun mevcut ilerleme düzeyini gösterir. İlerleme durumu istatistiği verileri, aşağıdaki durumlarda bu etkinlik kullanılarak gönderilmelidir:

  1. Mevcut ilerleme durumu güncellendiğinde en son değeri hemen gönderin.
  2. Oyuncunun bu istatistiğe her zaman sahip 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:

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 kullanılarak Play Games Hizmetleri'ne sunucu tarafı erişimi ile ilgili standart yönergeleri izler. İstekler, https://www.googleapis.com/auth/games kapsamıyla yetkilendirilmiş bir Bearer jetonu içermelidir.

Esnek Etkinlikler: İstek Metni

Arka uç API'sinde katı yapısal doğrulama sınırları vardır:

  • Grup boyutu: BatchRecordEventsRequest başına en fazla 30 etkinlik.
  • Mülk sayısı: 25 özel mülk (maksimum)PlayerGameEvent.
  • Uzunluk sınırları: Etkinlik adı (en fazla 100 karakter), özellik anahtarları (en fazla 100 karakter) ve özellik dizesi değerleri (en fazla 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 etkinlik önbelleğe almaktan veya biriktirmekten kaçının. 30 etkinliği aşan toplu yeniden denemeler reddedilir. Toplu işlem boyutu sınırına uymak için yeniden denemeleri her zaman 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 event: Request Body

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

Başarılı olursa boş bir JSON nesnesiyle HTTP 200 OK durumu döndürülür.

Örnek İstek Metni

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 istatistikleri istemci uygulaması hakkında bilgi edinmek için aşağıdaki kaynaklara göz atın:

Aşamalar

Tarih Oyun İstatistikleri API Entegrasyonu Oyun istatistikleri yapılandırması
Eylül 2026 Yok
  • Oyuncular, oyuncu profillerinde oyun istatistiklerini görmeye başlar.
  • Test hesapları için taslak istatistikleri yapılandırmasını test edin.