Actions de jeu Play

Présentation

Ce document présente les actions de jeu Play pour les jeux vidéo, liste les exigences du schéma et décrit en détail le processus d'intégration pour lancer la fonctionnalité.

Présentation des actions de jeu Play

Version mobile des actions de jeu Play
Image des actions Play Jeux sur un appareil mobile
Version pour ordinateur des actions de jeu Play
Image des actions Play Jeux sur un ordinateur

Les actions de jeu pour les jeux vidéo permettent aux utilisateurs de jouer à un jeu directement depuis la page de résultats de recherche (SRP) sur ordinateur ou mobile. Les utilisateurs voient une action de jeu Play dans l'onglet "Présentation" de la page de résultats de recherche organisée (OSRP) ou dans la fiche info lorsqu'ils recherchent un jeu auquel est associée au moins une action de jeu Play. Cela fonctionne pour les versions de démonstration ou complètes des jeux disponibles sans frais, par le biais d'un abonnement ou d'un achat à la carte, et qui peuvent être diffusées en streaming depuis le cloud sur ordinateur ou mobile, ou téléchargées via des applications clientes locales sur ordinateur ou console.

Les actions de jeu Play sont alimentées par un flux qui contient les détails de votre catalogue de jeux. Le flux est un objet JSON qui contient une collection d'entités. Une entité est un objet schema.org qui représente le jeu dans votre catalogue et son lien profond associé pour diffuser le jeu (version de démonstration, essai instantané ou version complète).

Pour que Google puisse obtenir votre flux, vous devez le stocker dans un fichier et l'héberger dans un emplacement auquel Google peut accéder. Pour s'assurer que votre contenu est à jour, Google récupère régulièrement le fichier de flux depuis votre hôte.

Nous détaillerons chacune de ces exigences dans les sections suivantes.

Commencer

Comme indiqué dans la section précédente, vos responsabilités en tant que fournisseur incluent les suivantes :

  • Comprendre les informations dont vous avez besoin pour créer le flux, ses sources et sa disponibilité, ainsi que la façon dont il se retrouve dans le flux.
  • Créez un flux contenant les informations requises pour chaque entité de jeu de votre catalogue.
  • Hébergez le flux sur un serveur ou un service de stockage cloud, et autorisez Google à l'extraire régulièrement.
  • Répondez aux problèmes soulevés par Google et corrigez-les. Il peut s'agir de problèmes liés à la qualité ou à la structure des fichiers JSON eux-mêmes.
  • Maintenez le flux à jour à mesure que votre catalogue évolue.
  • Assurez-vous que la qualité du flux est maintenue après le lancement.

Examinons-les en détail.

Avant de commencer

Avant de commencer à créer le flux, nous vous suggérons de prendre le temps de comprendre les exigences concernant les métadonnées des actions de jeu Play et de rassembler toutes les informations nécessaires en un seul endroit. Avant de créer un flux, nous vous recommandons de procéder comme suit :

  • Consultez les exigences concernant les métadonnées pour l'entité VideoGame.
  • Collectez les métadonnées.
    • Examinez attentivement les propriétés obligatoires et fortement recommandées. Google utilise ces propriétés pour faire le rapprochement entre le contenu de votre flux et celui des bases de données de Google. Plus vous fournissez de métadonnées pour votre contenu, plus Google peut le faire correspondre.

Comprendre l'utilisation des termes "Œuvres" et "Éditions" dans cette documentation

  • Œuvre : concept abstrait représentant un jeu vidéo. Plus précisément, les métadonnées telles que le titre, le développeur, la description du jeu et l'éditeur sont quelques-uns des attributs d'un ouvrage.
  • Édition : version concrète du jeu vidéo. Plus précisément, les métadonnées telles que l'année de publication, le nom de la plate-forme et les liens profonds sont quelques-uns des attributs de l'édition.

Par exemple, "Shadow of the Tomb Raider" est une œuvre, mais chaque version dans laquelle il est proposé est une édition. Dans ce cas, le jeu "Shadow of the Tomb Raider" peut avoir une édition pour Stadia, une édition pour PlayStation, une édition pour l'accès anticipé sur Stadia, etc.

Cette distinction est particulièrement importante dans le flux, car cela n'est pas évident au premier abord. Il existe deux entités VideoGame :

  • VideoGame (Work) est l'entité VideoGame de "niveau supérieur" :
    • exampleOfWork est une propriété de VideoGame (Work) et spécifie une ou plusieurs instances de VideoGame (Edition).
    • Vous devez utiliser au moins une propriété exampleOfWork VideoGame (Edition) pour chaque propriété VideoGame (Work).
  • VideoGame (Edition) est l'entité VideoGame de "niveau inférieur".

N'oubliez pas qu'un ouvrage peut être proposé en plusieurs éditions. Nous vous recommandons de regrouper ces éditions dans la mesure du possible. Cette pratique aide les systèmes Google à exploiter toutes les informations pertinentes liées à un jeu vidéo et à les afficher dans la recherche.

Comprendre deux propriétés clés et leurs exigences Il est essentiel de bien les définir avant de passer à la création du flux, qui est la prochaine étape.

URL canonique (url)

Une URL canonique (url) aide Google à faire le rapprochement entre le contenu de votre catalogue et celui de ses bases de données.

"Une URL canonique est l'URL de la page considérée par Google comme la plus représentative de l'ensemble de pages en double sur votre site. Si vous avez plusieurs URL pour une même page (par exemple, example.com?dress=1234 et example.com/dresses/1234), Google en choisit une comme URL canonique." (Source : Consolider les URL en double)

Voici les conditions requises pour l'URL canonique :

  • url doit être unique.
  • url doit contenir une URL canonique fonctionnelle que Google peut explorer.

Identifiant (@id)

Un identifiant (@id) doit répondre aux exigences suivantes :

  • Unique au niveau mondial dans votre catalogue :
    • Par exemple, n'utilisez pas le même @id pour deux jeux vidéo différents.
  • Statique :
    • Vous ne pourrez plus modifier @id par la suite.
  • Sous la forme d'un identifiant de ressource uniforme (URI) :
    • Si l'identifiant local (ID) de votre contenu n'est pas au format URI, ajoutez votre domaine à l'ID pour répondre à cette exigence. Par exemple, si l'ID de votre contenu est 1234abc et votre domaine est https://example.com, @id peut devenir https://example.com/1234abc.
    • @id ne doit pas nécessairement être une URL fonctionnelle, mais doit être au format URI.
    • Le domaine utilisé dans @id (par exemple, https://example.com) doit appartenir à votre organisation.

Étant donné que le url d'une entité répond à toutes les exigences en tant qu'identifiant (c'est-à-dire qu'il est unique au niveau mondial, statique et au format URI), nous vous recommandons d'utiliser le url d'une entité comme @id lorsque cela est pertinent.

Comprendre et identifier les exigences concernant les liens profonds

Lorsqu'un utilisateur lance des actions Play Jeux sur un contenu, Google utilise le lien profond du contenu pour rediriger l'utilisateur directement vers le contenu dans votre application ou plate-forme. Tenez compte des informations suivantes :

  • Les liens profonds doivent ouvrir le contenu qu'ils ciblent sur toutes les plates-formes spécifiées. Différentes plates-formes peuvent avoir différents liens profonds. Par exemple, le lien profond qui fonctionne sur le Web pour ordinateur peut être différent de celui qui fonctionne sur le Web mobile. Pour chaque jeu, vérifiez s'il possède des liens profonds différents selon la plate-forme.
  • Les liens profonds peuvent inclure des paramètres (&) ou des balises d'ancrage (#).
  • Pour que votre contenu soit disponible sur les différentes plates-formes de Google (Recherche, Assistant et Android TV), un lien profond est obligatoire.

Étant donné que l'url d'une entité répond à toutes les exigences en tant qu'identifiant (c'est-à-dire qu'il est unique au niveau mondial, statique et au format URI), nous vous recommandons d'utiliser l'url d'une entité comme @id dans les cas où cela a du sens.

Plate-forme Description
http://schema.org/DesktopWebPlatform Plate-forme de recherche dans un navigateur Web pour ordinateur.
http://schema.org/MobileWebPlatform Plate-forme de recherche sur un navigateur Web mobile.
http://schema.org/AndroidPlatform Plate-forme de recherche dans l'application Android.
http://schema.org/AndroidTVPlatform Plate-forme Android TV sur l'application Android TV.
http://schema.org/IOSPlatform Plate-forme de recherche dans l'application iOS.

Identifiez les conditions d'accès aux jeux de votre catalogue : posez-vous les questions suivantes et assurez-vous qu'il existe un moyen d'identifier leurs réponses grâce aux métadonnées du flux.

  • Les utilisateurs doivent-ils se connecter à votre application ou plate-forme pour accéder au contenu ?
  • Les utilisateurs ont-ils besoin d'un abonnement ?
  • Les utilisateurs doivent-ils effectuer un achat pour jouer au jeu ?
  • Les conditions d'accès changent-elles au fil du temps ?
  • L'exigence d'accès dépend-elle de la position de l'appareil ?

Si vous proposez plusieurs forfaits d'abonnement que vos utilisateurs peuvent acheter, comprenez ce qu'est un commonTier et comment il s'applique à votre intégration avec Google.

Types de paywalls

Les actions de jeu Play ne sont actuellement compatibles qu'avec les types de paywall suivants :

Valeur de la catégorie Type de paywall
nologinrequired Aucun achat ni aucune connexion ne sont requis.
free L'utilisateur doit être connecté, mais n'a pas besoin d'un abonnement payant.
subscription L'utilisateur doit disposer d'un abonnement actif. L'accès est indépendant du niveau d'abonnement.
subscription L'utilisateur doit disposer d'un abonnement actif. L'accès est indépendant du niveau d'abonnement.
purchase Le contenu est disponible indéfiniment après l'achat.
rental Le contenu est disponible pendant une durée limitée après l'achat.

Ces valeurs de catégorie seront utilisées ultérieurement lors de la création du flux. Notez également que la catégorie rental du tableau précédent est totalement facultative aujourd'hui et qu'elle pourra être prise en charge dans une future amélioration du produit. Pour le moment, seules les valeurs de catégorie free, nologinrequired, subscription et purchase sont utilisées par le produit à partir du flux.

Enfin, parcourez rapidement l'exemple de flux pour vous faire une idée du résultat que vous souhaitez obtenir.

Comprendre les points ci-dessus et s'assurer qu'il existe des métadonnées pour représenter les réponses (à ces questions), ce qui est suffisant pour passer à l'étape de création du flux.

Créer un flux

Le flux Actions de jeu Play est un objet JSON qui contient une collection d'entités représentant les jeux vidéo de votre catalogue. Vous devez fournir un flux sous forme d'un ou plusieurs fichiers, et l'héberger sur un serveur ou un service de stockage cloud pour que Google puisse l'extraire régulièrement.

Respecter les exigences relatives à la taille, à la quantité et au format des fichiers de flux

Vous devez respecter les exigences suivantes :

  • Tous les fichiers de flux doivent utiliser l'extension de nom de fichier .json.
  • Assurez-vous que les noms de fichiers ne contiennent pas d'espace.
  • Ne chiffrez pas votre fichier de flux.
  • Encodez votre fichier de flux en UTF-8 (vérifiez le paramètre de votre éditeur de fichier). image d'encodage
  • Si votre fichier de flux non compressé dépasse 1 Go, divisez-le en plusieurs fichiers.
    • Tant que la taille du fichier est inférieure à 1 Go, il n'y a aucune limite au nombre d'entités que vous pouvez inclure dans un même fichier ni au nombre de fichiers que vous pouvez envoyer à Google dans votre flux.
  • Assurez-vous que le fichier est encodé sans BOM, conformément à la spécification JSON. Pour vérifier cela sur un OS Linux, hexdump file.json | head -n 1 ne doit pas commencer par BBEF à l'adresse 0x00.

Respecter les exigences relatives au contenu des flux

Vous devez respecter les exigences de contenu suivantes :

  • Le flux ne doit pas contenir d'entités obsolètes. Les entités obsolètes sont des entités dont le champ availabilityEnds du lien profond est défini sur une date passée ou les entités qui ne sont plus disponibles sur votre site.
  • Tous les liens profonds (comme urlTemplate) et toutes les URL (comme url) que vous incluez dans un flux doivent être des URL de production. N'utilisez pas d'URL qui n'en sont qu'au stade de contrôle qualité, de développement ou autre.
  • Toutes les URL, comme url, doivent être canoniques, comme indiqué dans la section précédente.
  • Chaque entité d'un flux doit spécifier les propriétés suivantes :
    • Un identifiant unique : @id
    • Une URL unique : url
    • Un lien profond unique : urlTemplate

Lorsque vous créez le flux, nous vous recommandons de suivre les conseils suivants :

  • Comprenez en détail la structure du flux.
  • Commencez avec un exemple de flux.
    • Sélectionnez jusqu'à cinq entités représentatives de votre catalogue. Choisissez des entités dont la structure est raisonnablement complexe, mais qui restent typiques d'une entité du catalogue, puis créez le flux correspondant.
  • Envoyez-le à votre représentant Google désigné pour une validation rapide.
  • Une fois que vous avez résolu toutes les erreurs dans votre flux d'exemple, développez le flux pour inclure toutes les entités de votre catalogue.
    • Pour vérifier que votre flux inclut toutes les entités de votre catalogue, comparez le nombre d'entités de votre flux avec le nombre d'articles de votre catalogue.

Héberger votre flux

Lorsque votre fichier de flux est prêt, hébergez-le à un emplacement sécurisé. Nous explorons ensuite régulièrement le flux pour nous assurer que votre contenu est à jour. Nous acceptons les méthodes d'hébergement suivantes :

Méthode d'hébergement Assistance pour l'authentification
Google Cloud Storage Accorder l'autorisation Lecteur des objets Storage à 088794101-100000002-account@partnercontent.gserviceaccount.com
HTTPS Vous devez partager votre nom d'utilisateur et votre mot de passe, ou vos certificats client HTTP.
SFTP Vous devez partager un mot de passe, une clé + une expression ou les deux.
AWS S3 Vous devez partager l'ID de clé et la clé d'accès pour le bucket AWS S3.

Une fois que vous avez importé votre fichier de flux dans un système hôte, contactez l'équipe Play Game Actions pour qu'elle l'examine.

Envoyer votre flux pour examen

Une fois votre fichier de flux hébergé, contactez votre interlocuteur Play Game Actions pour lancer le processus d'examen du flux. Veillez à inclure les informations suivantes dans votre communication :

  • Présentation/Description : indiquez-nous si vous partagez un exemple de flux ou un flux de production complet. Si vous partagez un exemple de flux, indiquez-nous la date de disponibilité prévue du flux de production, si possible.
  • Emplacement d'hébergement du fichier : URL du fichier de flux.
  • Authentification de l'hôte : incluez les identifiants d'authentification pour permettre à Google de récupérer le fichier de flux à partir de votre hôte, le cas échéant. Pour en savoir plus, consultez Héberger votre flux.
  • Compte de test : compte de test permettant à l'équipe Play Game Actions d'accéder aux liens profonds de votre application ou plate-forme pour effectuer des tests. Si votre flux contient des entités sur plusieurs plates-formes, fournissez un compte de test pour chacune d'elles.
  • Icons : fournissez les cinq icônes suivantes. Ces icônes sont utilisées à côté des actions de jeu Play dans la recherche.
Catégorie Dimensions (px) Taille du fichier Consignes
Actions de jeu sur la recherche/Cast/Autres
16x16 La taille du fichier de toutes les icônes, à l'exception de celle de 112 x 112 px, ne doit pas dépasser 1 Ko.

La taille du fichier de l'icône de 112 x 112 px ne doit pas dépasser 3 Ko.

Les cinq dimensions d'icônes sont obligatoires.

Les images doivent respecter les consignes suivantes :

  • Format de fichier PNG.
  • Forme ronde.
  • un arrière-plan transparent ;
  • Assurez-vous que les images sont anticrénelées et qu'elles ne sont ni déformées, ni pixélisées.
20 x 20
40 x 40
44x44
112 x 112

Échantillon

Exemples d'icônes

Fonctionnement de la validation des flux

La validation des flux se déroule en deux étapes :

  • Validation de la structure :
    • Il s'agit de la première phase des vérifications de validation.
    • Google fournit des commentaires sur la structure des fichiers JSON. Le fichier JSON est-il bien formé ? Le flux contient-il toutes les propriétés obligatoires et fortement recommandées ? Les liens profonds fournis et annotés respectent-ils nos exigences concernant les flux ?
    • Cette phase nécessite plusieurs échanges avec Google et se poursuit jusqu'à ce que tous les commentaires soient pris en compte.
  • Réconciliation des métadonnées :
    • Cette phase ne commence qu'une fois que le flux a passé la phase de validation de la structure. C'est à ce moment-là que Google lance le processus de rapprochement avec le Knowledge Graph de Google.
    • Au cours de cette phase, nous vous fournissons des commentaires sur les métadonnées contenues dans le flux. Tous les problèmes doivent être résolus pour que le lancement soit réussi. Par exemple, les commentaires de cette phase peuvent vous demander de corriger le titre d'un jeu ou sa date de sortie.
    • Cette phase nécessite également plusieurs échanges avec Google et se poursuit jusqu'à ce que tous les commentaires soient pris en compte.

Critères d'acceptation des flux

Un flux est considéré comme acceptable pour le lancement lorsque tous les problèmes bloquants sont résolus et que Google a certifié que la qualité des métadonnées est conforme aux exigences de lancement.

Mettre à jour le flux si nécessaire

Nous vous recommandons de mettre à jour votre flux quotidiennement, bien que cela dépende fondamentalement de la fréquence de modification de votre catalogue. Tenez compte des conditions et conseils suivants :

  • La recherche Google ne suit pas les mises à jour en temps réel.
  • La recherche Google explore votre flux une fois par jour et indexe généralement le contenu dans un délai de deux jours (lors du lancement).
  • En cas de changement prévisible de la disponibilité d'un lien profond, utilisez availabilityStarts et availabilityEnds pour définir les dates précises.
  • Si l'entité n'est plus disponible dans votre catalogue, supprimez-la complètement du flux.

Référence

Présentation de la structure des flux

Le flux Actions de jeux Play présente la structure suivante :

Diagramme du flux Play Jeux

Enveloppe de flux de données

Une enveloppe de flux de données est l'objet de premier niveau dans le flux Actions de jeu Play. L'objet contient un tableau d'objets balisage de contenu (entités VideoGame (Work)) qui représentent tous les jeux vidéo de votre catalogue.

Propriété Type attendu Description
@context URL Obligatoire. Défini sur http://schema.org
@type Texte Obligatoire. Définissez cet élément sur DataFeed.
dateModified Date et heure Obligatoire. Date et heure de la dernière modification du flux, au format ISO 8601 (y compris le fuseau horaire).
dataFeedElement Thing Obligatoire. Entités de votre catalogue de jeux.

Modèle

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {  },
    {  },
    {  },
    ...
  ]
}
    

Objets de balisage de contenu

Un objet de balisage de contenu représente une seule entité de votre catalogue : VideoGame (Work). L'objet contient l'identifiant et l'URL canonique du contenu, et permet de le décrire à l'aide de métadonnées. L'objet de balisage de contenu pour VideoGame (Work) comporte une propriété appelée exampleOfWork pour l'associer à l'objet VideoGame(Edition). Cette édition de jeu vidéo peut comporter un tableau d'objets de balisage Action, qui permet d'associer le contenu à plusieurs objets de balisage Action. Par exemple, le contenu peut avoir un objet de balisage Action différent pour chaque région.

Objets de balisage d'action

Un objet de balisage d'action décrit le lien profond qui redirige les utilisateurs vers le jeu et le niveau d'accès requis pour le jeu. L'objet est une propriété (potentialAction) d'un objet de balisage de contenu. Pour les actions de jeu Play, utilisez un objet de spécification d'accès aux actions pour spécifier les restrictions d'accès.

Propriété Type attendu Description
@type Texte Obligatoire. Toujours défini sur PlayGameAction.
gameAvailabilityType GameAvailabilityEnumeration ou Text Obligatoire. Indique le type de disponibilité du contenu du jeu associé à cette action, par exemple s'il s'agit d'une version complète ou d'une version démo. Les valeurs acceptées sont DEMO et FULL.
additionalType Texte Obligatoire. Indique le type d'action de jeu associé à ce jeu. Valeurs acceptées :
  • StreamingPlayAction : indique qu'un jeu est disponible en streaming en ligne.
  • DownloadPlayAction : indique qu'un jeu est disponible au téléchargement.
target EntryPoint Obligatoire. Un objet cible qui fournit le mappage des liens profonds vers différentes plates-formes Google.
target.@type Texte Obligatoire. Toujours défini sur EntryPoint.
target.urlTemplate URL Obligatoire. Un lien profond qui redirige les utilisateurs vers votre application ou plate-forme et lance la lecture du jeu.
target.inLanguage Texte Facultatif. Langue d'origine de la série au format BCP 47.
target.actionPlatform Texte Obligatoire. Les plates-formes mappées à urlTemplate. Les actions de jeu Play sont compatibles avec les valeurs suivantes :
  • http://schema.org/DesktopWebPlatform
  • http://schema.org/MobileWebPlatform
  • http://schema.org/AndroidPlatform
  • http://schema.org/AndroidTVPlatform
  • http://schema.org/IOSPlatform

Pour connaître les exigences, consultez Types de plates-formes.

actionAccessibilityRequirement ActionAccessSpecification Obligatoire. Un objet de spécification d'accès à l'action qui décrit les exigences d'accès au contenu. Pour en savoir plus, consultez Propriétés de la spécification d'accès aux actions.

Modèle

"potentialAction": {
  "@type": "PlayGameAction",
  "target": [
    {  },
    {  }
  ],
  "actionAccessibilityRequirement": [
    {  },
    {  }
  ]
}
    

Cible

Un objet cible fournit le mappage d'un lien profond vers différentes plates-formes Google. L'objet est une propriété (target) d'un objet Action markup. La propriété urlTemplate capture le lien profond et actionPlatform capture les plates-formes compatibles avec le lien profond.

Exemple

"target": [
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/AndroidTVPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/mobile/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/MobileWebPlatform"
    ]
  }
]
    

Spécification d'accès aux actions

Un objet de spécification d'accès à une action décrit les exigences d'accès au contenu en fonction de la région et de la période. L'objet est une propriété, actionAccessibilityRequirement, d'un objet balise d'action.

Exemple de cible avec deux liens profonds

"target": [
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/AndroidTVPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/mobile/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/MobileWebPlatform"
    ]
  }
]
    

Spécification d'accès aux actions

Un objet de spécification d'accès à une action décrit les exigences d'accès au contenu en fonction de la région et de la période. L'objet est une propriété, actionAccessibilityRequirement, d'un objet de balisage Action.

Propriété Type attendu Description
actionAccessibilityRequirement.@type Texte Obligatoire. Toujours défini sur ActionAccessSpecification.
actionAccessibilityRequirement.category Texte Obligatoire. Exigence d'accès au contenu. Pour connaître les valeurs acceptées et obtenir plus d'informations, consultez Type de paywall.

Si une entité représente un groupe de contenus, vous devez définir la catégorie sur l'exigence d'accès la moins restrictive de ses contenus. Par exemple, si un jeu est disponible sans frais à l'aide de nologinrequired et via un abonnement, définissez la catégorie sur nologinrequired.

actionAccessibilityRequirement.availabilityStarts Date Obligatoire. Date après laquelle l'action est disponible, au format ISO 8601 (y compris le fuseau horaire). La date peut être définie dans le futur.
  • Doit être égale ou supérieure à 72 heures après availabilityStarts.
  • Si le contenu est toujours disponible après sa publication, définissez cette date sur 20 ans à compter de la date actuelle.

Nous exigeons que l'entité correspondante soit fournie dans le flux au moins sept jours avant sa date availabilityStarts. Cela augmente les chances que le jeu s'affiche à temps sur les surfaces Google.

actionAccessibilityRequirement.availabilityEnds Date Obligatoire. Date après laquelle l'action ne sera plus disponible, au format ISO 8601 (y compris le fuseau horaire). La date peut être définie dans le futur.
  • Doit être égale ou supérieure à 72 heures après availabilityStarts.
  • Si le contenu est toujours disponible après sa publication, définissez cette date sur 20 ans à compter de la date actuelle.

Nous exigeons que toute modification de la date availabilityEnds soit apportée au flux au moins sept jours avant la date availabilityEnds. Cela augmente les chances que le jeu cesse d'apparaître sur les surfaces Google à la date du availabilityEnds.

actionAccessibilityRequirement.eligibleRegion Country, City, State, GeoShape ou Text Obligatoire. Régions dans lesquelles le contenu est disponible. Si le contenu est disponible dans le monde entier, utilisez la chaîne spéciale EARTH. Pour comprendre ce qui est requis, consultez Propriétés GeoShape.
actionAccessibilityRequirement.ineligibleRegion Country, City, State, GeoShape ou Text Obligatoire, si applicable. Régions dans lesquelles le contenu est soumis à restriction. Vous n'avez pas besoin de fournir cette propriété si le contenu est disponible partout dans eligibleRegion.

Pour comprendre ce qui est requis, consultez Propriétés GeoShape.

actionAccessibilityRequirement.requiresSubscription MediaSubscription Obligatoire, si applicable. Informations sur l'abonnement dont les utilisateurs ont besoin pour accéder au contenu. Pour en savoir plus, consultez Propriétés des abonnements aux contenus multimédias.
  • Indiquez cette propriété si category est défini sur subscription.
actionAccessibilityRequirement.expectsAcceptanceOf Offre Obligatoire si le contenu nécessite un achat. Détails de l'offre associée au contenu. Fournissez les informations sur les prix pour les cas suivants :
  • Contenu à achat unique (rental ou purchase)
  • Contenus par abonnement nécessitant un achat supplémentaire de la part des abonnés (subscription)

Si le prix est de 0,00, supprimez complètement l'objet "Offer" et définissez actionAccessibilityRequirement.category sur free. Pour en savoir plus, consultez Propriétés des offres.

Spécification des abonnements aux contenus multimédias

Un objet d'abonnement à un contenu multimédia décrit les détails de l'abonnement requis pour le contenu. L'objet est une propriété, requiresSubscription, d'un objet de spécification d'accès à l'action.

Important : Cette étape est obligatoire si actionAccessibilityRequirement.category est défini sur subscription et que votre offre d'abonnement inclut plusieurs forfaits ou niveaux, ou est compatible avec les modules complémentaires. Ne renseignez pas cette option si votre abonnement est à un seul niveau et donne accès à tous les contenus de votre catalogue.
Propriété Type attendu Description
requiresSubscription.@type Texte Obligatoire. Toujours défini sur MediaSubscription.
requiresSubscription.@id URL Obligatoire. Identifiant unique de l'abonnement. Si le contenu est accessible avec différents abonnements, chacun d'eux doit avoir un identifiant unique.
requiresSubscription.name Texte Obligatoire. Nom de l'abonnement. Remarques :
  • Si le contenu est accessible avec différents abonnements, ce nom doit correspondre à celui de votre système d'authentification des utilisateurs. Par exemple, si un utilisateur peut accéder au contenu en fonction de l'abonnement appelé "Package 1", mais que le système d'authentification utilise le nom "PKG1", utilisez "PKG1".
requiresSubscription.sameAs URL Facultatif. Page décrivant l'abonnement.
requiresSubscription.identifier Texte Obligatoire si category est défini sur subscription et commonTier est défini sur "false". Chaîne unique pour cet abonnement, qui représente l'accès à un groupe de contenus dans votre catalogue multimédia.
  • Google vous recommande d'utiliser la syntaxe suivante pour identifier : nom de domaine + deux-points (:) + niveau d'accès au contenu. Exemples : example.com:basic, example.com:premium, example.com:sports
requiresSubscription.commonTier Valeur booléenne Obligatoire si la catégorie est définie sur "Abonnement". Pour en savoir plus sur commonTier, consultez la documentation sur les exigences communes des niveaux.

Propriétés de l'offre

Un objet d'offre décrit le prix associé à un contenu. L'objet est une propriété (expectsAcceptanceOf) de l'objet de spécification d'accès à l'action. Il peut être utilisé à deux fins :

  • Fournir les détails de l'achat du jeu. actionAccessibilityRequirement.category doit être défini sur purchase pour ce cas d'utilisation.
  • Fournir les détails de l'achat du jeu lorsqu'il est en promotion. actionAccessibilityRequirement.category doit être défini sur purchase pour ce cas d'utilisation, et deux offres par action doivent être fournies : une pour fournir les détails du prix catalogue et une autre pour les détails du prix soldé.

Propriété Type attendu Description
expectsAcceptanceOf.@type Texte Obligatoire : toujours défini sur Offer.
expectsAcceptanceOf.name Texte Facultatif : nom de l'offre.
expectsAcceptanceOf.priceSpecification PriceSpecification Obligatoire : informations tarifaires associées au jeu.
expectsAcceptanceOf.priceSpecification.@type Texte Obligatoire : toujours défini sur UnitPriceSpecification.
expectsAcceptanceOf.priceSpecification.price Number Obligatoire : prix d'achat du contenu. Le prix doit être une valeur positive non nulle. Pour les jeux dont le prix est de 0,00, veuillez définir actionAccessibilityRequirement.category sur "free".
expectsAcceptanceOf.priceSpecification.priceCurrency Texte Obligatoire : devise du prix au format ISO 4217 à trois lettres.
expectsAcceptanceOf.priceSpecification.priceType PriceTypeEnumeration ou Text Obligatoire, le cas échéant : type de prix indiqué dans l'offre.
Lorsque actionAccessibilityRequirement.category est défini sur purchase, il s'agit d'une propriété obligatoire qui n'accepte que deux valeurs :
  • https://schema.org/ListPrice : représente le prix catalogue d'un jeu.
  • https://schema.org/SalePrice : représente le prix soldé d'un jeu (généralement actif pour une durée limitée).

 Les champs https://schema.org/ListPrice et https://schema.org/SalePrice sont obligatoires lorsque vous fournissez des informations sur les prix soldés.
expectsAcceptanceOf.seller Entreprise Organisation qui propose l'achat de contenu.
expectsAcceptanceOf.seller.@type Texte Toujours défini sur Organization.
expectsAcceptanceOf.seller.name Texte Nom du vendeur.
expectsAcceptanceOf.seller.sameAs URL URL d'une page Web qui identifie le vendeur (par exemple, la page d'accueil du vendeur).

Pour chacun des types de paywall compatibles, un exemple ci-dessous vous montre comment créer le actionAccessibilityObject :

Sans frais (aucune connexion requise)

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

Sans frais (aucune connexion requise), avec un essai d'une heure uniquement

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "eligibleDuration": 60
    }
  }
}

Sans frais (connexion obligatoire)

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

Achat unique avec promotion

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": [
      {
        "@type": "Offer",
        "name": "Original Price",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": 7.99
          "priceCurrency": "USD"
          "priceType": "https://schema.org/ListPrice"
        },
        "seller": {
          "@type": "Organization",
          "name": "Example",
          "sameAs": "http://www.example.com/"
          }
        },
        {
          "@type": "Offer",
          "name": "Sale Price",
          "priceSpecification": {
            "@type": "UnitPriceSpecification",
            "price": 4.99
            "priceCurrency": "USD"
            "priceType": "https://schema.org/SalePrice"
          },
          "seller": {
          "@type": "Organization",
          "name": "Example",
          "sameAs": "http://www.example.com/"
        }
      }
    ]
  }
}

Achat unique

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}

Abonnements à un ou plusieurs niveaux/Abonnements avec modules complémentaires

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

Abonnements et modules complémentaires à plusieurs niveaux

Voici comment les abonnements à plusieurs niveaux et les modules complémentaires sont appliqués :

  • Dans un modèle d'abonnement à un seul niveau, un fournisseur de services ne propose qu'un seul niveau d'abonnement. Tous les abonnés peuvent accéder au même contenu, quel que soit leur forfait.
  • Dans un modèle d'abonnement à plusieurs niveaux, un fournisseur de services propose plusieurs niveaux d'abonnement, tels que Gold, Silver et Bronze. Les utilisateurs disposant d'un abonnement de niveau supérieur peuvent accéder à tous les contenus des niveaux inférieurs. Toutefois, les utilisateurs qui disposent d'un abonnement de niveau inférieur ne peuvent pas accéder au contenu de niveau supérieur. exemple de contenu 1
  • Dans un modèle d'abonnement aux modules complémentaires, un fournisseur de services permet aux utilisateurs d'étendre leurs droits d'accès et d'ajouter du contenu à un abonnement de base. Les utilisateurs peuvent ajouter autant de contenus qu'ils le souhaitent. exemple de contenu 2

Modèle global d'une entité

Voici un exemple de modèle global d'une entité :

Modèle

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {  },
    {
       "@context": ["http://schema.org", {"@language": "en"}],
       "@type": "VideoGame",
       "@id": "http://www.example.com/game007",
       "url": "http://www.example.com/game007",
       "name": "Games Bond 007",
       "exampleOfWork": [
        {  },
        {
           "@type": "VideoGame",
            "@id": "http://www.example.com/game007Stadia",
            "url": "http://www.example.com/game007Stadia",
            "name": "Games Bond 007",
            // Other properties
           "potentialAction": [
              {  },
              {
                  "@type": "PlayGameAction",
                  "target": [
                  {  },
                  {  }
                  ],
                 "actionAccessibilityRequirement": [
                 {  },
                 {  }
                 ]
              }
          ],
    ...
    }
  ]
}

Définitions des types de données structurées

Cette section fournit des informations détaillées sur les propriétés de balisage de contenu pour le type d'entité VideoGame. Vous devez inclure les propriétés obligatoires répertoriées dans ce document pour que votre contenu puisse s'afficher dans les résultats de recherche. Nous vous encourageons également à inclure les propriétés fortement recommandées pour ajouter d'autres informations sur votre contenu. Cela peut améliorer l'expérience utilisateur et nous aider à réconcilier les entités avec le Knowledge Graph de Google.

Tableau des spécifications VideoGame (Work)

Propriété Type attendu Description
@context Texte Obligatoire. Toujours défini sur ["http://schema.org", {"@language": "xx"}].
  • La valeur Où xx représente la langue des chaînes du flux. Le @language de chaque contexte d'entité racine doit être défini sur le code de langue approprié au format BCP 47. Par exemple, si la langue est définie sur l'espagnol, les noms sont supposés être en espagnol, même si la langue des sous-titres ou du doublage est l'anglais.
@type Texte Obligatoire. Toujours défini sur VideoGame.
@id URL Obligatoire. L'identifiant du contenu au format URI, par exemple https://example.com/1234abc. @id, doit répondre aux exigences suivantes :
  • Unique dans l'ensemble de votre catalogue.
  • Statique. Cet identifiant doit être stable et immuable dans le temps, même si la propriété url du jeu change. Comme il est traité comme une chaîne opaque, il ne doit pas nécessairement s'agir d'un lien fonctionnel.
  • Sous la forme d'un identifiant de ressource uniforme (URI).
  • Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

Étant donné que le url d'une entité répond à toutes les exigences d'un identifiant, nous vous recommandons d'utiliser le url d'une entité comme @id. Pour en savoir plus, consultez la section Identifiant.

url URL Obligatoire. L'URL canonique du contenu, que Google utilise pour faire correspondre le contenu de votre flux à celui de ses bases de données. url doit répondre aux exigences suivantes :
  • url doit être unique.
  • url doit contenir une URL canonique fonctionnelle que Google peut explorer.

Pour obtenir le lien profond d'une lecture, consultez plutôt la propriété urlTemplate de l'objet target.

name Texte Nom du jeu.
  • Utilisez un tableau pour lister les noms dans différentes langues. Pour en savoir plus, consultez l'exemple Plusieurs régions et langues.
  • Notez qu'un seul nom est accepté par paramètre régional (paire langue-pays).
description Texte Fortement recommandé. Synopsis du jeu. 300 caractères maximum.
  • Utilisez un tableau pour baliser la description dans plusieurs langues. Pour en savoir plus, consultez l'exemple Plusieurs régions et langues.
genre Texte Liste ordonnée de tous les genres concernés. Par exemple : ["Action", "Role playing"]
image ImageObject Fortement recommandé. Images associées au jeu. Pour en savoir plus sur les propriétés obligatoires et facultatives à inclure avec image, consultez Propriétés des images.
applicationCategory Texte Facultatif. Type d'application logicielle. Définissez la valeur sur Game.
exampleOfWork VideoGame Obligatoire : édition de VideoGame. Cette entité VideoGame (Edition) contient également les informations sur le lien profond. Pour en savoir plus, consultez le tableau des spécifications VideoGame (Edition).
playMode Text ou GamePlayMode Facultatif. Indique si le jeu est multijoueur, coopératif ou solo. Le jeu peut être marqué comme multijoueur, en coopération et solo en même temps. Accepte les valeurs suivantes :
  • SINGLE_PLAYER
  • LOCAL_MULTI_PLAYER
  • ONLINE_MULTI_PLAYER
  • LOCAL_COOP
  • ONLINE_COOP

Tableau des spécifications VideoGame (Edition)

Propriété Type attendu Description
@type Texte Obligatoire. Toujours défini sur VideoGame.
@id URL Obligatoire. L'identifiant du contenu au format URI, par exemple https://example.com/1234abc.@id, doit répondre aux exigences suivantes :
  • Unique dans l'ensemble de votre catalogue.
  • Statique. Cet identifiant doit être stable et immuable dans le temps, même si la propriété url du jeu change. Comme il est traité comme une chaîne opaque, il ne doit pas nécessairement s'agir d'un lien fonctionnel.
  • Sous la forme d'un identifiant de ressource uniforme (URI).
  • Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

Étant donné que le url d'une entité répond à toutes les exigences d'un identifiant, nous vous recommandons d'utiliser le url d'une entité comme @id. Pour en savoir plus, consultez la section Identifiant.

url URL Obligatoire. L'URL canonique du contenu, que Google utilise pour faire correspondre le contenu de votre flux à celui de ses bases de données. url doit répondre aux exigences suivantes :
  • url doit être unique.
  • url doit contenir une URL canonique fonctionnelle que Google peut explorer.

Pour obtenir le lien profond d'une lecture, consultez plutôt la propriété urlTemplate de l'objet target.

name Texte Nom du jeu.
  • Utilisez un tableau pour lister les noms dans différentes langues. Pour en savoir plus, consultez l'exemple Plusieurs régions et langues.
  • Notez qu'un seul nom est accepté par paramètre régional (paire langue-pays).
description Texte Fortement recommandé. Synopsis du jeu. 300 caractères maximum.
  • Utilisez un tableau pour baliser la description dans plusieurs langues. Pour en savoir plus, consultez l'exemple Plusieurs régions et langues.
genre Texte Liste ordonnée de tous les genres concernés. Par exemple : ["Action", "Role playing"]
image ImageObject Fortement recommandé. Images associées au jeu. Pour en savoir plus sur les propriétés obligatoires et facultatives à inclure avec image, consultez Propriétés des images.
applicationCategory Texte Facultatif. Type d'application logicielle. Définissez la valeur sur Game.
playMode Text ou GamePlayMode Facultatif. Indique si le jeu est multijoueur, coopératif ou solo. Le jeu peut être marqué comme multijoueur, en coopération et solo en même temps. Accepte les valeurs suivantes :
  • SINGLE_PLAYER
  • LOCAL_MULTI_PLAYER
  • ONLINE_MULTI_PLAYER
  • LOCAL_COOP
  • ONLINE_COOP
potentialAction PlayGameAction

Obligatoire, si applicable. Un objet de balisage d'action qui fournit les détails de l'action.

Utilisez un tableau pour spécifier différents liens profonds dans plusieurs régions. Pour en savoir plus, consultez l'exemple Plusieurs régions et langues.

gameEdition Texte

Obligatoire. Édition de ce jeu.

Par exemple, le célèbre jeu "Shadow of the Tomb Raider" est proposé en quatre éditions : "Croft Edition", "Standard Edition", "Digital Deluxe Edition" et "Ultimate Edition".

gamePlatform Texte Obligatoire. Plate-forme ou système électronique utilisé pour jouer au jeu vidéo.
releasedEvent PublicationEvent Fortement recommandé. Un PublicationEvent permet de spécifier la sortie originale (globale ou locale) d'un contenu par un éditeur.
releasedEvent.@type Texte Obligatoire. Veillez à toujours définir cette propriété sur PublicationEvent.
releasedEvent.Location Pays Obligatoire. Régions associées à cet événement de lancement.

Utilisez les codes ISO 3166 pour les pays. Pour indiquer le monde entier, définissez la valeur sur EARTH.

releasedEvent.startDate Date ou Heure Recommandation. Obligatoire pour ExclusiveEvent. Date de début de la publication de l'entité.
releasedEvent.endDate Date ou Heure Facultatif. Il s'agit de la date d'expiration des droits sur le contenu.
releasedEvent.publishedBy Organization ou Person Facultatif. Organisation ou personne ayant publié cette entité.
contentRating Texte Obligatoire pour les jeux pour adultes, fortement recommandé dans les autres cas. Classification globale du contenu. Si la classification du contenu est fournie sous la forme d'une chaîne de texte, deux variantes sont acceptées :
  • Agence de notation précédant la note, avec un espace entre les deux. Par exemple, une classification "Mature" de l'agence "Entertainment Software Rating Board" aux États-Unis doit être décrite comme Entertainment Software Rating Board Mature.
  • La valeur RATING NOT KNOWN (non sensible à la casse) indique que vous ne connaissez pas la classification du jeu.
publisher Organization ou Person Facultatif. Organisation ou personne ayant publié cette entité.
contributor Organization ou Person Facultatif. Contributeur secondaire de cette entité.

Tableau des spécifications des images

Les actions de jeu Play réutilisent le schéma des actions multimédias pour capturer les exigences relatives aux images. Pour en savoir plus, consultez les spécifications du schéma d'image.

Voici quelques autres exigences à prendre en compte.

Format et contentAttributes Résolution minimale (en pixels)
16:9, affiche emblématique 3 840 x 2 160
2:3, affiche emblématique 1 000 x 1 500
4:3, affiche emblématique 800 x 600
1:1, affiche emblématique 600 x 600
3:4, affiche emblématique 600 x 800
16:9, arrière-plan emblématique [recommandé] ou sceneStill 3 840 x 2 160
2:3, arrière-plan emblématique [recommandé] ou sceneStill 1 000 x 1 500
3:4, arrière-plan emblématique [recommandé] ou sceneStill 600 x 800

Exigences concernant le format

Voici les exigences de format que vous devez respecter pour la taille, la qualité, etc. des images :

  • Incluez les affiches et sceneStills du jeu avec la résolution la plus élevée possible.
  • L'image doit être au format JPG, PNG ou WebP.
  • L'URL de l'image doit être explorable et indexable.
  • La taille des fichiers ne doit pas dépasser 20 Mo.
  • Nous préférons les images qui fonctionnent à la fois pour smallFormat et largeFormat.
  • L'image ne doit pas contenir les éléments suivants :

    • Image floue, pixélisée, mal orientée ou de mauvaise qualité
    • Photos de stock ou sans licence
    • Nudité
    • Contenu illégal.
  • Vous pouvez inclure des tailles d'image en plus de celles listées dans le tableau précédent.

Exemples

Les sections suivantes contiennent des exemples de flux pour différents scénarios.

Exemple de flux avec une entité VideoGame

Voici un exemple d'entité VideoGame qui représente le jeu "Space Wars Made Up Game". N'oubliez pas que cette entité doit être placée dans l'enveloppe du flux de données dans le fichier JSON pour être visible par Google.

{
   "@context": ["http://schema.org", {"@language": "en"}],
   "@type":"DataFeed",
   "dateModified":"2021-07-20T00:44:51Z",
   "dataFeedElement":[
      {
         "@context": ["http://schema.org", {"@language": "en"}],
         "@id":"https://www.examplegame.com/VideoGame007",
         "@type":"VideoGame",
         "url":"https://www.examplegame.com/games/VideoGame007",
         "name":"Space Wars Made Up Game",
         "description":"Space Wars offers an immersive RPG experience coupled with realistic gameplay.",
         "genre":[
            "Role playing"
         ],
         "applicationCategory":"Game",
         "publisher":{
            "name":"Made Up Media",
            "@id":"https://www.examplegame.com/uniuqe-id-org",
            "@type":"Organization"
         },
         "contributor":[
            {
               "roleName":"developer",
               "name":"Alpha Labs Man Made Studio",
               "@id":"https://www.studionice.com/uniuqe-id-alpha",
               "@type":"Organization"
            }
         ],
         "playMode":[
           "SINGLE_PLAYER", "LOCAL_MULTI_PLAYER", "ONLINE_MULTI_PLAYER", "LOCAL_COOP", "ONLINE_COOP"
         ],
         "image":[
            {
               "@context":"http://schema.org",
               "@type":"ImageObject",
               "name":"keyart_1X1_3X",
               "contentUrl":"https://lh3.googleusercontent.com/ept4",
               "copyrightHolder":{
                  "@type":"Organization",
                  "name":"Studio Nice"
               },
               "additionalProperty":[
                  {
                     "@type":"PropertyValue",
                     "name":"contentAttributes",
                     "value":[
                         "SMALLFORMAT", "LARGEFORMAT", "SCENESTILL", "CENTERED", "NOTITLE", "NOLOGO"
                     ]
                  }
               ]
            }
         ],
         "exampleOfWork":{
            "@id":"https://www.examplegame.com/VideoGame007/version/v3",
            "name":"Space Wars Made Up Game",
            "description":"Space Wars offers an immersive RPG experience coupled with realistic gameplay.",
            "gameEdition":"Early Access",
            "url":"https://www.examplegame.com/VideoGame007/version/v3/stream",
            "contentRating":[
               "Entertainment Software Rating Board Mature",
               "Pan European Game Information 12",
               "Unterhaltungssoftware Selbstkontrolle Video Game Rating System USK 12"
            ],
            "applicationCategory":"Game",
            "releasedEvent":[
               {
                  "@type":"PublicationEvent",
                  "startDate":"2020-11-30",
                  "location":{
                     "@type":"Country",
                     "name":"US"
                  }
               }
            ],
            "potentialAction":{
               "@type":"PlayGameAction",
               "gameAvailabilityType":"DEMO",
               "target":[
                  {
                     "@type":"EntryPoint",
                     "urlTemplate":"https://www.examplegame.com/VideoGame007/play",
                     "actionPlatform":[
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.org/AndroidPlatform",
                        "http://schema.org/AndroidTVPlatform",
                        "http://schema.org/IOSPlatform"
                     ]
                  }
               ],
               "actionAccessibilityRequirement":[
                  {
                     "@type":"ActionAccessSpecification",
                     "availabilityStarts": "2015-01-01T00:00Z",
                     "availabilityEnds": "2015-12-31T00:00Z",
                     "eligibleRegion":{
                        "@type":"Country",
                        "name":[
                           "US"
                        ]
                     },
                     "category":"subscription",
                     "requiresSubscription":{
                        "@type":"MediaSubscription",
                        "name":"",
                        "@id":""
                     }
                  }
               ],
            },
            "gamePlatform": "Google Stadia",
            "publisher":{
               "name":"Made Up Media",
               "@id":"https://www.examplegame.com/uniuqe-id-org",
               "@type":"Organization"
            },
            "contributor":[
               {
                  "roleName":"developer",
                  "name":"Alpha Labs Man Made Studio",
                  "@id":"https://www.studionice.com/uniuqe-id-alpha",
                  "@type":"Organization"
               }
            ]
         }
      }
   ]
}

Représentation d'un exemple d'image avec deux personnages de jeu

Illustration d'une femme et d'un oiseau dans un champ.
{
  "@context": [ "http://schema.org", { "@language": "en" } ],
  "@type": "VideoGame",
  "@id": "http://www.examplegame.com/videoGame1",
  "url": "http://www.examplegame.com/videoGame1",

  ...,

  "image": {
    "@context": "http://schema.org",
    "@type": "ImageObject",
    "name": "Mauren and Lord Wingflap!",
    "Keywords": "Mauren, Lord Wingflap the Destroyer",
    "contentUrl": "http://example.com/images/mountain-view.jpg",
    "character": [
      { "@type": "Person", "name": "Mauren" },
      { "@type": "Person", "name": "Lord Wingflap the Destoyer" }
    ],
    "copyrightHolder": {
      "@type": "Organization",
      "name": " ExampleOrganization Studios, Inc."
    },
    "inLanguage": "en-US",
    "audience": {
        "@type": "Audience",
        "geographicArea": [{"@type": "Country", "name": "US"},
                           {"@type": "Country", "name": "GB"}]
    },
    "additionalProperty": [
      {
        "@type": "PropertyValue",
        "name": "contentAttributes",
        "value": [ "iconic", "background", "rightCentered", "noTitle", "noLogo",
                   "noCopyright", "noMatte", "smallFormat", "largeFormat"]
      }
    ]
  }
}

Gérer plusieurs régions et langues (internationalisation)

Une entité VideoGame peut être disponible dans plusieurs régions et langues.

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "VideoGame",
  "@id": "http://www.example.com/my_favorite_game",
  "url": "http://www.example.com/my_favorite_game",
  "name": [
    {
      "@language": "en-us",
      "@value": "My Favorite Game"
    },
    {
      "@language": "es-mx",
      "@value": "mi juego favorito"
    },
    {
      "@language": "ja-jp",
      "@value": "私のfavourite game"
    }
  ],
  "description": [
    {
      "@language": "en-us",
      "@value": "Jenny meets Paul."
    },
    {
      "@language": "es-mx",
      "@value": "Jenny conoce a paul."
    },
    {
      "@language": "ja-jp",
      "@value": "PaulとJennyが会う。"
    }
  ],
  "potentialAction": [
    {
      "@type": "PlayGameAction",
      "gameAvailabilityType": "DEMO",
      "additionalType": "DownloadPlayAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "http://www.example.com/my_favorite_game?autoplay=true",
        "actionPlatform": [
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/MobileWebPlatform"
        ]
      }
      "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "purchase",
        "availabilityStarts": "2021-06-24T11:00:00Z",
        "availabilityEnds": "2041-06-24T11:00:00Z",
        "eligibleRegion": [
          {
            "@type": "Country",
            "name": "US"
          },
          {
            "@type": "Country",
            "name": "MX"
          }
        ]
      },
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "contentLanguage",
          "value": [
            "en",
            "es"
          ]
        }
      ],
      "expectsAcceptanceOf": {
        "@type": "Offer",
        "priceSpecification": [
          {
            "@type": "UnitPriceSpecification",
            "price": 19.99,
            "priceCurrency": "USD",
            "priceType": "https://schema.org/ListPrice"
          },
          {
            "@type": "UnitPriceSpecification",
            "price": 360.00,
            "priceCurrency": "MXN",
            "priceType": "https://schema.org/ListPrice"
          }
        ],
        "seller": {
          "@type": "Organization",
          "name": "My Favorite Game Publisher"
        }
      }
    },
    {
      "@type": "PlayGameAction",
      "gameAvailabilityType": "DEMO",
      "additionalType": "DownloadPlayAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "http://www.example.com/jp/my_favorite_game?autoplay=true",
        "actionPlatform": [
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/MobileWebPlatform"
        ]
      }
      "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "purchase",
        "availabilityStarts": "2021-07-24T11:00:00Z",
        "availabilityEnds": "2041-07-24T11:00:00Z",
        "eligibleRegion": [
          {
            "@type": "Country",
            "name": "JP"
          }
        ]
      },
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "contentLanguage",
          "value": [
            "ja"
          ]
        }
      ],
      "expectsAcceptanceOf": {
        "@type": "Offer",
        "priceSpecification": [
          {
            "@type": "UnitPriceSpecification",
            "price": 2189,
            "priceCurrency": "JPY",
            "priceType": "https://schema.org/ListPrice"
          }
        ],
        "seller": {
          "@type": "Organization",
          "name": "My Favorite Game Publisher"
        }
      }
    }
  ],
  // Other properties...
}