Ce document utilise les termes suivants (conformément au document RFC 2119):
- doit et ne doit pas : il s'agit d'exigences strictes que tous les jeux doivent respecter.
- devrait et ne devrait pas : ces recommandations ne sont pas obligatoires, mais peuvent être utilisées pour déterminer comment classer ou filtrer les jeux présentés aux utilisateurs. Par exemple, si l'écran de l'utilisateur est en mode paysage, GameSnacks peut choisir de ne recommander que des jeux compatibles avec ce format.
- peut : il s'agit de suggestions qui ne sont pas obligatoires et ne seront pas utilisées pour filtrer les jeux, sauf si l'utilisateur en fait la demande explicite. Par exemple, de futures fonctionnalités pourraient permettre à l'utilisateur d'afficher une liste de jeux compatibles avec l'entrée avec manette de jeu.
Les exigences suivantes s'appliquent à votre jeu et à ses éléments:
Structure du jeu
Votre jeu est importé sous forme de bundle de fichiers comprenant le code et les ressources d'exécution du jeu lui-même, les éléments marketing permettant de l'afficher dans le catalogue GameSnacks, ainsi qu'un fichier game.json
qui stocke les métadonnées décrivant le jeu et énumère toutes les ressources du jeu.
game.json
Fichier de configuration contenant les métadonnées du jeu.
- Votre jeu doit inclure un fichier
game.json
contenant tous les champs obligatoires. - Ce fichier doit être placé dans le répertoire racine du jeu.
Point d'entrée HTML
Document HTML qui charge votre jeu.
- Votre point d'entrée doit être un fichier HTML valide.
Ce fichier doit inclure au maximum un élément
head
et un élémentbody
.- S'ils sont présents, les deux éléments doivent avoir des balises de début et de fin.
Le contenu en dehors de ces éléments et les attributs de ces éléments seront ignorés.
Au lieu de définir directement les attributs de l'élément
body
, vous pouvez utiliser:onload
: événement de chargement deWindow
style
: style CSS
Fichiers
Tous les fichiers individuels du bundle, y compris le jeu et ses éléments marketing associés, doivent respecter les règles suivantes:
- La taille de chaque fichier doit être inférieure à 10 Mio.
- Les fichiers ne doivent être référencés qu'à l'aide de chemins d'accès relatifs.
- Les chemins doivent utiliser uniquement
/
comme séparateur de répertoire. - Les noms de fichiers ne doivent contenir que des caractères non réservés (RFC 3986).
- Les noms de fichiers et tous les chemins d'accès doivent être en minuscules.
Taille du jeu
La taille du jeu correspond à la taille totale de l'ensemble du code et des ressources téléchargés sur l'appareil de l'utilisateur.
- La taille du jeu ne doit pas dépasser 100 Mio.
Exigences techniques
Votre jeu doit respecter les exigences techniques suivantes.
SDK GameSnacks
- Votre jeu doit être intégré au SDK développeur GameSnacks, y compris toutes les interfaces requises.
- Votre jeu ne doit pas charger directement d'API d'annonces (par exemple, en injectant une balise d'annonce comme adsbygoogle.js).
- GameSnacks charge tous les services publicitaires requis pour vous.
- Consultez les Exigences de monétisation pour en savoir plus sur la prise en charge des annonces dans votre jeu.
Compatibilité du navigateur
- Votre jeu doit utiliser l'API Canvas ou WebGL pour effectuer le rendu.
- Votre jeu doit fonctionner correctement sur les deux versions majeures les plus récentes des navigateurs suivants :
- Chrome sur Android, iOS, Windows et macOS
- Safari sur iOS et macOS
- Firefox sur Android et Windows
- Edge sur Windows
- Votre jeu doit s'exécuter correctement dans les vues Web sur les dernières versions des deux dernières versions majeures d'Android et d'iOS :
- WebView sur Android
- WKWebView sur iOS
- Votre jeu devrait être testé sur un éventail aussi large que possible d'autres moteurs de rendu Web autonomes et intégrés.
Fonctionnalités minimales de l'appareil
Votre jeu doit bien fonctionner sur les appareils bas de gamme. À titre indicatif, les éléments suivants indiquent les capacités minimales requises pour les jeux GameSnacks.
Votre jeu doit fonctionner à 30 FPS ou plus sur tout appareil doté des spécifications suivantes ou supérieures:
- Processeur: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737 ou similaire
- RAM: 2 Gio
- GPU: ARM Mali-T720 MP1, Qualcomm Adreno 308 ou équivalent
Voici quelques exemples de téléphones conformes à ces spécifications : JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core et Motorola Moto E4.
Taille de téléchargement initiale
La taille de téléchargement initiale correspond à la quantité de données qui sera téléchargée sur le client pour démarrer le jeu.
- La taille du téléchargement initial doit être inférieure à 15 Mio.
- Le téléchargement initial doit être inférieur à 5 Mio.
Exigences fonctionnelles
Votre jeu doit respecter les exigences fonctionnelles suivantes.
Temps de chargement
Le temps de chargement correspond au temps nécessaire pour exécuter initialement le code et démarrer le jeu.
- Votre jeu doit afficher un écran de chargement ou être interactif en moins d'une seconde sur toute connexion d'au moins 10 Mbit/s.
- Votre jeu doit être jouable en moins de 15 secondes sur toute connexion d'au moins 10 Mbit/s.
Plantages
- Votre jeu ne doit pas provoquer de plantages reproductibles de manière régulière.
- Votre jeu ne doit pas provoquer de plantages reproductibles de manière systématique dans les applications ou les sites Web qui l'intègrent.
Proportions
GameSnacks créera un cadre dans lequel votre jeu sera affiché. La taille et le format de ce frame varient en fonction de la surface de distribution, de l'appareil et de la présence d'annonces placées autour du jeu. Ce cadre peut changer de taille si, par exemple, un utilisateur redimensionne la fenêtre de son navigateur.
- Votre jeu devrait utiliser toute la zone disponible dans le cadre pour le contenu interactif, sans marge intérieure ni élément de remplissage supplémentaires.
- Votre jeu doit être compatible avec le format portrait 9:16.
- Votre jeu doit être compatible avec le format paysage 16:9.
- Votre jeu doit être compatible avec le format carré 1:1.
- Idéalement, votre jeu devrait être responsif et accepter un large éventail de formats portrait, paysage et carré.
- Lorsque la taille du frame change, votre jeu doit immédiatement être redimensionné pour respecter ces exigences.
- La transition de votre jeu devrait fluctuer de manière fluide vers la nouvelle taille.
- Votre jeu ne doit pas verrouiller l'orientation du navigateur.
Interaction avec le jeu
- Votre jeu doit pouvoir jouer entièrement à l'aide de la saisie tactile.
- Votre jeu doit être entièrement jouable avec la souris.
- Vous devriez pouvoir jouer à votre jeu à l'aide de la saisie au clavier.
- Vous pouvez jouer entièrement à votre jeu avec une manette de jeu.
- Tous les éléments d'interface utilisateur affichés dans votre jeu doivent être implémentés et fonctionner correctement.
- Votre jeu ne doit pas inclure de commandes désactivées. Si une fonctionnalité n'est pas disponible, elle doit être entièrement supprimée de l'interface utilisateur.
- Cela inclut les invites liées aux récompenses. N'affichez une invite de récompense que si le rappel
beforeReward
pour cette coupure publicitaire est appelé.
- Cela inclut les invites liées aux récompenses. N'affichez une invite de récompense que si le rappel
- Votre jeu ne doit pas afficher d'invites de partage dans le jeu.
- Votre jeu ne doit pas afficher d'interface utilisateur ni de liens intégrés qui redirigent l'utilisateur vers des jeux, des sites ou d'autres contenus externes.
- Votre jeu doit indiquer clairement à l'utilisateur lorsqu'il termine le dernier niveau ou le jeu.
- Votre jeu ne doit pas utiliser de mots tels que "acheter" ou "acheter", qui pourraient être confondus avec des fonctionnalités d'achat via l'application non compatibles avec les jeux GameSnacks.
- Si votre jeu inclut un retour haptique, l'utilisateur doit pouvoir le désactiver.
Démarrage du jeu
Votre jeu doit se coordonner correctement avec l'exécution de GameSnacks au démarrage.
L'interface Game
de GameSnacks fournit des fonctions permettant de signaler l'état de chargement de votre jeu, y compris : firstFrameReady
lorsque vous êtes prêt à dessiner à l'écran pour la première fois et ready
lorsque l'utilisateur peut commencer à interagir avec votre jeu.
- Votre jeu doit appeler
firstFrameReady
lorsque le premier frame de votre jeu est prêt à être affiché. - Votre jeu doit appeler
ready
lorsqu'il est prêt à interagir avec l'utilisateur. - Votre jeu ne doit pas appeler
ready
tant que des éléments non interactifs sont toujours affichés, tels que des écrans de démarrage ou de chargement.
Commandes de coupure du son et gestion du son
Votre jeu doit respecter les commandes audio de la plate-forme GameSnacks.
- Votre jeu ne devrait pas afficher de bouton de coupure du son général et doit s'appuyer sur la commande de désactivation de la plate-forme GameSnacks pour cela.
- Votre jeu doit s'intégrer à l'interface audio et doit respecter la méthode
audio.isEnabled
. - Votre jeu peut disposer de commandes audio précises distinctes, par exemple pour une musique de fond ou des effets sonores, mais il doit quand même respecter ces exigences.
Mise en pause et reprise
Vous devez pouvoir mettre en pause et reprendre votre jeu.
- Votre jeu doit s'intégrer à l'interface de jeu
onPause
et aux méthodesonResume
pour suspendre et reprendre le jeu. - Votre jeu ne doit pas utiliser l'API Web Page Visibility ou des API Web similaires.
- Votre jeu doit indiquer clairement à l'utilisateur s'il est mis en pause.
- Votre jeu devrait enregistrer la progression de l'utilisateur lorsqu'il est mis en pause.
Traitement des données
Utilisez uniquement les API de stockage GameSnacks pour traiter les données.
- Votre jeu doit uniquement utiliser l'interface de stockage pour enregistrer les données de jeu.
- Votre jeu ne doit pas utiliser d'autre forme de stockage, y compris les cookies
localStorage
,sessionStorage
etIndexedDB
. - Votre jeu ne doit pas collecter de données utilisateur.
- Votre jeu ne doit pas effectuer d'appels externes ni de requêtes de données vers ou depuis un serveur, quel que soit le protocole.
- Votre jeu ne doit pas contenir d'autres contrats utilisateur, règles de confidentialité ni aucun autre message réglementaire ou concernant la collecte de données.
Enregistrement de la progression...
Enregistrer la progression de l'utilisateur et pouvoir la restaurer lorsqu'il revient au jeu.
- Votre jeu doit utiliser l'interface de stockage pour enregistrer sa progression lorsque les utilisateurs ont réalisé une progression substantielle, par exemple un niveau.
- La taille totale du jeu enregistré doit être inférieure à 3 Mio et doit être inférieure à 500 Kio.
- Votre jeu doit restaurer toute progression enregistrée au démarrage du jeu.
- Votre jeu doit pouvoir restaurer la progression enregistrée à partir des versions précédentes du jeu.
Scores élevés
Stockez le score le plus élevé de l'utilisateur ou suivez sa progression à l'aide d'une autre métrique.
- Si votre jeu présente des scores, il doit les suivre à l'aide de l'interface Score.
- Si votre jeu n'a pas de scores, vous devriez suivre une autre métrique de progression, telle que le nombre de niveaux terminés.
Contenu du jeu
Les exigences suivantes s'appliquent au contenu de votre jeu:
UI de jeu
- Votre jeu doit s'afficher clairement sur différentes résolutions d'écran. Par exemple, les éléments d'interface utilisateur ne doivent pas être flous, pixélisés ni étirés.
- Votre jeu ne devrait pas utiliser d'éléments rastérisés basse résolution qui semblent flous lorsqu'ils sont ajustés aux écrans plus grands.
- Votre jeu ne doit pas utiliser d'icônes pouvant être confondues avec celles de la barre d'action GameSnacks.
- Votre jeu ne doit pas inclure de bouton de sortie ou de sortie. Cette question sera gérée par l'application ou le site qui intègre votre jeu.
Localisation et accessibilité
- Votre jeu doit être compatible avec l'anglais.
- Votre jeu doit faire de son mieux pour être accessible. Nous vous recommandons de vous efforcer de respecter les Règles pour l'accessibilité des contenus Web (WCAG), niveau AA.
- Le texte de votre jeu doit être lisible sur tous les appareils et toutes les tailles d'écran. Voir WCAG 2.2 §1.4.3
Contenu destiné aux enfants
- Votre jeu ne doit pas cibler spécifiquement les enfants. Pour en savoir plus, consultez la section Déterminer si votre contenu est "conçu pour les enfants".
Droits et autorisations
- Votre jeu doit avoir été entièrement titulaire des droits de propriété intellectuelle de tiers.
- Votre jeu ne doit pas enfreindre les droits de marques tierces ni d'habillage commercial.
- Votre jeu doit disposer de tous les droits musicaux nécessaires.
- Votre jeu doit avoir tous les droits nécessaires sur la personnalité, y compris son nom et sa représentation.
Où mes jeux apparaîtront-ils ?
Nous publions les jeux GameSnacks sur diverses surfaces, à la fois sur les produits Google et sur les sites et applications partenaires de GameSnacks, sur mobile et sur ordinateur. Nous publions les jeux GameSnacks par exemple, comme l'application Google Play Jeux, sur les appareils Android et sur le site Web gamesnacks.com. C'est de là qu'émane une grande partie de notre trafic. Cependant, les pays dans lesquels nous publions des jeux évoluent constamment, et nous cherchons constamment à élargir l'audience des jeux GameSnacks. Il se peut donc que nous ajoutions de nouveaux partenaires de distribution ou de plates-formes Google au fil du temps. De temps en temps, nous pouvons également effectuer des tests à mesure que nous travaillons avec de nouvelles surfaces de distribution.
Monétisation
GameSnacks monétisera votre jeu et vous versera une part de ces revenus conformément au contrat de licence pour les développeurs GameSnacks.
GameSnacks peut placer automatiquement des annonces lors d'événements naturels de jeu, tels que des pré-rolls, des événements de niveau suivant et de fin de niveau. Vous pouvez également placer des coupures publicitaires supplémentaires dans votre jeu (interstitiels et avec récompense) à l'aide de l'interface Ad du SDK GameSnacks pour les développeurs.
Les jeux qui présentent trop peu d'opportunités de monétisation ou dont la monétisation est mauvaise risquent d'être présentés moins fréquemment ou de ne pas être approuvés pour la distribution. En règle générale, assurez-vous que la diffusion de votre annonce a une chance d'être diffusée au moins une fois par minute. Cela inclut à la fois les interstitiels et les annonces avec récompense que vous diffusez, ainsi que les coupures publicitaires que GameSnacks configure automatiquement pour vous.
Toutefois, cela ne signifie pas que nous diffuserons systématiquement une annonce. GameSnacks équilibrera soigneusement le volume d'annonces, l'engagement et l'expérience utilisateur. N'hésitez donc pas à créer des coupures publicitaires là où elles s'intègrent bien dans votre jeu (par exemple, plus d'une fois par minute) et laissez GameSnacks ajuster la fréquence finale de diffusion des annonces.
Exigences concernant la monétisation:
Votre jeu doit offrir une expérience de jeu principale continue et ininterrompue, avec des opportunités adéquates de diffuser des annonces interstitielles et avec récompense qui doivent être configurées à l'aide de l'interface Ad.
Vous ne devez pas inclure d'autres formes de promotion ou de monétisation. Cela inclut les annonces intégrées aux jeux, les paiements, le sponsoring et les placements de produits, les invites de réseaux sociaux et les liens qui redirigent les utilisateurs vers des jeux, des sites ou d'autres contenus externes.
Vous devez vous assurer que vos jeux offrent suffisamment d'opportunités de diffuser des annonces pour que vous et les partenaires de distribution GameSnacks puissiez générer des revenus durables. Soit en raison d'événements de jeu normaux (un niveau suivant, par exemple), soit explicitement en utilisant les méthodes de l'interface Ad à d'autres moments appropriés de votre jeu.
Lorsque vous utilisez les méthodes de l'interface Ad pour placer des annonces dans votre jeu, vous devez respecter toutes les Règles applicables aux annonces avec récompense et aux interstitiels. Consultez également cet ensemble de bonnes pratiques pour obtenir d'autres conseils sur la configuration des annonces dans les jeux.
Si vous placez des annonces interstitielles dans votre jeu, vous devez vous assurer qu'elles apparaissent lors des pauses naturelles dans le jeu. Les annonces doivent s'intégrer au flux de votre jeu. Vous ne devez pas déclencher des interstitiels au milieu d'une période de jeu continue.
Si les mécanismes de votre jeu le permettent, vous devriez insérer des annonces avec récompense. Ces opportunités de récompense doivent être facultatives. Vous devez les décrire clairement, et vous ne devez pas encourager l'utilisateur à cliquer sur des annonces. Consultez les Règles de comportement pour connaître l'ensemble des exigences.