Watch Actions' common properties

This section provides the details of the common properties of Watch Actions.

Action markup properties

Property Expected type Description
@type Text Required - Always set to WatchAction.
target EntryPoint Required - A target object that provides the mapping of deep links to various Google platforms.
target.@type Text Required - Always set to EntryPoint.
target.urlTemplate URL Required - A deep link that takes users to your app or platform and initiates playback of the content.
target.inLanguage Text Optional - Original language of the series in BCP 47 format.
target.actionPlatform Text Required - The platforms that are mapped to urlTemplate. Media Actions support the following:
  • http://schema.org/DesktopWebPlatform: Search platform on desktop web browsers.
  • http://schema.org/MobileWebPlatform: Search platform on mobile web browsers.
  • http://schema.org/AndroidPlatform: Search and PlayGuide platforms on Android app.
  • http://schema.org/AndroidTVPlatform: Android TV platform on Android TV app.
  • http://schema.org/IOSPlatform: Search platform on iOS app.
  • http://schema.googleapis.com/GoogleVideoCast: Cast and Home platforms on a Chromecast device.
  • http://schema.googleapis.com/GoogleAudioCast: Cast and Home platforms on a Chromecast device (Listen Actions only).
See the Platform types section for requirements.
target.additionalProperty PropertyValue Required if applicable - A list of property-value pairs to represent additional properties of the deep link. This can include the following:
  • contentLanguage: The broadcast language (dub), in BCP 47 format. If the content is dubbed in a different language, this property is required. Use an array for multiple language codes.
  • subtitleLanguage: The languages of subtitles or captions, in BCP 47 format. Use an array for multiple language codes.
  • cameraAngle: The camera angle for the content; for example, "Eye-Level" and "High-Angle". If the content is available in different camera angles, this property is required. Use an array for multiple camera angles.
  • videoFormat: The file format used to store the digital video date; for example, "SD" for standard-definition and "HD" for high-definition. Valid video formats include SD, HD, 2K, 4K and 8K. Use an array for multiple video formats.
See the additionalProperty example.
actionAccessibilityRequirement ActionAccessSpecification Required - An Action access specification object that describes the access requirement of the content. See Action Access Specification Properties.

Check out the following pages for the topics related to these properties:

Action access specification properties

Property Expected type Description
actionAccessibilityRequirement.@type Text Required - Always set to ActionAccessSpecification.
actionAccessibilityRequirement.category Text

Required - An access requirement for the content. For more information, see Paywall type.

If an entity represents a group of content, you need to set category to the least restrictive access requirement of its content. For instance, if a TVSeries has some TVEpisode content set to nologinrequired and a few that are set to subscription, set this TVSeries to nologinrequired.

actionAccessibilityRequirement.availabilityStarts Date

Required - Date after which the action is available, in ISO 8601 format (including timezone).

  • The date can be set in the future.

It is required that the corresponding entity be provided in the feed at least 7 days ahead of its availabilityStarts date. This will enhance the chances of the content showing up on Google surfaces on time.

actionAccessibilityRequirement.availabilityEnds Date Required - Date after which the action is no longer available, in ISO 8601 format (including timezone).
  • Must be equal or greater than 72 hours after availabilityStarts.
  • If the content is always available after it's published, set this date to be 20 years from the current date.

It is required that any updates to the availabilityEnds date be made in the feed at least 7 days before the availabilityEnds date. This will enhance the chances of the content ceasing to appear on Google surfaces on the availabilityEnds date.

actionAccessibilityRequirement.eligibleRegion Country, City, State, GeoShape, or Text Required - Regions where the content is available. Use the special string EARTH if the content is available globally.
actionAccessibilityRequirement.ineligibleRegion Country, City, State, or GeoShape Required if applicable - Regions where the content is restricted. You don’t need to provide this property if the content is available everywhere within eligibleRegion.
actionAccessibilityRequirement.requiresSubscription MediaSubscription

Required if applicable - The details of the subscription that users need in order to access the content. See Media subscription properties.

  • Provide this property if category is subscription or externalSubscription.
actionAccessibilityRequirement.expectsAcceptanceOf Offer Required if the content requires a purchase - The details of the offer associated with the content. Provide the price information for the following cases:
  • One-time purchase content (rental or purchase)
  • Subscription-based content that requires an additional purchase from subscribers (subscription or externalsubscription)
If the price is 0.00 then remove the Offer object entirely and set the category from the ActionAccessSpecification object to free. See Offer properties.

Media subscription properties

Required if actionAccessibilityRequirement.category is subscription or externalSubscription.

Property Expected type Description
requiresSubscription.@type Text Required - Always set to MediaSubscription
requiresSubscription.@id URL Required - The unique ID for the subscription. If the content is accessible via different subscriptions, each subscription must have a unique ID.
requiresSubscription.name Text Required - The name of the subscription. Notice the following:
  • If the content is accessible via different subscriptions, this name needs match the name in your user authentication system. For example, if a user can access the content based on the subscription called Package 1, but the authentication system uses the name PKG1a, use PKG1.
  • For TVE Providers, this is the authenticator name registered with your TVE authenticator. It is a string that uniquely identifies your service name with the TVE Authenticator.
requiresSubscription.sameAs URL The page that describes the subscription.
requiresSubscription.identifier Text Required if category is subscription AND commonTier is false - A unique string for this subscription that represents access to a group of content in your media catalog.
  • Google recommends that you use the following syntax for identifier:
    domain name + colon (:) + access level to content, Examples : example.com:basic, example.com:premium, example.com:sports
  • This property will be the same as your entitlement identifier if you are providing an entitlement API
requiresSubscription.authenticator Organization Required if category is externalsubscription - A container that provides the details of the external provider's authenticator.
requiresSubscription.authenticator.@type Text Required if category is externalsubscription - Always set to Organization.
requiresSubscription.authenticator.name Text Required if category is externalsubscription - The name of the authentication service. For TVE providers, set it to TVE
requiresSubscription.commonTier Boolean Required if applicable - This is required if category is set to subscription. Read more about commonTier in the common tier requirements documentation.

Entitlement API Requirements

An entitlement API is required if actionAccessibilityRequirement.category is subscription or externalSubscription and your subscription offering includes multiple packages or tiers or has add-on support. Don't include this if your subscription is one tiered and gives access to all content in your catalog.

  • Company A has a single subscription offering that gives subscribed users access to all available content: Entitlement Identifier / API is not required
  • Company B has a base subscription that provides access to some content and a premium subscription that provides access to premium content: Entitlement Identifier / API is required
  • Company C has a base subscription that provides access to some content and add on packages that provides access to third party content: Entitlement Identifier / API is required

Check out the following pages for the topics related to these properties:

Offer properties

Property Expected type Description
expectsAcceptanceOf.@type Text Required - Always set to Offer.
expectsAcceptanceOf.price Number Required - The purchase price of content. Price must be a non-zero positive value. For entities of 0.00 price, please specify the category as `free`.
expectsAcceptanceOf.priceCurrency Text Required - The currency of the price in 3-letter ISO 4217 format.
expectsAcceptanceOf.seller Organization The organization that offers the purchase of content.
expectsAcceptanceOf.seller.@type Text Always set to Organization.
expectsAcceptanceOf.seller.name Text The name of the seller.
expectsAcceptanceOf.seller.sameAs Text The URL of a web page that identifies the seller; for example, the seller's homepage.

Check out the following pages for the topics related to these properties:

Identifiers

Media Action feeds accept a variety of identifiers that can help identify an entity in an unambiguous manner. These identifiers can help accelerate the process of reconciling the content in your feed with the content in Google's databases. While most of these identifiers can be added to the feed using the identifier property on various entity types, EIDRs have their own representative property. Both of these are discussed below.

Identifier properties

Property Expected type Description
identifier Text Highly Recommended - An identifier, usually an external one, that unambiguously identifies a given entity. Multiple identifiers are allowed.

This property is available on all Watch Action entity types.

The table below lists down the accepted identifiers and sub-properties of the identifier property. See Identifier/EIDR example in Watch Actions feed examples section.
Property Expected type Description
@type Text Required - Always set to PropertyValue.
propertyID Text Required - We support the following ID types:
  • TMS_ROOT_ID: The Gracenote (TMS) Root ID (for example, 15829).
  • . This is not applicable to the Organization and BroadcastService entities where only TMS_ID should be used.
  • TMS_ID: The Gracenote (TMS) Variant ID (for example, MV000398520000).
  • WIKIDATA_ID: The WikiData ID (for example, Q134773).
  • IMDB_ID: The IMDB ID (for example, tt0109830).
  • OPTA_ID: The OPTA Sports ID.
  • STATS_ID: The STATS Perform ID.
  • VIP_TIMES_ID: The Japan VIPTimes (Nihon Tarento Meikan) ID for Japanese talents.
  • DMA_ID: The US Designated marketing area code, used in GeoShape object.
  • _PARTNER_ID_: This property must contain the string "_PARTNER_ID_", the value must be a unique ID that is used by a service provider, internally or externally, to identify the entity (for example, 12345 or a5c604e2-e9e5-4ff3-b728-245799dc37f1).
value Text Required - The value for the specified ID system.

EIDR properties

EIDR (short for The Entertainment Identifier Registry), is a globally unique identifier system for a broad array of media content, including motion pictures, and television programs. The identification system resolves an identifier to a metadata record that is associated with top-level titles, edits, and more. The following table lists down properties associated with EIDR and their usage.

Property Expected type Description
titleEIDR Text Highly Recommended - An EIDR (Entertainment Identifier Registry) identifier represents, at the most general/abstract level, a work of film or television.

This property is available on TVSeries, TVSeason, TVEpisode, and Movie entity specification pages.

For example, titleEIDR for the motion picture known as "Ghostbusters" is "10.5240/7EC7-228A-510A-053E-CBB8-J".

See Identifier/EIDR example in Watch Actions feed examples section.
editEIDR Text Highly Recommended - An EIDR (Entertainment Identifier Registry) identifier represents a specific edit/edition for a work of film or television.

This property is available on TVEpisode, and Movie entity specification pages.

For example, the motion picture known as "Ghostbusters" whose titleEIDR is "10.5240/7EC7-228A-510A-053E-CBB8-J", has several edits e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3".

titleEIDR property is required when editEIDR is provided.

See Identifier/EIDR example in Watch Actions feed examples section.

Content rating agencies

Use the values in this table for BroadcastService.contentRating, Movie.contentRating and TVSeries.contentRating. The rating agency should be prepended to the rating value. Examples:

  • A movie rated "R" in the US should have a Movie.contentRating value of "MPAA R".
  • A TV series rated "TV-MA" in the US should have a TVSeries.contentRating value of "TVPG TV-MA".

Country TV rating agency Movie rating agency
Albania (AL) Not available Not available
Angola (AO) Not available CCE
Antigua and Barbuda (AG) Not available MPAA
Argentina (AR) INCAA INCAA
Armenia (AM) Not available MKRF/RUSSIA
Aruba (AW) Not available Not available
Australia (AU) ACB TV ACB Movies
Austria (AT) FSK FSK
Azerbaijan (AZ) Not available MKRF/RUSSIA
Bahrain (BH) Not available MPAA
Belarus (BY) Not available MKRF/RUSSIA
Belgium (BE) Not available MPAA
Belize (BZ) Not available Not available
Benin (BJ) Not available CNC
Bolivia (BO) Not available MPAA
Bosnia and Herzegovina (BA) Not available MPAA
Botswana (BW) Not available MPAA
Brazil (BR) CLASSIND CLASSIND
Burkina Faso (BF) Not available CNC
Cambodia (KH) Not available Not available
Canada (CA) CA_TV CHVRS
Cape Verde (CV) Not available CCE
Chile (CL) Not available MPAA
Colombia (CO) Not available MPAA
Costa Rica (CR) Not available MPAA
Croatia (HR) Not available Not available
Cyprus (CY) Not available GRFILM
Czechia (CZ) Not available CZFILM
Denmark (DK) Not available MCCYP
Ecuador (EC) Not available MPAA
Egypt (EG) Not available MPAA
El Salvador (SV) Not available MPAA
Estonia (EE) Not available EEFILM
Fiji (FJ) Not available Not available
Finland (FI) Not available MEKU
France (FR) CSA CSA
Gabon (GA) Not available CNC
Germany (DE) FSK FSK
Greece (GR) ESR GRFILM
Guatemala (GT) Not available MPAA
Haiti (HT) Not available Not available
Honduras (HN) Not available MPAA
Hong Kong (HK) CA FCO
Hungary (HU) Not available MPAA
Iceland (IS) Not available KIJKWIJZER
India (IN) CBFC CBFC
Indonesia (ID) KPI LSF
Ireland (IE) Not available IFCO
Italy (IT) AGCOM AGCOM
Ivory Coast (CI) Not available CNC
Jamaica (JM) Not available MPAA
Japan (JP) NA EIRIN
Jordan (JO) Not available MPAA
Kazakhstan (KZ) Not available MRKF
Korea (KR) KMRB KMRB
Kuwait (KW) Not available MPAA
Kyrgyzstan (KG) Not available MKRF/RUSSIA
Laos (LA) Not available Not available
Latvia (LV) Not available NKCLV
Lebanon (LB) Not available MPAA
Lithuania (LT) Not available Not available
Luxembourg (LU) Not available KIJKWIJZER
Macedonia (MK) Not available MPAA
Malaysia (MY) Not available FCBM
Mali (ML) Not available CNC
Malta (MT) Not available MCCAA
Mauritius (MU) Not available BBFC
Mexico (MX) RTC RTC
Moldova (MD) Not available Not available
Namibia (NA) Not available Not available
Nepal (NP) Not available MPAA
Netherlands (NL) KIJKWIJZER KIJKWIJZER
New Zealand (NZ) BSA OFLC
Nicaragua (NI) Not available MPAA
Niger (NE) Not available CNC
Norway (NO) Not available MEDIETILSYNET
Oman (OM) Not available MPAA
Panama (PA) Not available MPAA
Papua New Guinea (PG) Not available MPAA
Paraguay (PY) Not available MPAA
Peru (PE) Not available MPAA
Philippines (PH) MTRCB MTRCB
Poland (PL) Not available MPAA
Portugal (PT) Not available CCE
Qatar (QA) Not available MPAA
Russia (RU) MKRF/RUSSIA MKRF/RUSSIA
Rwanda (RW) Not available CNC
Saudi Arabia (SA) Not available MPAA
Senegal (SN) Not available MPAA
Singapore (SG) Not available MDA
Slovakia (SK) Not available MPAA
Slovenia (SI) Not available MPAA
South Africa (ZA) FPB FPB
Spain (ES) SETSI ICAA
Sri Lanka (LK) Not available Not available
Sweden (SE) Not available SMSA
Switzerland (CH) FSK FSK
Taiwan (TW) Not available MOCTW
Tajikistan (TJ) Not available MKRF/RUSSIA
Tanzania (TZ) Not available MPAA
Thailand (TH) Not available BFVC
Togo (TG) Not available CNC
Trinidad and Tobago (TT) Not available Not available
Turkey (TR) RTÜK ECBMCT
Turkmenistan (TM) Not available MKRF/RUSSIA
Uganda (UG) Not available MPAA
Ukraine (UA) Not available Not available
United Arab Emirates (AE) Not available MPAA
United Kingdom (GB) BBFC BBFC
United States (US) TV_PG MPAA
Uruguay (UY) Not available MPAA
Uzbekistan (UZ) Not available MKRF/RUSSIA
Venezuela (VE) Not available RESORTEVIOLENCIA
Vietnam (VN) Not available MCST
Zambia (ZM) Not available MPAA
Zimbabwe (ZW) Not available MPAA

GeoShape properties

A GeoShape object contains one of the following data types:

Property Expected type Description
@id URL Required - The geo region's identifier in URI format.
@type Text Required - Always set to GeoShape.
addressCountry Text Required - The two-letter ISO 3166-1 alpha-2 country code.
postalCode Text Optional - List of one or more postal codes and/or FSA (forward sortation area) codes.
identifier PropertyValue Optional - A Designated Market Area (DMA) ID, which is an identifier of a region in the United States where people receive the same television channels and programs.
identifier.@type Text Required - Always set to PropertyValue.
identifier.propertyID Text Required - Always set to DMA_ID.
identifier.value Text Required - The DMA code for the region.

Example of GeoShape object that contains a list of ZIP codes:

{
  "@type": "GeoShape",
  "@id": "http://example.com/area1",
  "addressCountry": "US",
  "postalCode": [
    "94118",
    "94119"
  ]
}

Example of GeoShape object that contains a combination of FSA (forward sortation area) and postal codes:

{
  "@type": "GeoShape",
  "@id": "http://example.com/area2",
  "addressCountry": "CA",
  "postalCode": [
    "1A1",
    "K1A",
    "K1AOB1"
  ]
}

Example of GeoShape object that contains a DMA ID:

{
  "@type": "GeoShape",
  "@id": "http://example.com/area3",
  "addressCountry": "US",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "DMA_ID",
      "value": "501"
    }
  ]
}