Statistik Game adalah statistik kumulatif tentang game Anda yang dapat dilihat pemain di profil Gamer mereka. Statistik ini memungkinkan pemain memantau progres sepanjang waktu, melihat momen penting, dan membandingkannya dengan pemain lain, serta mendukung fitur Google Play seperti Misi, Tantangan Sosial, dan lainnya di masa mendatang.
Statistik game harus:
- Tidak memerlukan pembelian (Misalnya, membeli permata), yaitu tidak boleh diperbarui sebagai akibat dari pembelian IAP apa pun.
- Tidak memerlukan menonton iklan, yaitu tidak boleh diperbarui sebagai akibat dari menonton iklan.
- Tidak menggunakan game secara umum (Misalnya, membuka game; menggunakan setelan).
- Tidak menyertakan Data Pengguna yang Bersifat Pribadi dan Sensitif, sebagaimana ditentukan dalam Kebijakan Play, termasuk ID pengguna, sandi, lokasi presisi, atau data kesehatan, atau konten apa pun yang ofensif, tidak sopan, vulgar, berisi kekerasan, atau menyebarkan kebencian.
- Tersedia untuk semua pengguna (Misalnya, bukan tindakan khusus tim atau hanya tersedia untuk pengguna dengan level tertentu atau terbatas pada liveops dengan batas waktu, dll.)
Gambar menunjukkan Statistik Game di Profil Gamer di tab Anda. Antarmuka pengguna (UI) di tab Anda ini hanya tersedia untuk tujuan pengujian. UI Statistik Game akan tersedia pada September 2026.
Jenis agregasi
Jenis agregasi memberi tahu Google Play cara menghitung statistik dari nilai per peristiwa yang Anda kirim:
- SUM: Gunakan untuk statistik kumulatif (seperti total koin yang dikumpulkan, total kerusakan yang ditimbulkan). Game harus mengirimkan jumlah diskret yang diperoleh selama setiap instance peristiwa.
- COUNT: Gunakan untuk statistik yang menunjukkan jumlah kemunculan suatu peristiwa (seperti game yang dimainkan, game yang dimenangkan). Game harus mengirim instance kemunculan peristiwa diskret.
- MAX: Gunakan hanya untuk pencapaian puncak yang terjadi sekali (seperti skor tertinggi dalam satu sesi, streak kombo maksimum, atau damage pertandingan tunggal tertinggi). Jangan gunakan MAX sebagai solusi untuk menampilkan total sepanjang waktu dari nilai berjalan yang telah dihitung sebelumnya.
Persyaratan penerapan penting untuk statistik berulang
- Kirim nilai per peristiwa: Untuk setiap peristiwa, kirim hanya apa yang terjadi dalam peristiwa tersebut, seperti koin yang dikumpulkan dalam satu sesi. Kemudian, tetapkan jenis agregasi, seperti SUM atau COUNT, dalam konfigurasi statistik Anda. Hal ini memastikan bahwa statistik berulang dapat digunakan kembali di seluruh mekanisme interaksi dan memungkinkan Google Play menciptakan pengalaman pemain yang tepat.
- Jangan kirim total sepanjang waktu: Misalnya, jangan lacak total koin yang pernah dikumpulkan pemain di klien atau server game Anda dan kirim total tersebut dengan agregasi MAX. Statistik tersebut akan terus ditampilkan di UI Profil Gamer, tetapi Google Play tidak akan dapat menggunakannya untuk mendukung fitur yang memberikan reward seperti liga, misi, dan sprint untuk meningkatkan pengalaman pemain dan mendorong dampak bagi game Anda.
Untuk mengetahui petunjuk dan contoh pemodelan peristiwa yang benar, lihat Peristiwa Pemain dan Mengonfigurasi statistik.
Langkah-langkah integrasi
Kirim data menggunakan Game Stats API sebagai peristiwa pemain untuk statistik berulang
dan peristiwa yang telah ditentukan progressUpdate untuk statistik progres. Anda juga
perlu mengonfigurasi logika untuk menghitung statistik yang akan muncul di Profil
gamer dan informasi tampilannya.
Peristiwa Pemain mewakili momen dalam game, penyelesaian game loop, atau pencapaian progres yang berbeda.
Peristiwa pemain ditentukan dan dimodelkan sebagai berikut:
- Peristiwa direpresentasikan oleh tindakan tertentu yang dilakukan oleh pemain, seperti menyelesaikan pertandingan, menyelesaikan lari, membuka peti, atau menyimpan progres di suatu area.
- Setiap tindakan menghasilkan hasil tertentu atau memiliki karakteristik tertentu yang menentukan tindakan tersebut. Peristiwa ini dimodelkan sebagai properti peristiwa yang memberikan konteks tentang peristiwa dan hasil spesifiknya (misalnya, jenis pertandingan, koin yang dikumpulkan selama pertandingan tersebut, hasil pertandingan, atau jumlah headshot).
Integrasi ini terdiri dari langkah-langkah berikut:
- Menyatakan skema data mentah: Tentukan peristiwa pemain menggunakan upload CSV di Konsol Play. Lihat Membuat acara.
- Integrasikan dengan Statistik Game API: Kirim data pemain mentah dalam format yang dideklarasikan untuk peristiwa pemain dan peristiwa
progressUpdate.- Kirim semua peristiwa yang ditentukan menggunakan integrasi sisi klien atau sisi server.
Untuk mengetahui informasi selengkapnya, lihat contoh untuk Peristiwa Pemutar dan
peristiwa
progressUpdate.
- Kirim semua peristiwa yang ditentukan menggunakan integrasi sisi klien atau sisi server.
Untuk mengetahui informasi selengkapnya, lihat contoh untuk Peristiwa Pemutar dan
peristiwa
- Upload file ZIP: Berikan 3 file CSV dan semua file gambar ikon yang
menentukan 5 statistik berulang dan 1 level progres pemain.
Untuk informasi selengkapnya, lihat Panduan file ZIP.
Sertakan detail berikut:
- File CSV untuk statistik berulang:
- ID unik untuk statistik.
- Tentukan label peristiwa yang akan digunakan untuk penghitungan statistik. Anda tidak dapat menggunakan label peristiwa
progressUpdatedi sini.- Tentukan label properti yang akan digunakan untuk penghitungan statistik. Properti ini harus merupakan properti dari peristiwa yang ditentukan.
- Tentukan jenis agregasi (SUM, MAX, MIN, atau COUNT) untuk menentukan cara menghitung statistik pada label properti yang dipilih.
- Tentukan kondisi filter opsional untuk menghitung logika hanya jika kondisi terpenuhi. Tentukan properti dan label peristiwa, operator (=, <, <=, >=, atau >), dan nilai minimum.
- Sertakan tanda boolean untuk menunjukkan apakah statistik dapat digunakan untuk fitur kompetitif.
- Jika fitur dapat digunakan untuk fitur kompetitif, maka batas per jam minimum dan maksimum untuk pemain asli. Data ini akan kami gunakan untuk mengidentifikasi pemain yang mungkin melakukan penyalahgunaan saat berpartisipasi dalam fitur seperti liga dan tantangan sosial.
- Berikan nama tampilan unik untuk statistik yang dilihat pemain.
- Berikan teks unik yang menjelaskan statistik. Deskripsi ini harus memberikan detail tentang cara pemain memperolehnya dan akan ditampilkan kepada pemain di UI Profil Gamer.
- Berikan ikon unik yang mewakili statistik dengan memasukkan nama file ikon yang sama persis di file CSV.
- Berikan input opsional apakah nilai yang meningkat atau menurun baik untuk pemain. Input ini akan digunakan untuk merayakan gerakan pemain.
- Berikan satuan pengukuran opsional untuk statistik seperti km, mil, dan detik.
- File CSV untuk statistik progres pemain:
- Berikan nama tampilan unik untuk progres pemain yang dilihat pemain.
- Berikan ikon unik yang mewakili statistik.
- Berikan deskripsi untuk statistik progres.
- Berikan input opsional apakah nilai yang meningkat atau menurun
baik untuk pemain. Input ini akan digunakan untuk
merayakan pergerakan pemain hanya jika properti
currentProgressberjenis INT. - Berikan satuan pengukuran opsional untuk statistik seperti km, mil, detik.
- File CSV untuk pelokalan: Berikan nama tampilan yang dilokalkan untuk semua
statistik.
- Tambahkan satu baris untuk setiap pelokalan.
- Gunakan string nama tampilan statistik seperti yang ditambahkan di CSV sebelumnya untuk mengidentifikasi secara unik statistik yang akan ditambahkan pelokalan.
- Tentukan bahasa dari daftar kode bahasa.
- Tambahkan pelokalan untuk nama tampilan dalam bahasa yang ditentukan.
- Tambahkan pelokalan untuk deskripsi statistik dalam bahasa yang ditentukan.
- File CSV untuk statistik berulang:
Merencanakan skema
Anda dapat mengirim dua jenis data menggunakan Game Stats API: peristiwa pemain dan peristiwa yang telah ditentukan untuk statistik progres pemain.
Contoh berikut menggambarkan tampilan peristiwa pemain di berbagai jenis game:
Acara Pemain
Peristiwa Pemain ditentukan oleh momen dalam game, penyelesaian game loop, atau pencapaian progres yang berbeda.
- Tentukan peristiwa sebagai momen dalam game, penyelesaian game loop, atau
pencapaian progres tertentu:
- Penyelesaian game loop, seperti pertandingan atau lari yang telah selesai.
- Tonggak pencapaian progres, seperti progres eksplorasi area yang disimpan atau level yang telah diselesaikan.
- Karena statistik berulang harus benar-benar mewakili tindakan yang dapat diulang oleh pemain, peristiwa yang ditentukan harus dikaitkan dengan gameplay inti.
- Tambahkan properti untuk memberikan konteks tentang peristiwa dan hasilnya, seperti nomor level, jenis pertandingan, jenis senjata, jumlah senjata, headshot, koin yang dikumpulkan, hasil pertandingan, waktu putaran, atau jenis mobil.
- Kirim peristiwa dalam sesi gameplay segera setelah peristiwa tersebut terjadi. Misalnya, kirim peristiwa penyelesaian loop game segera setelah loop selesai.
Contoh
| Jenis game | Label Peristiwa | Momen dalam game / Penyelesaian Acara Progres / Penyelesaian Game Loop | Hasil | Karakteristik |
|---|---|---|---|---|
| Game teka-teki Indie dengan Progres Linear | chapter_completed | Penyelesaian peristiwa progres | T/A | Nomor Bab, Nama Bab, Jumlah percobaan, jumlah layar, jumlah gerakan, konten bab |
| screen_completed | Penyelesaian peristiwa progres | Nomor Bab, Nama Bab, Jumlah percobaan, jumlah gerakan, konten bab | ||
| Game lari tanpa akhir 3D | run_completed | Penyelesaian Game Loop | Koin yang dikumpulkan, skor | Durasi lari, koin yang dikumpulkan dari jetpack, booster yang digunakan di awal lari, papan selancar yang digunakan, magnet yang digunakan, jumper yang digunakan, jetpack yang digunakan |
| RPG Aksi Open World | areaExplorationProgress | Penyelesaian peristiwa progres | Musuh dikalahkan, ramuan dikumpulkan | Nomor area, Nama area, Persentase progres |
| questCompleted | Penyelesaian game loop | T/A | Nama misi | |
| weaponUnlocked | Momen dalam game | T/A | Nama Senjata, Level Senjata | |
| chestUnlocked | Momen dalam game | Bijih peningkatan dikumpulkan | ||
| Puzzle kasual dengan meta dekoratif | puzzleCompleted | Penyelesaian loop game / Penyelesaian peristiwa progres | Koin yang dikumpulkan, Booster yang dikumpulkan | Jumlah langkah, Hadiah Butler digunakan?, Jenis level, Nomor Level, booster warna yang digunakan, dinamit yang digunakan |
| cardsCollected | Momen dalam game | Kartu bintang 1, kartu bintang 2, kartu bintang 3, total kartu | Nomor album, Nama album | |
| Balapan Arkade | raceCompleted | Penyelesaian game loop | Rank, NOS used, race_time | Type of race, rating, car_used |
| carUpgraded | Momen dalam game | Karakteristik mobil yang diupgrade, level / nilai lama, level / nilai baru | Jenis mobil, level garasi saat ini | |
| Game Penembak Battle Royale Orang Ketiga | matchCompleted | Penyelesaian game loop | Eliminasi, Headshot, Nilai Kehormatan | Jenis pertandingan, waktu bertahan hidup |
| Simulasi Pengelolaan eSports | matchCompleted | Penyelesaian game loop | Hasil, gol dicetak, gol | Nama tim lawan, nama tim yang bermain |
| trainingCompleted | Momen dalam game | Latihan selesai, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition |
progressUpdate Peristiwa
Jika game Anda memiliki mekanisme progres utama, gunakan peristiwa ini untuk mengirim
progres pemain saat ini. Peristiwa ini memiliki satu properti standar yang disebut
"currentProgress" dengan jenis INT atau STRING. Anda diharapkan mengirimkan
nilai progres pemain saat ini dalam mekanika progres utama menggunakan
properti ini. Jika Anda menggunakan peristiwa ini, properti yang telah ditetapkan "currentProgress" harus
ada dan statistik progres harus ditentukan menggunakan properti ini.
Anda dapat mengirim nilai saat ini untuk sistem progres lainnya dalam game Anda seperti
lifetime highest score atau current coin balance sebagai properti lain dari peristiwa
ini.
Karena pemain dapat membandingkan profil mereka berdasarkan progres saat ini dalam
game, penting untuk tidak ada penundaan dalam mendapatkan nilai progres saat ini
setelah integrasi pertama. Untuk menampilkan progres saat ini yang akurat kepada pemain, Anda harus mengirim peristiwa progressUpdate di awal setiap sesi game serta setiap kali ada update pada progres saat ini.
Contoh
| Jenis game | Properti currentProgress dari peristiwa `progressUpdate` |
|---|---|
| Game Teka-Teki Progresi Linear | Nomor Bab atau Nomor Level Saat Ini |
| 3D Endless Runner | Skor Tertinggi, Saldo Booster Saat Ini |
| Puzzle Kasual | Nomor Level Saat Ini, Jumlah Kemenangan pada Percobaan Pertama, Jumlah Area yang Diselesaikan, Jumlah Koleksi yang Diselesaikan |
| Balapan Arkade | Nomor Level Saat Ini, Saldo Mata Uang |
| RPG Aksi Open World | Peringkat Karakter Saat Ini, nomor Level Saat Ini |
| Third Person Shooter | Nomor Level Saat Ini |
| Simulasi Esports | Nomor Level Manajer, nomor Level Klub |
Mengonfigurasi statistik Anda
Anda harus mengonfigurasi statistik berulang dan progres dengan menentukan logika komputasi dan menampilkan informasi tentang setiap statistik. Contoh statistik berulang dari berbagai Genre Game disertakan di bawah. Statistik berulang biasanya merupakan statistik yang diperbarui berulang kali untuk pemain mana pun di beberapa (3-4) sesi game dan dikaitkan dengan game loop inti.
Untuk mempelajari kapan harus menggunakan SUM, COUNT, atau MAX, lihat Memilih jenis agregasi yang tepat.
| Nama Game | Nama tampilan statistik game | Properti Acara | Logika penghitungan [aggregation] | Filter |
|---|---|---|---|---|
| 3D Endless Runner | Operasi selesai | Properti apa pun dari peristiwa run_completed | Jumlah | Semua nilai [tanpa filter] |
| Koin yang dikumpulkan | Properti coins_collected dari peristiwa run_completed | Sum | T/A | |
| Kunci Dikumpulkan | Properti keys_collected dari peristiwa run_completed | Sum | T/A | |
| Skor Lari Tertinggi | Properti skor dari peristiwa run_completed | Maks | T/A | |
| Operasi koin tinggi selesai | Properti coins_collected dari peristiwa run_completed | Jumlah | Value > 5000 | |
| Game Teka-Teki Progresi Linear | Segmen selesai | Properti apa pun dari peristiwa chapter_completed | Jumlah | Semua nilai [tanpa filter] |
| Layar selesai | Properti apa pun dari peristiwa screen_completed | Jumlah | Semua nilai [tanpa filter] | |
| Bab yang diselesaikan pada percobaan pertama | Properti num_try dari peristiwa chapter_completed | Jumlah | Num_try = 1 | |
| Layar yang diselesaikan pada percobaan pertama | Properti num_try dari peristiwa screen_completed | Jumlah | Num_try = 1 | |
| RPG Aksi Open World | Quest selesai | Properti apa pun dari peristiwa quest_completed | Jumlah | Semua nilai [tanpa filter] |
| Area yang Dijelajahi | Properti perc_progress dari peristiwa area_exploration_progress | Jumlah | Value = 100 | |
| Pedang terbuka | Properti weapon_type dari peristiwa weapon_unlocked | Jumlah | Value = "sword" | |
| Musuh dikalahkan | Properti enemies_defeated dari peristiwa area_exploration_progress | Sum | T/A | |
| Ramuan Penyembuh Dikumpulkan | Properti enhancement_ores dari peristiwa chest_unlocked | Sum | T/A | |
| Puzzle Kasual | Level selesai | Properti apa pun dari peristiwa level_completed | Jumlah | Semua nilai [tanpa filter] |
| Level yang diselesaikan pada percobaan pertama | Properti num_try dari peristiwa level_completed | Jumlah | Value = 1 | |
| Booster Warna yang Digunakan | Properti Color_booster_used dari peristiwa level_completed | Sum | T/A | |
| Booster Bom yang Digunakan | Properti bomb_booster_used dari peristiwa level_completed | Sum | T/A | |
| Kartu yang dikumpulkan | Properti total_cards dari peristiwa cards_collected | Sum | T/A | |
| Balapan Arkade | Menang | Properti peringkat dari peristiwa race_completed | Jumlah | Value = 1 |
| Balapan tercepat | properti race_time dari peristiwa race_completed | Min | T/A | |
| NOS digunakan | Properti NOS_used dari peristiwa race_completed | Sum | T/A | |
| Balapan yang diselesaikan dengan Mustang | Properti car_type dari peristiwa race_completed | Jumlah | Value = "Mustang" | |
| Upgrade mobil | Properti apa pun dari peristiwa car_upgraded | Jumlah | Semua nilai [tanpa filter] | |
| Game Penembak Battle Royale Orang Ketiga | Pertandingan yang Dimenangkan | Properti apa pun dari peristiwa match_completed | Jumlah | Match_result = TRUE |
| Total eliminasi | Properti eliminasi dari peristiwa match_completed | Sum | T/A | |
| Waktu bertahan hidup tertinggi | Properti survival_time dari peristiwa match_completed | Maks | T/A | |
| Total headshot | Properti headshot dari peristiwa match_completed | Sum | T/A | |
| Total Nilai Skill | Properti skill_value dari peristiwa match_completed | Sum | T/A | |
| Simulasi Pengelolaan eSports | Pertandingan yang Dimenangkan | Properti hasil dari peristiwa match_completed | Jumlah | Result = "Won" |
| Total Gol yang dicetak | Properti goals_scored dari peristiwa match_completed | Sum | T/A | |
| Pertandingan sulit yang dimenangkan | Properti hasil dari peristiwa hard_match_completed | Jumlah | Result = "Won" | |
| Kemenangan dengan selisih gol tertinggi | Properti goal_difference dari peristiwa match_completed | Maks | Result = "Won" | |
| Total latihan pelatihan | Properti Drills_done dari peristiwa training_completed | Sum | T/A | |
| Total pelatihan yang diselesaikan | Properti apa pun dari peristiwa training_completed | Jumlah | T/A |
Detail integrasi
Bagian ini menunjukkan cara membuat peristiwa dan mengirimkannya dalam integrasi sisi klien dan sisi server.
Kapan Anda harus mengirim data
Peristiwa Pemain mewakili tindakan dalam game yang terkait dengan penyelesaian game loop atau momen tertentu dalam game. Kirim peristiwa ini segera setelah terjadi. Misalnya, kirimkan peristiwa penyelesaian loop game segera setelah loop selesai.
Peristiwa progressUpdate mewakili tingkat progres pemain saat ini.
Data untuk statistik progres harus dikirim menggunakan peristiwa ini dalam situasi berikut:
- Setiap kali ada update pada progres saat ini, segera kirim nilai terbaru
- Setiap kali pemain meluncurkan game untuk memastikan keberadaan statistik ini bagi pemain setiap saat.
Jalur integrasi
Ada dua jalur integrasi, yaitu klien dan server ke server.
Integrasi server ke server
Endpoint API publik memungkinkan Anda mengirim peristiwa dalam payload permintaan menggunakan konfigurasi berikut:
Permintaan HTTP
POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:
batchRecordEvents
Parameter jalur
| Parameter | Jenis data | Deskripsi |
|---|---|---|
| playerId | String | ID PGS pemain. |
Otorisasi dan Autentikasi
Panggilan API server ke server mengikuti panduan standar Akses sisi server ke Layanan
game Play menggunakan OAuth 2.0. Permintaan harus menyertakan token Bearer yang diizinkan dengan cakupan https://www.googleapis.com/auth/games.
Peristiwa: Isi Permintaan
API backend memiliki batas validasi struktural yang ketat:
- Ukuran batch: Maksimum 30 peristiwa per
BatchRecordEventsRequest. - Jumlah properti: Maksimum 25 properti kustom per
PlayerGameEvent. - Batas panjang: Nama peristiwa (maks. 100 karakter), kunci properti (maks. 100 karakter), dan nilai string properti (maks. 1.024 karakter).
- ID Peristiwa: Harus berupa string UUID 36 karakter yang valid.
- Coba lagi dan penyimpanan dalam cache: Hindari menyimpan dalam cache atau mengumpulkan peristiwa berlebihan secara lokal jika API gagal, karena percobaan ulang batch yang melebihi 30 peristiwa akan ditolak. Selalu bagi percobaan ulang menjadi beberapa bagian untuk mematuhi batas ukuran batch.
BatchRecordEventsRequest
Lihat BatchRecordEventsRequest.
{ "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" }
Peristiwa progressUpdate: Isi Permintaan
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") }
Isi Respons
Jika berhasil, menampilkan status HTTP 200 OK dengan objek JSON kosong.
Contoh Isi Permintaan
Peristiwa: 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 } } } ] }
Peristiwa progressUpdate
{ "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 } } ] }
Implementasi klien
Untuk mempelajari penerapan klien Statistik Game untuk platform Anda, lihat referensi berikut:
Pencapaian
| Tanggal | Integrasi Statistik Game API | Konfigurasi Statistik Game |
| September 2026 | T/A | Pemain mulai melihat statistik game di profil Gamer mereka. |