Một số loại thực thể yêu cầu bạn thiết lập mối quan hệ giữa nội dung trong nguồn cấp dữ liệu. Thông tin này giúp Google hiển thị thứ tự và cấu trúc thích hợp của nội dung cho người dùng, đồng thời xác định đúng nội dung khi truy vấn của người dùng không rõ ràng.
Chọn loại nội dung mà bạn cung cấp:
Chương trình truyền hình
If you're a TV show provider, you need to add the TVEpisode
, TVSeason
, and TVSeries
entity types in your media catalog feed. You can find the definitions for these entities in the Understand the available entity types section by filtering for these types.
Identify the relationships
Ensure the following relationships are established among them:
A
TVEpisode
entity requires you to provide thepartOfSeries
property, which specifies the@id
andname
of the episode'sTVSeries
entity."partOfSeries": { "@type": "TVSeries", "@id": "http://www.example.com/my_favorite_tv_show", "name": "My Favorite TV Show", },
If your feed contains TV seasons, a
TVSeason
entity also requires you to specify itsTVSeries
entity in thepartOfSeries
property.A
TVEpisode
entity requires you to provide thepartOfSeason
property, which specifies the@id
andseasonNumber
of the episode'sTVSeason
entity."partOfSeason": { "@type": "TVSeason", "@id": "http://www.example.com/my_favorite_tv_show/s7", "seasonNumber": 7 },
If a
TVEpisode
entity doesn't have a correspondingTVSeason
entity in the feed, take the following steps to provide thepartOfSeason.@id
andpartOfSeason.seasonNumber
properties for theTVEpisode
entity:- Take its
partofSeries.@id
and attach a placeholder query field (for example, ?season1) to create a uniquepartOfSeason.@id
(for example, http://www.example.com/my_favorite_tv_show?season1). - Set
partOfSeason.seasonNumber
to 1.
partOfSeason.@id
for the correspondingTVSeason
entity or replace this placeholderpartOfSeason.@id
with the actual@id
of theTVSeason
entity.- Take its
Example
TVSeries
My Favorite TV Show
{
"@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
My Favorite TV Show (season 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
Episode 3 of My Favorite TV Show (season 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":{ … },
...
}
Đài
If you're a radio provider, you need to add the RadioBroadcastService
entity type in your media catalog feed. You can find the definitions for these entities in the Understand the available entity types section by filtering for this type.
Identify the relationships
Since there is only one entity type for such integrations, while there are no explicit relationships that need to be established, ensure that you collect the following information for the RadioBroadcastService
entities:
description
: The description of the radio station.broadcastDisplayName
: The display name of the radio station.areaServed
: The area where the radio station is available.callSign
: The official government-issued callsign of the radio station. For North America radio stations, this property is required.broadcastFrequency
: The frequency specification of the radio station.- For terrestrial AM/FM radio stations, this property is required.
- For online streaming-only content, the value is set to
INTERNET_STREAM
.
broadcastAffiliateOf
: The network of which this radio station provides programming. If the radio station is not part of any affiliation, this property is not required.broadcaster
: The organization who owns and operates the radio station.parentService
: The parent radio station. If the radio station is a repeater or translator of another radio station, this property is required.
Example
{
"@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": { … },
…
}
Âm nhạc
If you're a music provider, you need to add the MusicGroup
, MusicAlbum
, and MusicRecording
entity types in your media catalog feed. You can find the definitions for these entities in the Understand the available entity types section by filtering for these types.
MusicGroup
, MusicAlbum
, and MusicRecording
let your app or platform play more content from a playlist (MusicPlaylist
) once all the content from the seed entity is played. Check out the following scenario:
- A
MusicAlbum
entity contains a list of songs from Album XYZ (a seed entity). - A
MusicPlaylist
entity contains a playlist of songs that are similar to the songs from Album XYZ. - The
MusicAlbum
entity includes theMusicPlaylist
entity as an Entity-seeded Action.
In this setup, once all the songs from Album XYZ are played, your app can continue to play songs from the playlist provided by the MusicPlaylist
entity.
Entity Action and Entity-seeded Action
Listen Actions support two types of Actions:
- Entity Action: Plays a specific artist, album, or song (a seed entity). It includes
MusicGroup
,MusicAlbum
,MusicRecording
. - Entity-seeded Action: Plays content similar to the seed entity. It includes
MusicPlaylist
.- After completing an Entity Action, your app or platform may initiate an Entity-seeded Action.
- An Entity-seeded Action can include playback of the content from the seed entity.
We recommend you include an Entity-seeded Action in every Entity Action.
Identify the relationships
- For
MusicGroup
, if you provide an Entity-seeded Action, identify@id
andname
of itsMusicPlaylist
. - For
MusicAlbum
andMusicRecording
, you need to identify whichMusicGroup
they belong to.- Identify
@id
andname
of itsMusicGroup
. - If you provide an Entity-seeded Action, identify
@id
andname
of itsMusicPlaylist
.
- Identify
- For
MusicPlaylist
,- If applicable, identify
genre
that best represents the content in the playlist. - If the playlist is hand curated, identify
numTracks
.- The absence of
numTracks
tells Google that the playlist is an auto-generated, endless playlist.
- The absence of
- If applicable, identify
Example
MusicGroup
- Artist: My Favorite Artist
{
"@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: My Favorite Album
- Artist: My Favorite Artist
{
"@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
- Song: My Favorite Song
- Artist: My Favorite Artist
{
"@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
- A custom playlist: "Top Pop Songs of the 2010s"
{
"@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":{ … },
...
}
Truyền hình trực tuyến
Nếu là nhà cung cấp dịch vụ Truyền hình trực tuyến, bạn cần thêm các loại thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
trong nguồn cấp dữ liệu danh mục nội dung đa phương tiện để đại diện cho nhóm kênh của bạn. Bạn cũng có thể cần cung cấp các thực thể BroadcastEvent
, TVSeries
, TVEpisode
, Movie
và SportsEvent
để đại diện cho EPG (hướng dẫn lập trình dành cho đại cử tri) được liên kết. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc theo các loại này. Để xem nội dung giải thích chi tiết hơn, bạn có thể truy cập vào trang Kênh truyền hình trực tuyến.
Mối quan hệ giữa các thực thể đại diện cho kênh truyền hình trực tuyến
Hình dưới đây cho thấy mối liên hệ giữa các thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
:
- Thực thể
Organization
(toán tử) đại diện cho nhà cung cấp nguồn cấp dữ liệu và tổ chức mẹ của dịch vụCableOrSatelliteService
được kết nối bằng thuộc tínhprovider
trên thực thểCableOrSatelliteService
. - Các thực thể
Organization
tương ứng với các thực thểBroadcastService
được kết nối bằng cách sử dụng thuộc tínhbroadcastAffiliateOf
trên thực thểBroadcastService
. - Các thực thể
TelevisionChannel
kết nối với thực thểCableOrSatelliteService
đại diện cho nhóm mà thực thể đó thuộc về bằng cách sử dụng thuộc tínhinBroadcastLineup
. - Các thực thể
TelevisionChannel
kết nối với thực thểBroadcastService
. Thực thể này có khả năng lập trình do kênh này cung cấp bằng thuộc tínhprovidesBroadcastService
.
Bạn nên xem trang khái niệm về Kênh truyền hình trực tuyến để xem ví dụ cụ thể về cách thiết lập mối quan hệ giữa các thực thể BroadcastService và Tổ chức.
Mối quan hệ giữa các kênh và hướng dẫn lập trình (EPG)
Hình dưới đây cho thấy cách thực thể BroadcastEvent
liên kết với các thực thể còn lại trong nguồn cấp dữ liệu.
- Các thực thể
BroadcastEvent
đại diện cho hướng dẫn lập trình (EPG) củaBroadcastService
, được kết nối với các thực thểBroadcastService
bằng cách sử dụng thuộc tínhpublishedOn
trên thực thểBroadcastEvent
. - Các thực thể
BroadcastEvent
cũng có thể được kết nối với các thực thểTVEpisode
,TVSeries
,Movie
cấp cao nhất bằng thuộc tínhworkPerformed
. - Bạn cũng có thể kết nối các thực thể
BroadcastEvent
với các thực thểSportsEvent
cấp cao nhất bằng thuộc tínhbroadcastOfEvent
. - Đối với các sự kiện không có kênh được phát trực tuyến, các thực thể
BroadcastEvent
kết nối với thực thể đại diện cho sự kiện trực tiếp bằng cách sử dụng thuộc tínhworkPerformed
hoặcbroadcastOfEvent
tuỳ thuộc vào nội dung đang được phát trực tiếp. Trong những trường hợp như vậy, thuộc tínhpublishedOn
là không bắt buộc vì không bắt buộc phải kết nối với kênh.
Ví dụ
Phần sau đây cung cấp các ví dụ và đoạn mã cho các trường hợp sử dụng Watch Action.
Nhà cung cấp dịch vụ truyền hình quốc gia trên Internet
Tổ chức
Một nhà cung cấp dịch vụ Truyền hình có giao thức Internet hư cấu, ExampleTV Digital Service (Organization
) cung cấp dịch vụ Truyền hình trực tuyến trên Internet với hai kênh sau: ExampleTV-Movie (Organization
) và 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
Hai thực thể BroadcastService
này cung cấp thông tin chi tiết về các đường liên kết sâu cũng như yêu cầu về quyền truy cập đối với các kênh hư cấu ExampleTV-Movie và 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
CableOrSatelliteService
này mô tả nhà cung cấp dịch vụ Dịch vụ kỹ thuật số ExampleTV có phạm vi quốc gia:
{
"@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
Các thực thể TelevisionChannel
này cho biết rằng IPTV ExampleTV Digital Service (Dịch vụ kỹ thuật số ExampleTV) có chương trình ExampleTV Movie trên kênh ExTV-Movie
và chương trình ExampleTV hài trên kênh 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"
}
}
Hãy tham khảo phần ví dụ về Truyền hình trực tuyến để biết thêm ví dụ.
Phát sóng một bộ phim trên một kênh truyền hình
Một bộ phim được phát sóng trên mạng truyền hình Example TV (BroadcastService
) từ 5 giờ chiều đến 7 giờ tối ngày 12 tháng 7 năm 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"
}
]
}
}
}
Phim
{
"@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"
}
]
}
Hãy xem phần Ví dụ về Sự kiện truyền hình trực tuyến để biết thêm ví dụ.
Trận đấu thể thao trực tiếp được phát trực tuyến
Sự kiện phát sóng
{
"@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"
}
}
Sự kiện thể thao
{
"@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"
}
]
}
Hãy xem phần Ví dụ về thể thao để có thêm ví dụ.