Dokumen ini menggunakan istilah berikut (berikut RFC 2119):
- harus dan tidak boleh — ini adalah persyaratan sulit yang harus dipatuhi oleh semua game;
- seharusnya dan tidak boleh — ini adalah rekomendasi yang tidak wajib, tetapi dapat digunakan saat memutuskan cara memberi peringkat atau memfilter game yang ditampilkan kepada pengguna. Misalnya, jika layar pengguna adalah lanskap, GameSnacks dapat memilih untuk hanya merekomendasikan game yang mendukung rasio aspek ini.
- mungkin — ini adalah saran yang tidak diperlukan dan tidak akan digunakan untuk memfilter game kecuali jika diminta secara eksplisit oleh pengguna. Misalnya, fitur mendatang dapat memungkinkan pengguna melihat daftar game yang mendukung input gamepad.
Persyaratan berikut berlaku untuk game Anda dan asetnya:
Struktur game
Game Anda diupload sebagai paket file yang menyertakan kode dan resource
runtime game itu sendiri, aset pemasaran untuk menampilkannya
dalam katalog GameSnacks, dan
file game.json
yang menyimpan metadata
yang mendeskripsikan game dan menghitung semua resource dalam paket.
game.json
File konfigurasi yang berisi metadata untuk game.
- Game Anda harus menyertakan
file
game.json
yang berisi semua kolom wajib. - File ini harus ditempatkan di direktori utama game.
titik entri HTML
Dokumen HTML yang memuat game Anda.
- Titik entri Anda harus berupa file HTML yang valid.
File ini harus menyertakan maksimal satu elemen
head
dan satu elemenbody
.- Kedua elemen, jika ada, harus memiliki tag awal dan akhir.
Konten di luar elemen dan atribut pada elemen tersebut akan diabaikan.
Daripada menetapkan atribut pada elemen
body
secara langsung, Anda dapat menggunakan:onload
: Peristiwa pemuatanWindow
style
: Gaya CSS
Files
Setiap file dalam paket, termasuk game dan aset pemasaran terkaitnya, harus sesuai dengan hal berikut:
- Setiap file harus berukuran kurang dari 10 MiB.
- File hanya boleh direferensikan menggunakan jalur relatif.
- Jalur harus hanya menggunakan
/
sebagai pemisah direktori. - Nama file harus hanya menggunakan karakter yang tidak dicadangkan (RFC 3986).
- Nama file dan semua jalur harus ditulis dalam huruf kecil.
Ukuran game
Ukuran game adalah ukuran total semua kode dan resource yang didownload ke perangkat pengguna.
- Ukuran game tidak boleh lebih dari 100 MiB.
Persyaratan teknis
Game Anda harus mematuhi persyaratan teknis berikut.
SDK GameSnacks
- Game Anda harus diintegrasikan dengan Developer SDK GameSnacks, termasuk semua antarmuka yang diperlukan.
- Game Anda tidak boleh langsung memuat API iklan apa pun (misalnya memasukkan tag iklan seperti adsbygoogle.js).
- GameSnacks akan memuat semua layanan iklan yang diperlukan untuk Anda.
- Lihat persyaratan monetisasi untuk mengetahui informasi selengkapnya tentang mendukung iklan dalam game Anda.
Kompatibilitas browser
- Game Anda harus menggunakan Canvas API atau WebGL untuk dirender.
- Game Anda harus berjalan dengan benar di dua versi utama terbaru
browser berikut:
- Chrome di Android, iOS, Windows, dan macOS
- Safari di iOS dan macOS
- Firefox di Android dan Windows
- Edge di Windows
- Game Anda harus berjalan dengan benar dalam tampilan web pada versi terbaru dari dua rilis utama Android dan iOS terakhir:
- WebView di Android
- WKWebView di iOS
- Game Anda harus diuji menggunakan berbagai perender web mandiri dan tersemat lainnya jika memungkinkan.
Kemampuan perangkat minimum
Game Anda harus berjalan dengan baik di perangkat kelas bawah. Sebagai panduan, berikut adalah indikasi kemampuan perangkat minimum yang diperlukan untuk game GameSnacks.
Game Anda harus berjalan pada kecepatan 30 fps atau lebih tinggi di perangkat apa pun dengan spesifikasi berikut atau lebih baik:
- CPU: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737, atau yang serupa
- RAM: 2 GiB
- GPU: Arm Mali-T720 MP1, Qualcomm Adreno 308, atau yang serupa
Contoh ponsel yang cocok dengan spesifikasi ini antara lain JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core, dan Motorola Moto E4
Ukuran download awal
Ukuran download awal adalah jumlah data yang akan didownload ke klien untuk memulai game.
- Download awal harus berukuran kurang dari 15 MiB.
- Download awal harus berukuran kurang dari 5 MiB.
Persyaratan fungsional
Game Anda harus mematuhi persyaratan fungsional berikut.
Waktu pemuatan
Waktu pemuatan adalah waktu yang dibutuhkan untuk pertama kali menjalankan kode dan memulai game.
- Game Anda harus menampilkan layar pemuatan atau bersifat interaktif dalam waktu kurang dari 1 detik pada koneksi apa pun setidaknya 10 Mbps.
- Game Anda harus dapat dimainkan dalam waktu kurang dari 15 detik pada koneksi minimal 10 Mbps.
Error
- Game Anda tidak boleh menyebabkan error yang dapat direproduksi secara konsisten.
- Game Anda tidak boleh menyebabkan error yang dapat direproduksi secara konsisten di aplikasi atau situs yang menyematkannya.
Rasio aspek
GameSnacks akan membuat bingkai untuk merender game Anda. Ukuran dan rasio aspek frame ini akan bervariasi bergantung pada platform distribusi, perangkat, dan keberadaan iklan yang ditempatkan di sekitar game. Frame ini dapat mengubah ukuran jika, misalnya, pengguna mengubah ukuran jendela browser mereka.
- Game Anda harus menggunakan semua area yang tersedia dalam frame untuk konten interaktif–tanpa padding atau pengisi tambahan.
- Game Anda harus mendukung rasio aspek potret 9:16.
- Game Anda harus mendukung rasio aspek lanskap 16:9.
- Game Anda harus mendukung rasio aspek persegi 1:1.
- Idealnya, game Anda harus responsif dan mendukung berbagai rasio aspek potret, lanskap, dan persegi.
- Saat ukuran frame berubah, game Anda harus segera mengubah ukuran untuk
mengikuti persyaratan ini.
- Game Anda seharusnya bertransisi dengan lancar ke ukuran baru.
- Game Anda tidak boleh mengunci orientasi browser.
Interaksi game
- Game Anda harus sepenuhnya dapat dimainkan menggunakan input sentuh.
- Game Anda harus sepenuhnya dapat dimainkan menggunakan input mouse.
- Game Anda harus dapat dimainkan sepenuhnya menggunakan input keyboard.
- Game Anda mungkin dapat dimainkan sepenuhnya menggunakan input gamepad.
- Semua elemen UI yang ditampilkan dalam game Anda harus diterapkan dan berfungsi dengan benar.
- Game Anda tidak boleh menyertakan kontrol yang dinonaktifkan. Jika suatu fitur tidak
tersedia, game tersebut harus dihapus sepenuhnya dari UI.
- Hal ini termasuk perintah reward; hanya render dialog reward jika
callback
beforeReward
untuk jeda iklan tersebut dipanggil.
- Hal ini termasuk perintah reward; hanya render dialog reward jika
callback
- Game Anda tidak boleh menampilkan perintah berbagi dalam game.
- Game Anda tidak boleh menampilkan UI atau link dalam game yang mengarahkan pengguna ke game, situs, atau konten eksternal lainnya.
- Game Anda harus berkomunikasi dengan jelas kepada pengguna saat mereka telah menyelesaikan level terakhir atau menyelesaikan game.
- Game Anda tidak boleh menggunakan kata seperti "beli" atau "membeli" yang dapat disalahartikan sebagai fitur pembelian dalam aplikasi yang tidak didukung untuk game GameSnacks.
- Jika game Anda menyertakan respons haptik, pengguna harus dapat menonaktifkannya.
Startup game
Game Anda harus berkoordinasi dengan benar dengan runtime GameSnacks saat startup.
Antarmuka Game
GameSnacks menyediakan fungsi untuk memberi sinyal
status pemuatan game Anda, termasuk:
firstFrameReady
saat Anda siap menggambar ke layar untuk pertama kalinya, dan
ready
saat pengguna dapat mulai berinteraksi dengan game Anda.
- Game Anda harus memanggil
firstFrameReady
saat frame pertama game siap dirender. - Game Anda harus memanggil
ready
saat siap untuk interaksi pengguna. - Game Anda tidak boleh memanggil
ready
saat masih ada elemen non-interaktif yang ditampilkan, seperti layar pembuka atau layar pemuatan.
Kontrol pembisuan suara dan penanganan suara
Game Anda harus mematuhi kontrol suara platform GameSnacks.
- Game Anda tidak boleh menampilkan tombol bisukan secara keseluruhan dan sebaiknya mengandalkan kontrol penonaktifan platform GameSnacks untuk hal ini.
- Game Anda harus terintegrasi dengan Antarmuka audio
dan harus mematuhi
metode
audio.isEnabled
. - Game Anda mungkin memiliki kontrol audio terperinci yang terpisah dalam game, seperti untuk musik latar belakang atau efek suara, tetapi harus tetap mengikuti persyaratan ini.
Jeda dan lanjutkan
Game Anda harus mendukung opsi dijeda dan dilanjutkan.
- Game Anda harus terintegrasi dengan metode Antarmuka game
onPause
danonResume
untuk menjeda dan melanjutkan gameplay. - Game Anda tidak boleh menggunakan Page Visibility API web atau API web serupa.
- Game Anda harus berkomunikasi dengan jelas kepada pengguna jika dijeda.
- Game Anda harus menyimpan progres pengguna saat dijeda.
Penanganan data
Hanya gunakan API penyimpanan GameSnacks untuk menangani data.
- Game Anda hanya boleh menggunakan antarmuka Storage untuk menyimpan data game.
- Game Anda tidak boleh menggunakan bentuk penyimpanan lain termasuk
cookie,
localStorage
,sessionStorage
, danIndexedDB
. - Game Anda tidak boleh mengumpulkan data pengguna apa pun.
- Game Anda tidak boleh melakukan panggilan atau permintaan data eksternal ke atau dari server mana pun menggunakan protokol apa pun.
- Game Anda tidak boleh menampilkan perjanjian pengguna, kebijakan privasi, atau pesan peraturan atau pengumpulan data lainnya.
Progres penyimpanan
Simpan progres pengguna dan dapat memulihkan progresnya saat mereka kembali ke game.
- Game Anda harus menggunakan antarmuka Storage untuk menyimpan progres saat pengguna telah membuat progres material, seperti menyelesaikan level.
- Ukuran total game tersimpan harus kurang dari 3 MiB dan harus kurang dari 500 KiB.
- Game Anda harus memulihkan semua progres yang tersimpan saat game dimulai.
- Game Anda harus dapat memulihkan progres tersimpan dari versi game sebelumnya.
Skor tertinggi
Simpan skor tertinggi pengguna atau pantau progresnya menggunakan metrik yang berbeda.
- Jika game Anda memiliki skor, game Anda harus melacaknya menggunakan antarmuka antarmuka Skor.
- Jika game Anda tidak memiliki skor, Anda harus melacak metrik progres alternatif seperti jumlah level yang diselesaikan.
Konten game
Persyaratan berikut berlaku untuk konten game Anda:
UI Game
- Game Anda harus dirender dengan jelas di berbagai resolusi layar. Misalnya, elemen UI tidak boleh buram, pecah, atau melebar.
- Game Anda tidak boleh menggunakan aset raster resolusi rendah yang tampak buram saat diskalakan ke layar yang lebih besar.
- Game Anda tidak boleh menggunakan ikon yang dapat tertukar dengan ikon di panel tindakan GameSnacks.
- Game Anda tidak boleh menyertakan tombol keluar atau keluar dalam game. URL ini akan ditangani oleh aplikasi atau situs yang menyematkan game Anda.
Pelokalan dan aksesibilitas
- Game Anda harus mendukung bahasa Inggris.
- Game Anda harus berupaya sebaik mungkin agar dapat diakses. Sebaiknya Usahakan untuk memenuhi Panduan Aksesibilitas Konten Web (WCAG), level AA.
- Teks dalam game Anda harus dapat dibaca di seluruh perangkat dan ukuran layar. Lihat WCAG 2.2 §1.4.3.
Konten untuk anak-anak
- Game Anda tidak boleh menargetkan anak-anak secara khusus. Lihat Menentukan apakah konten Anda "Dibuat untuk Anak-Anak" atau tidak untuk mengetahui informasi selengkapnya.
Hak dan izin
- Game Anda harus telah sepenuhnya mendapatkan hak atas kekayaan intelektual pihak ketiga.
- Game Anda tidak boleh melanggar hak merek dagang atau hak dagang pihak ketiga mana pun.
- Game Anda harus memiliki semua hak musik yang diperlukan.
- Game Anda harus memiliki semua hak kepribadian yang diperlukan, termasuk nama dan kemiripan.
Di mana game saya akan ditampilkan?
Kami memublikasikan game GameSnacks di berbagai platform baik di produk Google maupun situs dan aplikasi partner GameSnacks, baik di perangkat seluler maupun desktop. Beberapa contoh tempat kami memublikasikan game GameSnacks mencakup Aplikasi Google Play Game, di perangkat Android, dan situs gamesnacks.com. Dari sinilah sebagian besar lalu lintas data kita berasal. Namun, lokasi tempat kami memublikasikan game terus berkembang dan kami selalu ingin memperluas audiens untuk game GameSnacks. Jadi, seiring waktu, kami dapat menambahkan platform Google atau partner distribusi baru. Dari waktu ke waktu, kami juga dapat menjalankan eksperimen selagi menggunakan platform distribusi baru.
Monetisasi
GameSnacks akan memonetisasi game Anda dan akan memberi Anda bagian dari pendapatan tersebut berdasarkan perjanjian lisensi developer GameSnacks.
GameSnacks dapat otomatis menempatkan iklan pada peristiwa game yang alami, seperti pre-roll, peristiwa berikutnya dan akhir level. Anda juga dapat menempatkan jeda iklan tambahan dalam game (baik interstisial maupun reward) menggunakan antarmuka Iklan GameSnacks Developer SDK.
Game yang memiliki terlalu sedikit peluang untuk monetisasi atau monetisasi yang buruk mungkin lebih jarang ditampilkan, atau tidak disetujui untuk didistribusikan. Aturan praktisnya adalah memastikan ada peluang untuk iklan setidaknya satu kali dalam satu menit. Hal ini mencakup iklan interstisial dan reward yang Anda tempatkan, serta jeda iklan yang disiapkan secara otomatis oleh GameSnacks untuk Anda.
Namun, ini tidak berarti bahwa kami akan selalu menampilkan iklan. GameSnacks akan menyeimbangkan pemuatan iklan, interaksi, dan pengalaman pengguna dengan cermat. Oleh karena itu, jangan ragu untuk membuat jeda iklan di mana saja yang cocok dengan game Anda (yaitu lebih dari sekali per menit) dan mengizinkan GameSnacks menyesuaikan rasio akhir saat iklan ditampilkan.
Persyaratan monetisasi:
Game Anda harus menawarkan pengalaman gameplay inti yang berkelanjutan dan tanpa gangguan, dengan peluang yang memadai untuk menampilkan iklan interstisial dan reward yang harus dikonfigurasi menggunakan antarmuka Iklan.
Anda tidak boleh menyertakan bentuk promosi atau monetisasi lainnya. Ini termasuk iklan dalam game, pembayaran, sponsor dan penempatan produk, dialog media sosial, dan link yang mengarahkan pengguna ke game, situs, atau konten eksternal lainnya.
Anda harus memastikan game Anda memberikan peluang yang cukup untuk menampilkan iklan sehingga Anda dan partner distribusi GameSnacks dapat menghasilkan pendapatan yang berkelanjutan. Baik secara organik karena peristiwa game normal (mis. level berikutnya) atau secara eksplisit menggunakan metode antarmuka Iklan pada momen yang tepat selama game Anda.
Saat menggunakan metode antarmuka Iklan untuk menempatkan iklan dalam game, Anda harus mematuhi semua kebijakan perilaku reward dan interstisial yang relevan. Lihat juga kumpulan praktik terbaik ini untuk tips lebih lanjut tentang cara mengonfigurasi iklan dalam game.
Jika Anda menempatkan iklan interstisial dalam game, Anda harus memastikan bahwa iklan tersebut terjadi pada jeda alami dalam gameplay. Iklan harus sesuai dengan alur game Anda. Anda tidak boleh hanya memicu interstisial di tengah periode gameplay yang berkelanjutan.
Jika mekanisme game Anda mendukungnya, Anda harus menempatkan iklan reward. Peluang reward ini harus bersifat opsional, Anda harus mendeskripsikannya dengan jelas, dan Anda tidak boleh mendorong pengguna untuk mengklik iklan. Lihat kebijakan perilaku untuk mengetahui persyaratan lengkapnya.