Page Summary
-
A SportsEvent entity represents a sports game or a full replay of a sports game.
-
Short form content, clips, and shoulder content are not modeled as a SportsEvent.
-
Modeling a SportsEvent can vary based on whether it's part of a Video on demand catalog, live TV catalog streaming online, or live TV catalog streaming online on a channel.
-
Specific entities like BroadcastEvent, Broadcast, BroadcastService, Organization, TelevisionChannel, and CableOrSatelliteService are required depending on the use case for modeling SportsEvents in live TV contexts.
-
Deep links for SportsEvents in a Video on demand catalog should be provided on the SportsEvent entity, while deep links for live broadcasts without a channel should be on the BroadcastEvent entity, and deep links for live broadcasts on a channel should be on the BroadcastService entity.
Definition
A SportsEvent
is an entity type representing a sports game or a full
replay of a sports game.
Any short form or clip content or shoulder content. Here's the list:
- Random recap or replay short clips
- Previews of the game
- Highlights of the game
- Game bloopers
- Player interview clips
- Behind the scene videos
- Game reviews (user generated or otherwise)
- Random short clips from the game
Common Use-cases for SportsEvents
| S.No. | Description | Entities Required |
|---|---|---|
|
Case 1
|
I need to model a SportsEvent
that's part of my Video on
demand catalog. |
SportsEvent
representing the game. |
|
Case 2
|
I need to model a The game streams over the internet and is not attached to any channel. |
|
|
Case 3
|
I need to model a SportsEvent that's part of my live TV catalog and is streamed online on a channel. | |
|
Case 4
|
Combinations of the preceding three cases. | If you combine a subset of the earlier use-cases, then you must provide the entity types in the corresponding "Entities required" column. |
Best practices and insights into a few checks that we do
I need to model a SportsEvent
that's part of my Video on demand
catalog.
Entities Required
-
SportsEventrepresenting the game
Modeling guidelines
The deep link to the game must be provided on the SportsEvent entity using the SportsEvent.potentialAction property.
Quality checks to perform
- Set the
SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStartsat least 14 days before theSportsEvent.startDate. The intention is not to mandate the provision of sports event data 14 days in advance; the event data can be delivered later. However, the availabilityStarts value must be set at least 14 days prior to the event. - Set the
SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEndsafter theSportsEvent.endDate.
I need to model a SportsEvent
that's part of my live
TV catalog and streams online.
The game streams over the internet and is not attached to any channel.
Entities Required
-
SportsEventrepresenting the game -
BroadcastEventrepresenting the airing of the game
Modeling guidelines
Sub-case 1: The game is only available live (and not as part of the Video on demand catalog)
- The
BroadcastEvententity must be provided to share the schedule of the broadcast. - The deep link to the game must be provided on the
BroadcastEvententity using theBroadcastEvent.potentialActionproperty. - Since the game is only available to view live, the
SportsEvententity must not have any deep links. That is, theSportsEvent.potentialActionmust not be provided. -
BroadcastEvent.broadcastOfEventmust be provided because the game is not tied to any channel broadcast.
Sub-case 2: The game is available live and as part of the Video on demand catalog (this could happen when a game replay is being broadcast)
- The
BroadcastEvententity must be provided to share the schedule of the broadcast. - The deep link to the game must be provided on the
BroadcastEvententity using theBroadcastEvent.potentialActionproperty. - Since the game is available to view live as part of the Video on
demand catalog, the
SportsEvententity must also have a deep link. TheSportsEvent.potentialActionmust be provided to redirect the user to the Video on demand catalog. -
BroadcastEvent.publishedOnmust not be provided because the game is not tied to any channel broadcast.
Quality checks to perform
- Set the
BroadcastEvent.isLiveBroadcastproperty totruewhen the game is actually live. Don't set the property totruefor a game replay. - For
BroadcastEventsthat aren't live,BroadcastEvent.startDateusually can't be earlier than the actualSportsEventstartDate. -
BroadcastEventsshouldn't have apublishedOnproperty because the broadcast streams on the internet and doesn't attach to a channel.
I need to model a SportsEvent
that's part of my live
TV catalog and streams online on a channel.
Entities Required
-
SportsEventthat represents the game. -
BroadcastEventthat represents the airing of the game. -
BroadcastService,Organization,TelevisionChannel,CableOrSatelliteServiceentities representing the channel and the lineup.
Modeling guidelines
Sub-case 1: The game is only available live (and not as part of the Video on demand catalog)
- Share the schedule of the broadcast. To do so, provide the
BroadcastEvententity. - Represent the channel and the provider lineup. To do so, provide
the
BroadcastService,Organization,TelevisionChannel, andCableOrSatelliteServiceentities. - Provide the
BroadcastServicedeep link. Represent it with theBroadcastService.potentialActionproperty. - Don't provide the
BroadcastEvent.potentialActionproperty. - Since the game is only available to view Live, the
SportsEvententity must not have any deep link. For example, don't provideSportsEvent.potentialAction. - Provide
BroadcastEvent.publishedOnand point it to theBroadcastServiceentity representing the channel on which the Broadcast will happen.
Sub-case 2: The game is available live and as part of the Video on demand catalog (this could happen when a game replay is being broadcast)
- Provide the
BroadcastEvententity to share the schedule of the broadcast. - Provide the
BroadcastService,Organization,TelevisionChannel, andCableOrSatelliteServiceentities representing the channel and the provider lineup. - Provide the
BroadcastServicedeep link to the channel on which the game broadcast will happen, represented by theBroadcastService.potentialActionproperty. - Don't provide the
BroadcastEvent.potentialActionproperty. - Since the game is available to view live and as part of the Video
on demand catalog, the
SportsEvententity must also have a deep link. For example,SportsEvent.potentialActioncan be provided that redirects the user to the Video on demand catalog. - Provide
BroadcastEvent.publishedOnand point it to theBroadcastServiceentity representing the channel on which the Broadcast will happen.
Quality checks to perform
- Set the
BroadcastEvent.isLiveBroadcastproperty totruewhen the game is actually live. Don't set the property totruefor a game replay. - For
BroadcastEventsthat aren't live,BroadcastEvent.startDateusually can't be earlier than the actualSportsEventstartDate. - Since the game airs on a channel, add a deep link using the
BroadcastService.potentialActionproperty.BroadcastEvententity can't have a deep link in this case.
Examples
Case 1: A sports event that's part of Video on demand catalog
{
"@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 at 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"
:
"2018-09-16T10:00-08:00"
,
"endDate"
:
"2018-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"
}
]
,
"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-01T10:00-08:00"
,
"availabilityEnds"
:
"2019-10-21T10:35:29Z"
,
"requiresSubscription"
:
{
"@type"
:
"MediaSubscription"
,
"name"
:
"Example Package"
,
"commonTier"
:
true
,
"@id"
:
"http://www.example.com/example_package"
},
"eligibleRegion"
:
[
{
"@type"
:
"Country"
,
"name"
:
"US"
}
]
}
}
}
Case 2: A sports event that's part of live TV catalog and is 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 at 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"
:
"2018-09-16T10:00-08:00"
,
"endDate"
:
"2018-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"
}
]
}
Case 3: A sports event that's part of live TV catalog and is streamed online on a channel
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"
,
"publishedOn"
:
{
"@type"
:
"BroadcastService"
,
"@id"
:
"http://example.com/stations/example_tv"
},
"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 at 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"
:
"2018-09-16T10:00-08:00"
,
"endDate"
:
"2018-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"
}
]
}
BroadcastService
, CableOrSatelliteService
, TelevisionChannel
, Organization
entities as defined in Live TV Channel
section under Concepts
How do I handle shoulder content?
- Random recap or replay short clips
- Previews of the game
- Highlights of the game
- Game bloopers
- Player interview clips
- Behind the scene videos
- Game reviews (user generated or otherwise)
- Other random short clips from the game
Sub-case 1: Content is available to stream live on the internet
- Provide the
BroadcastEvententity to share the schedule of the broadcast. - Provide the deep link of the content using the
BroadcastEvent.potentialActionproperty. - Add any associated metadata (to the clip) directly to the
BroadcastEvent. For example, images can be added using theBroadcastEvent.imageproperty. Age ratings can be added using theBroadcastEvent.contentRatingproperty. - Since this content type isn't a
SportsEvent, the feed must not contain aSportsEvententity. As such, thebroadcastOfEventproperty on theBroadcastEventmust not be provided. - Since it's not tied to a channel, don't provide the
publishedOnproperty on theBroadcastEvent.
Sub-case 2: Content is available to stream live on the internet on a channel
- The
BroadcastEvententity must be provided to share the schedule of the broadcast. - The
BroadcastService,Organization,TelevisionChannel,CableOrSatelliteServiceentities must be provided to represent the channel and the provider lineup. - The deep link to the game must simply be the
BroadcastServicedeep link, represented by theBroadcastService.potentialActionproperty, which must be provided. - The
BroadcastEvent.potentialActionproperty must not be provided. - Any associated metadata (to the clip) must be directly added to the
BroadcastEvent. For example, images can be added using theBroadcastEvent.imageproperty. Age ratings can be added using theBroadcastEvent.contentRatingproperty. - Since this content type isn't a
SportsEvent, the feed must not contain aSportsEvententity. As such, thebroadcastOfEventproperty on theBroadcastEventmust not be provided. - Since it's tied to a channel, provide the
publishedOnproperty on theBroadcastEvent.
Given that Video on demand sports shoulder content isn't accepted in the feed today, this is similar to case 2. See the instructions from there.
Commonly Asked Questions
Q: Where can I find the associated specifications for the entities mentioned earlier?
A: You can find the required specifications here.
| Overall documentation | Link |
|---|---|
SportsEvent
|
Link |
BroadcastService
, Organization
, TelevisionChannel
, CableOrSatelliteService
|
Link |
BroadcastEvent
|
Link |
Q: Is there a more detailed document that explains how to model the live TV channels and lineups?
A: Yes, you can find more details in Live TV Channel section under Concepts. Please feel free to request view access if you aren't able to view the document.
Q: Does ViTA support full live games and full game replays as well?
A: ViTA supports metadata on league based full live games and full game replays (in addition to a subset of shoulder content)
-
For partners that already have a functional Media Actions feed with Google or have a Video on demand or live TV offering, Google requires the feed to expand and include the supported
SportsEventtypes as well.- For the short term, the partners can use ViTA for shoulder content ingestion. Support all types of content through the feed should roll out over the long term.
-
For partners that don't have a Video on demand or live TV offering but carry only league based sports and related shoulder content, ViTA is a great option to begin with. Contact your Google representative to learn more about ViTA .

