Some entity types require you to establish the relationship between the content in your feed. This information helps Google display the proper order and structure of your content to users and identify the correct content when a user's query is ambiguous.
Select the type of content that you provide:
TV show
如果您是电视节目提供商,则需要在媒体目录 Feed 中添加 TVEpisode
、TVSeason
和 TVSeries
实体类型。您可以通过过滤这些类型,在了解可用实体类型部分找到这些实体的定义。
确定关系
确保这些对象之间建立了以下关系:
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 },
如果 Feed 中没有
TVEpisode
实体对应的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
。- 获取其
示例
电视连续剧
我最喜欢的电视节目
{
"@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":{ … },
...
}
电视剧季
我最喜欢的电视节目(第 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":{ … },
...
}
电视剧集
我最喜欢的电视节目第 3 集(第 7 季)
{
"@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": { … },
…
}
Music
如果您是音乐提供商,则需要在媒体目录 Feed 中添加 MusicGroup
、MusicAlbum
和 MusicRecording
实体类型。您可以通过过滤这些类型,在了解可用实体类型部分找到这些实体的定义。
使用 MusicGroup
、MusicAlbum
和 MusicRecording
方法,当某个种子实体播放完内容后,您的应用或平台便可播放来自播放列表 (MusicPlaylist
) 的更多内容。请查看以下场景:
MusicAlbum
实体包含专辑 XYZ(一个种子实体)中的歌曲列表。MusicPlaylist
实体包含一个播放列表,其歌曲与专辑 XYZ 中的歌曲类似。MusicAlbum
实体包含MusicPlaylist
实体作为实体种子操作。
采用此设置时,只要播放专辑 XYZ 中的所有歌曲,您的应用就可以继续播放 MusicPlaylist
实体提供的播放列表中的歌曲。
实体操作和实体种子操作
聆听 Action 支持两种类型的 Action:
- 实体操作:播放特定音乐人、专辑或歌曲(种子实体)。其中包含
MusicGroup
、MusicAlbum
、MusicRecording
。 - 实体种子操作:播放类似于种子实体的内容。它包含
MusicPlaylist
。- 完成实体操作后,您的应用或平台可能会发起实体种子操作。
- 实体种子操作可能包括播放种子实体中的内容。
我们建议您在每个实体操作中添加实体种子操作。
确定关系
- 对于
MusicGroup
,如果您提供实体种子操作,请标识其MusicPlaylist
的@id
和name
。 - 对于
MusicAlbum
和MusicRecording
,您需要确定它们属于哪个MusicGroup
。- 确定
MusicGroup
的@id
和name
。 - 如果您提供实体种子操作,请标识其
MusicPlaylist
的@id
和name
。
- 确定
- 对于
MusicPlaylist
,- 如果适用,请找出最能代表播放列表中内容的
genre
。 - 如果是手动挑选的播放列表,请标识
numTracks
。- 若缺少
numTracks
,则会告知 Google 此播放列表是一个自动生成的无限次播放列表。
- 若缺少
- 如果适用,请找出最能代表播放列表中内容的
示例
音乐团体
- 音乐人:我最喜欢的音乐人
{
"@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":{ … },
},
...
}
音乐专辑
- 专辑:My Favorite Album
- 音乐人:我最喜欢的音乐人
{
"@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":{ … },
},
...
}
音乐录音
- 歌曲:我最喜欢的歌曲
- 音乐人:我最喜欢的音乐人
{
"@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":{ … },
},
...
}
音乐播放列表
- 自定义播放列表:“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":{ … },
...
}
Live TV
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 ofCableOrSatelliteService
service are connected using theprovider
property on theCableOrSatelliteService
entity.Organization
entities corresponding to theBroadcastService
entities are connected using thebroadcastAffiliateOf
property on theBroadcastService
entity.TelevisionChannel
entities connect with theCableOrSatelliteService
entity, that represents the lineup they belong to, using theinBroadcastLineup
property.TelevisionChannel
entities connect with theBroadcastService
entity, whose programming this channel provides, using theprovidesBroadcastService
property.
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.
BroadcastEvent
entities, representing the programming guide (EPG) of aBroadcastService
, are connected with theBroadcastService
entities using thepublishedOn
property on theBroadcastEvent
entity.BroadcastEvent
entities can also be connected to top levelTVEpisode
,TVSeries
,Movie
entities using theworkPerformed
property.BroadcastEvent
entities can also be connected to top levelSportsEvent
entities using thebroadcastOfEvent
property.- For channel-less events streamed online, the
BroadcastEvent
entities connect with the entity representing the live event using either theworkPerformed
orbroadcastOfEvent
property depending on what is being live streamed. In such cases, thepublishedOn
property 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.