Pour certains types d'entités, vous devez établir la relation entre les contenus de votre flux. Ces informations aident Google à afficher la bonne structure et l'ordre appropriés de vos contenus auprès des utilisateurs, et à identifier le bon contenu lorsqu'une requête est ambiguë.
Sélectionnez le type de contenu que vous fournissez:
Série TV
如果您是电视节目提供商,则需要在媒体目录 Feed 中添加 TVEpisode、TVSeason 和 TVSeries 实体类型。您可以通过过滤这些类型,在了解可用的实体类型部分中找到这些实体的定义。
确定关系
确保在它们之间建立以下关系:
partOfSeries 和 partOfSeason 属性将电视节目实体类型连接在一起。TVEpisode实体要求您提供partOfSeries属性,该属性用于指定剧集TVSeries实体的@id和name。"partOfSeries": { "@type": "TVSeries", "@id": "http://www.example.com/my_favorite_tv_show", "name": "My Favorite TV Show", },如果您的 Feed 包含电视节目季,则
TVSeason实体还需要您在partOfSeries属性中指定其TVSeries实体。TVEpisode实体要求您提供partOfSeason属性,该属性用于指定剧集TVSeason实体的@id和seasonNumber。"partOfSeason": { "@type": "TVSeason", "@id": "http://www.example.com/my_favorite_tv_show/s7", "seasonNumber": 7 },如果
TVEpisode实体在 Feed 中没有对应的TVSeason实体,请按以下步骤为TVEpisode实体提供partOfSeason.@id和partOfSeason.seasonNumber属性:- 获取其
partofSeries.@id并附加占位符查询字段(例如 ?season1),以创建唯一的partOfSeason.@id(例如 http://www.example.com/my_favorite_tv_show?season1)。 - 将
partOfSeason.seasonNumber设置为 1。
TVSeason实体重复使用现有的partOfSeason.@id,也可以将此占位符partOfSeason.@id替换为TVSeason实体的实际@id。- 获取其
示例
TVSeries
我最喜欢的电视节目
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"url": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
"potentialAction":{ … },
...
}
TVSeason
我最喜欢的电视节目(第 7 季)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"url": "http://www.example.com/my_favorite_tv_show/s7",
"name": "My Favorite TV Show, Season 7",
"seasonNumber": 7,
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
TVEpisode
我最喜欢的电视节目(第 7 剧季)的第 3 剧集
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVEpisode",
"@id": "http://www.example.com/my_favorite_tv_show/s7/e3",
"url": "http://www.example.com/my_favorite_tv_show/s7/e3",
"name": "John Doe returns at night",
"episodeNumber": 3,
"partOfSeason": {
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"seasonNumber": 7
},
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
Radio
如果您是广播电台提供商,则需要在媒体目录 Feed 中添加 RadioBroadcastService 实体类型。您可以通过在了解可用的实体类型部分中过滤此类型,找到这些实体的定义。
确定关系
由于此类集成只有一种实体类型,并且不需要建立任何显式关系,因此请务必为 RadioBroadcastService 实体收集以下信息:
description:电台的说明。broadcastDisplayName:电台的显示名称。areaServed:电台的服务区域。callSign:政府签发的无线电台官方呼号。对于北美洲的广播电台,此属性为必需属性。broadcastFrequency:电台的频率规范。- 对于地面 AM/FM 电台,此属性为必填属性。
- 对于仅限在线播放的内容,此值设为
INTERNET_STREAM。
broadcastAffiliateOf:此电台提供节目的网络。如果相应电台不属于任何联属机构,则无需此属性。broadcaster:拥有和运营相应电台的组织。parentService:父级电台。如果电台是其他电台的转播器或转换器,则必须提供此属性。
示例
{
"@context": "http://schema.googleapis.com",
"@type": "RadioBroadcastService",
"@id": "https://www.example.com/stations?id=1",
"url": "https://www.example.com/stations?id=1",
"name": "KABC",
"callSign": "KABC-FM",
"broadcastDisplayName": "KABC",
"description": "Local News & Information",
"broadcastFrequency": {
"@type": "BroadcastFrequencySpecification",
"broadcastFrequencyValue": "89.5",
"broadcastSignalModulation": "FM",
"broadcastSubChannel": "HD1"
},
"areaServed": {
"@type": "City",
"name": "San Francisco, CA"
},
"broadcastAffiliateOf": [
{
"@id": "https://www.example.com/networks/xyz",
"@type": "Organization",
"name": "XYZ",
"sameAs": "https://en.wikipedia.org/wiki/XYZ"
},
{
"@id": "https://www.example.com/networks/efg",
"@type": "Organization",
"name": "EFG",
"sameAs": "https://www.example.com/"
}
],
"broadcaster": [
{
"@type": "Organization",
"name": "California Local Public Broadcasting",
"sameAs": "https://www.example.org/w/clpb/"
},
{
"@type": "Organization",
"sameAs": "https://www.example.org/kabc",
"name": "KABC Inc"
}
],
"potentialAction": { … },
…
}
Musique
Si vous êtes un service musical, vous devez ajouter les types d'entités MusicGroup, MusicAlbum et MusicRecording dans votre flux de catalogue multimédia. Vous pouvez trouver les définitions de ces entités dans la section Comprendre les types d'entités disponibles en filtrant sur ces types.
Les types d'entités MusicGroup, MusicAlbum et MusicRecording permettent à votre application ou plate-forme de lire plus de contenu à partir d'une playlist (MusicPlaylist) une fois que tout le contenu de l'entité de départ a été lu. Consultez le scénario suivant :
- Une entité
MusicAlbumcontient une liste de titres de l'album XYZ (une entité de départ). - Une entité
MusicPlaylistcontient une playlist de titres semblables à ceux de l'album XYZ. - L'entité
MusicAlbuminclut l'entitéMusicPlaylisten tant qu'action basée sur une entité.
Dans cette configuration, une fois que tous les titres de l'album XYZ ont été lus, votre application peut continuer à lire des titres de la playlist fournie par l'entité MusicPlaylist.
Action d'entité et action basée sur une entité
Les actions d'écoute acceptent deux types d'actions :
- Action d'entité : lit un artiste, un album ou un titre spécifique (une entité de départ). Elle inclut
MusicGroup,MusicAlbumetMusicRecording. - Action basée sur une entité : lit du contenu semblable à l'entité de départ. Elle inclut
MusicPlaylist.- Une fois une action d'entité terminée, votre application ou plate-forme peut lancer une action basée sur une entité.
- Une action basée sur une entité peut inclure la lecture du contenu de l'entité de départ.
Nous vous recommandons d'inclure une action basée sur une entité dans chaque action d'entité.
Identifier les relations
- Pour
MusicGroup, si vous fournissez une action basée sur une entité, identifiez@idetnamede sonMusicPlaylist. - Pour
MusicAlbumetMusicRecording, vous devez identifier leMusicGroupauquel ils appartiennent.- Identifiez
@idetnamede sonMusicGroup. - Si vous fournissez une action basée sur une entité, identifiez
@idetnamede sonMusicPlaylist.
- Identifiez
- Pour
MusicPlaylist,- le cas échéant, identifiez le
genrequi représente le mieux le contenu de la playlist. - Si la playlist est sélectionnée manuellement, identifiez
numTracks.- L'absence de
numTracksindique à Google que la playlist est générée automatiquement et qu'elle est infinie.
- L'absence de
- le cas échéant, identifiez le
Exemple
MusicGroup
- Artiste : Mon artiste préféré
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicGroup",
"@id":"http://www.example.com/artist/my_favorite_artist/",
"url":"http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist",
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/artist_mix/my_favorite_artist/",
"url":"http://www.example.com/artist_mix/my_favorite_artist/",
"name":"My Favorite Artist Mix",
"potentialAction":{ … },
},
...
}
MusicAlbum
- Album : Mon album préféré
- Artiste : Mon artiste préféré
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicAlbum",
"@id":"http://www.example.com/album/my_favorite_album",
"url":"http://www.example.com/album/my_favorite_album",
"name":"My Favorite Album",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/album_mix/my_favorite_album",
"url":"http://www.example.com/album_mix/my_favorite_album",
"name":"My Favorite Album Mix",
"potentialAction":{ … },
},
...
}
MusicRecording
- Titre : Mon titre préféré
- Artiste : Mon artiste préféré
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicRecording",
"@id":"http://www.example.com/track/my_favorite_song",
"url":"http://www.example.com/track/my_favorite_song",
"name":"My Favorite Song",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/track_mix/my_favorite_song",
"url":"http://www.example.com/track_mix/my_favorite_song",
"name":"My Favorite Song Mix",
"potentialAction":{ … },
},
...
}
MusicPlaylist
- Playlist personnalisée : "Les meilleurs titres pop des années 2010"
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicPlaylist",
"@id":"http://www.example.com/playlist/top_pop_songs/",
"url":"http://www.example.com/playlist/top_pop_songs/",
"name":"Top Pop Songs of the 2010s",
"genre": [
"pop",
"2010s"
],
"numTracks":"46",
"potentialAction":{ … },
...
}
TV en direct
If you're a Live TV provider, you need to add the Organization, BroadcastService, CableOrSatelliteService, and TelevisionChannel entity types in your media catalog feed to represent your channel lineup. You may also need to provide the BroadcastEvent, TVSeries, TVEpisode, Movie, and SportsEvent entities to represent the associated EPG (electornic programming guide). You can find the definitions for these entities in the Understand the available entity types section by filtering for these types. For a more detailed explanation, you can visit the Live TV Channels page.
Relationships between entities representing Live TV channels
The figure below shows how the Organization, BroadcastService, CableOrSatelliteService, and TelevisionChannel entities are related:
Organization(operator) entity representing the feed provider and also the parent organization ofCableOrSatelliteServiceservice are connected using theproviderproperty on theCableOrSatelliteServiceentity.Organizationentities corresponding to theBroadcastServiceentities are connected using thebroadcastAffiliateOfproperty on theBroadcastServiceentity.TelevisionChannelentities connect with theCableOrSatelliteServiceentity, that represents the lineup they belong to, using theinBroadcastLineupproperty.TelevisionChannelentities connect with theBroadcastServiceentity, whose programming this channel provides, using theprovidesBroadcastServiceproperty.
It is highly recommended to go through the Live TV channels concept page for concrete examples of how the relationship between the BroadcastService and Organization entities needs to be established.
Relationships between channels and their programming guide (EPG)
The figure below shows how the BroadcastEvent entity links to the rest of the entities in the feed.
BroadcastEvententities, representing the programming guide (EPG) of aBroadcastService, are connected with theBroadcastServiceentities using thepublishedOnproperty on theBroadcastEvententity.BroadcastEvententities can also be connected to top levelTVEpisode,TVSeries,Movieentities using theworkPerformedproperty.BroadcastEvententities can also be connected to top levelSportsEvententities using thebroadcastOfEventproperty.- For channel-less events streamed online, the
BroadcastEvententities connect with the entity representing the live event using either theworkPerformedorbroadcastOfEventproperty depending on what is being live streamed. In such cases, thepublishedOnproperty is not required since the connection to a channel is not required.
Examples
The following section provides examples and snippet for various Watch Action use cases.
National TV service provider on the internet
Organization
A fictional Internet Protocol Television service provider, ExampleTV Digital Service (Organization), provides Live TV service on the Internet, which contains the following two channels: ExampleTV-Movie (Organization) and ExampleTV-Comedy (Organization):
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/digital",
"name":"ExampleTV Digital Service",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_digital_service"
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/movie",
"name":"ExampleTV Movie",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_movie"
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/comedy",
"name":"ExampleTV Comedy",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_comedy"
}
BroadcastService
These two BroadcastService entities provide the details of deep links and access requirement for the fictional channels ExampleTV-Movie and ExampleTV-Comedy:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie",
"name": "ExampleTV-Movie",
"alternateName": [
"Example Television Movie",
"Example TV Movie"
],
"description": "A fictional Internet Protocol TV movie channel.",
"broadcastDisplayName":"ExampleTV-Movie",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/movie"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/movie?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12345"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-movie-33345"
}
]
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy",
"name": "ExampleTV-Comedy",
"alternateName": [
"Example Television Comedy",
"Example TV Comedy"
],
"description": "A fictional Internet Protocol TV comedy channel.",
"broadcastDisplayName":"ExampleTV-Comedy",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/comedy"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/comedy?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "15555"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-comedy-12323"
}
]
}
CableOrSatelliteService
This CableOrSatelliteService describes the service provider ExampleTV Digital Service that has national coverage:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us",
"name":"Example TV Digital Service - US",
"provider": {
"@type": "Organization",
"@id": "http://example.com/exampletv/digital",
},
"areaServed":[
{
"@type":"Country",
"name": "US",
}
]
}
TelevisionChannel
These TelevisionChannel entities indicate that ExampleTV Digital Service IPTV has the ExampleTV Movie programming on channel ExTV-Movie and the ExampleTV Comedy programming on channel ExTV-Comedy:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-movie",
"broadcastChannelId":"ExTV-Movie",
"broadcastServiceTier":"Basic",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie"
}
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-comedy",
"broadcastChannelId":"ExTV-Comedy",
"broadcastServiceTier":"Basic",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy"
}
}
See the Live TV examples section for more examples.
Broadcast of a Movie on a TV channel
A movie is broadcast on the television network Example TV (BroadcastService) between 5 pm and 7 pm on July 12th, 2019.
BroadcastEvent
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live/movie/new_release",
"name": "My Favorite Movie",
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"startDate": "2019-07-12T17:00-08:00",
"endDate": "2019-07-12T19:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"publishedOn": {
"@type": "BroadcastService",
"@id": "http://example.com/stations/example_tv"
},
"workPerformed": {
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie"
}
}
BroadcastService
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"http://example.com/stations/example_tv",
"name":"EXAMPLE-TV",
"broadcastDisplayName":"ABCD",
"callSign": "EXA-TV",
"videoFormat":"SD",
"broadcastTimezone":"America/Los_Angeles",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://example.com/networks/abcd-network",
}
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12258"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-123456"
}
],
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://example.com/livestream",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast",
"http://schema.org/AndroidTVPlatform"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "externalsubscription",
"availabilityStarts": "2018-07-21T10:35:29Z",
"availabilityEnds": "2019-10-21T10:35:29Z",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://example.com/subscription",
"name": "ABCD",
"sameAs": "http://example.com/subscription",
"authenticator": {
"@type": "Organization",
"name": "TVE"
}
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
}
}
Movie
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie",
"url": "http://www.example.com/my_favorite_movie",
"name": "My Favorite Movie",
"sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
"releasedEvent": {
"@type": "PublicationEvent",
"startDate": "2008-01-20",
"location": {
"@type": "Country",
"name": "US"
}
},
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"actor": [
{
"@type": "Person",
"name": "John Doe",
"sameAs": "https://en.wikipedia.org/wiki/John_Doe"
},
{
"@type": "Person",
"name": "Jane Doe",
"sameAs": "https://en.wikipedia.org/wiki/Jane_Doe"
}
],
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "IMDB_ID",
"value": "tt0123456"
}
]
}
See the Live TV Event examples section for more examples.
A live sports game streamed online
Broadcast event
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live_eevent/basketball/professional/final_game_6",
"name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
"description": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B.",
"startDate": "2018-09-16T10:00-08:00",
"endDate": "2018-09-16T13:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/pbl_semis_game?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"availabilityStarts": "2018-09-16T10:00-08:00",
"availabilityEnds": "2018-09-16T10:00-08:00",
"requiresSubscription": {
"@type": "MediaSubscription",
"name": "Example Package",
"commonTier": true,
"@id": "http://www.example.com/example_package"
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"broadcastOfEvent": {
"@type": "SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6"
}
}
Sports event
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6",
"name":"2019 Professional Basketball Finals, Game 6: Team A vs Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"description": {
"@language": "en",
"@value": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B."
},
"startDate": "2019-09-16T10:00-08:00",
"endDate": "2019-09-16T13:00-08:00",
"homeTeam":{
"@type":"SportsTeam",
"name":"Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"parentOrganization":{
"@type":"SportsOrganization",
"name":"Professional Basketball League",
"sameAs":"http://www.example.com/professional_basketball_league"
},
"athlete":[
{
"@type":"Person",
"name":"John doe"
}
]
},
"awayTeam":{
"@type":"SportsTeam",
"name":"Team A",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"athlete":[
{
"@type":"Person",
"name":"Jane Doe"
}
]
},
"location":{
"@type":"Place",
"name":"Example Stadium",
"address":{
"@type":"PostalAddress",
"streetAddress":"1600 Amphitheatre Pkwy",
"addressLocality":"Mountain View",
"addressRegion":"CA",
"postalCode":"94043",
"addressCountry":"US"
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "TMS ID of this game"
}
]
}
See the Sports examples section for more examples.