Persyaratan GameSnacks

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 elemen body.

    • 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:

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.
    • Ini mencakup semua file yang tercantum dalam files di game.json dan tidak menyertakan aset pemasaran.

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.
  • 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 dan onResume 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, dan IndexedDB.
  • 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

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.