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




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.
- Par exemple, n'utilisez pas le même
- Statique :
- Vous ne pourrez plus modifier
@id
par la suite.
- Vous ne pourrez plus modifier
- 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 esthttps://example.com
,@id
peut devenirhttps://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.
- 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
É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).
- 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 parBBEF
à l'adresse0x00
.
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 (commeurl
) 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
- Un identifiant unique :
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 :
|
|
20 x 20 | |||
40 x 40 | |||
44x44 | |||
112 x 112 |
Échantillon

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

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 :
|
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 :
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 |
|||
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.
Nous exigeons que l'entité correspondante soit fournie dans le flux au moins sept jours avant sa date |
|||
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.
Nous exigeons que toute modification de la date |
|||
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.
|
|||
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 :
Si le prix est de 0,00, supprimez complètement l'objet "Offer" et définissez |
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.
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 :
|
|||
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.
|
|||
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 surpurchase
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 surpurchase
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 :
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.
- 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.
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"}] .
|
|||
@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 :
Étant donné que le |
|||
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 :
Pour obtenir le lien profond d'une lecture, consultez plutôt la propriété |
|||
name |
Texte | Nom du jeu.
|
|||
description |
Texte | Fortement recommandé. Synopsis du jeu. 300 caractères maximum.
|
|||
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 :
|
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 :
Étant donné que le |
|||
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 :
Pour obtenir le lien profond d'une lecture, consultez plutôt la propriété |
|||
name |
Texte | Nom du jeu.
|
|||
description |
Texte | Fortement recommandé. Synopsis du jeu. 300 caractères maximum.
|
|||
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 :
|
|||
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 |
|||
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 :
|
|||
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
etlargeFormat
. -
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

{ "@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... }