Content markup properties of radio stations

This section provides the details of the content markup properties for the RadioBroadcastService entity type. You can also jump to Full Feed Example section to read the complete example.

Specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.googleapis.com", {"@language": "xx"}].
Where "xx" represents the language of the strings in the feed. Each root entity context should have its @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
@type Text Required - Always set to RadioBroadcastService.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static
  • In the form of Unified Resource Identifier (URI)
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
url URL Required - The content's canonical URL, which supplies information regarding the radio station.
url must meet the following requirements:
  • url must be globally unique
  • url must contain a working canonical URL that Google can crawl.
  • url needs to point to a content description page that is not blocked by a paywall.
Note: url is different from the deep link that is used to play the content, which should be supplied via the target object's urlTemplate property instead. .
name Text Required - Official name of the radio station. There should be only one official name per language. For example, "WXKS FM". Use an array to list the names in different languages. See the Multiple regions and languages example.
alternateName Text The alternate name(s) to help users identify this radio station. These should be legitimate alternate names for a station, not keywords for influencing triggering, for keywords, use the keywords property instead. Use an array to list the names in different languages. See the Multiple regions and languages example.
callSign Text Required if applicable - The official government-issued callsign of the radio station. For example, "KQEI-FM". For North American radio stations, this is required. For regions where callsigns are not commonly used, this is optional.
broadcastDisplayName Text Required if applicable - The display name(s) or branding(s) of the radio station. For example “Fake Radio 105”. The value(s) will be used to help users identify this radio station, in their queries in addition to other key information such as callsign and name.
description Text Required - A brief description of the radio station. 300-character limit. Use an array to mark up the description in multiple languages. See the Multiple regions and languages example.
slogan Text Slogan of the radio station. For example, “Google’s #1 Fictional Music Radio Station”
logo ImageObject A logo image of the station. Please provide the highest resolution available. The format should be either JPEG or PNG. Please see ImageObject (logo) section for details and examples.
broadcastFrequency BroadcastFrequencySpecification Required - The frequency specification of the radio station. For terrestrial AM/FM radio stations, this property is required. For online-only streams, the value should be set to string INTERNET_STREAM. Please see the “BroadcastFrequencySpecification (broadcastFrequency)” section for details and examples.
areaServed City, State, Country, or AdministrativeArea Required - The primary geographic area where the radio station is targeted. This may be used to select the most-appropriate station among a network of affiliated, similarly named stations. For example, a nationally broadcast radio service with local affiliates. Suggested format: city, , country. Please see “City, State, Country, AdministrativeArea (areaServed)" section for details and examples.
broadcastAffiliateOf Organization Required if applicable - The affiliate that this radio station has membership of, or, that provides the contents being broadcasted on this radio station. For example, NPR, PRI, PBS. If the radio station is not part of any affiliation, this property is not required. Please see the "Organization (broadcaster or broadcastAffilicateOf)" section for details and examples.
broadcaster Organization Required - The organization who owns and runs the operation of this radio station. Please see the "Organization (broadcaster or broadcastAffilicateOf)" section for details and examples.
parentService RadioBroadcastService Required if applicable - This is only required when the radio station is a repeater or translator. It should represent the original radio station this repeater/translator is relaying. Please see the "RadioBroadcastService (parentService)" section for details and examples.
potentialAction ListenAction Required - The Action to be triggered for users to listen to the radio station. Please see “ListenAction (potentialAction)” section for details.
popularityScore PopularityScoreSpecification A score that Google uses, plus other signals, to determine which media to play for users. This score represents the popularity of the content in relation to other content in your catalog; therefore, the score's scale needs to be consistent across your feeds, among all the entities in your catalog. By default, an entity's popularity score is set to 0.
inLanguage Text The language of the content being broadcast on this radio station, the value should be a language code in BCP 47 format format. This value may be used to fulfill user queries that request contents in specific language. If the station broadcasts in different languages at different times, list just the primary language.
keywords Text A list of keywords associated with the radio station. These keywords may be used to expand the user queries that can trigger this radio station. For example, “news”, “sports”, “rock”.
identifier PropertyValue External or other ID that unambiguously identifies this entity. Multiple identifiers are allowed. See the Identifier properties section for details.
sameAs URL URL of a reference Web page that unambiguously indicates the item's identity. For example, a Wikipedia page for the broadcast service.

Entity-type property references

BroadcastFrequencySpecification (broadcastFrequency)

The BroadcastFrequencySpecification is used to identify the radio station by its frequency. In the case of digital radio, the frequency channel may carry multiple sub channels with different programs, in those cases, the broadcastSubChannel value will be used to locate the target radio station within the frequency channel.

For internet-only radio stations, the BroadcastFrequencySpecification object is not needed, and instead please use string value INTERNET_STREAM.

Property Expected Type Description
@type Text Required - Always set to “BroadcastFrequencySpecification”.
broadcastFrequencyValue Text Required - The digit part of the frequency. For example, “89.3” For DAB stations, this should be the block number. For example, “12A”.
broadcastSignalModulation Text Required - The signal modulation part of the frequency. For example “FM”, “AM”. For DAB stations, use “DAB”.
broadcastSubChannel Text Required if applicable - The subchannel in the case of digital radio. For DAB/DAB+ stations, this value should be the service ID. For example, “HD1”–“HD8” are possible values for HD Radio, and "C8D8" for DAB.

Examples:

FM (HD)

"broadcastFrequency": {
  "@type": "BroadcastFrequencySpecification",
  "broadcastFrequencyValue": "89.3",
  "broadcastSignalModulation": "FM",
  "broadcastSubChannel": "HD1"
},

AM

"broadcastFrequency": {
  "@type": "BroadcastFrequencySpecification",
  "broadcastFrequencyValue": "1010",
  "broadcastSignalModulation": "AM",
},

DAB

"broadcastFrequency": {
  "@type": "BroadcastFrequencySpecification",
  "broadcastFrequencyValue": "12B",
  "broadcastSignalModulation": "DAB",
   "broadcastSubChannel": "C8D8"
},

Internet-Only

"broadcastFrequency": "INTERNET_STREAM",

Organization (broadcaster or broadcastAffilicateOf)

In the RadioBroadcastService specification, the Organization type is used for both broadcaster and broadcastAffiliateOf properties.

Property Expected Type Description
@type Text Required - Always set to “Organization”.
@id URL Required - A globally unique ID for the organization in URI format. The ID should be stable and not change over time. It will be treated as an opaque string and does not have to be a working link.
name Text Required - The name of the organization.
sameAs URL URL to a reference web page that unambiguously identifies the organization. For example, a Wikipedia page for the organization, or the organization’s official website.

Examples:

SINGLE

"broadcaster": {
  "@type": "Organization",
  "@id": "https://www.tjradio.org/broadcasters/billyradio",
  "sameAs": "https://www.billyradio-example.org/",
  "name": "Billy Radio Inc"
},

MULTIPLE OWNERS

"broadcaster": [
  {
    "@type": "Organization",
    "@id": "https://www.tjradio.org/broadcasters/billyradio"
    "name": "Billy Radio Inc"
    "sameAs": "https://www.billyradio-example.org/"
  },
  {
    "@type": "Organization",
    "@id": "https://www.tjradio.org/broadcasters/Gmusic"
    "name": "Gmusic",
  }
],

MULTIPLE NETWORKS

"broadcastAffiliateOf": [
  {
    "@type": "Organization",
    "@id": "https://www.tjradio.org/networks/npr",
    "name": "NPR",
    "sameAs": "https://en.wikipedia.org/wiki/NPR"
  },
  {
    "@type": "Organization",
    "@id": "https://www.tjradio.org/networks/pri",
    "name": "PRI",
    "sameAs": "https://www.pri.org/"
  }
],

RadioBroadcastService (parentService)

The parentService is used for a repeater or translator station to indicate its parent station.

Property Expected Type Description
@type Text Required - Always set to “RadioBroadcastService”.
@id URL Required - A globally unique ID in URL format to represent this parent radio station. If the parent radio station is also included in your feed as a separate entity, please ensure both IDs are the same.
name Text Required - The name of the parent radio station.
sameAs URL URL to a reference web page that unambiguously identifies the parent station. For example, a Wikipedia page for the parent station.

Example:

  "parentService": {
    "@type": "RadioBroadcastService",
    "@id": "https://www.tjradio.org/stations?id=10",
    "name": "GQED-FM",
    "sameAs": "https://en.vikibedia.org/wiki/GQED-FM"
  },

The logo property is used to provide the logo image for the given radio station. These images will be used to display alongside content (deeplink) for a given radio entity.

Property Expected Type Description
@type Text Required - Always set to “ImageObject”.
height Integer Height of the image in pixels.
width Integer Width of the image in pixels.
contentUrl URL Required - A URL where the image can be fetched.
regionsAllowed Country The countries where the media is allowed.
If not specified, then it's assumed the image is allowed to be displayed in all locales.
To submit different images per region, add multiple ImageObjects, each with its own set of countries and a corresponding image url.

Country (logo.regionsAllowed)

Property Expected Type Description
@type Text Always set to “Country”.
name Text The ISO 3166-1 alpha-2. For example “GB”, “US”.

Examples:

UNIVERSAL LOGO

"logo": {
  "@type": "ImageObject",
  "height": 100,
  "width": 800,
  "contentUrl": "http://www.foo.com/img/67890.jpg",
},

LOGO BY COUNTRY

"logo": [
  {
    "@type": "ImageObject",
    "height": 100,
    "width": 800,
    "contentUrl": "http://www.foo.com/img/67890.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "US"
      },
      {
        "@type": "Country",
        "name": "GB"
      }
    ]
  },
  {
    "@type": "ImageObject",
    "height": 100,
    "width": 800,
    "contentUrl": "http://www.foo.com/img/12345.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "IN"
      },
      {
        "@type": "Country",
        "name": "PK"
      }
    ]
  },
],

PropertyValue (identifier)

If you are using some third party ID system for your content, for example the Gracenote (TMS) ID, these ID can be provided via the identifier property to improve the accuracy of Google’s reconciliation of your radio stations.

Property Expected Type Description
@type Text Required - Always set to “PropertyValue”.
propertyID Text Required - The type of the ID being specified. Currently we support the following ID types:
  • TMS_ROOT_ID: The Gracenote (TMS) Root ID (for example, 15829)
  • TMS_ID: The Gracenote (TMS) Variant ID (for example, MV000398520000)
  • WIKIDATA_ID: The WikiData ID (for example, Q795598)
value Text URL to a reference web page that unambiguously identifies the parent station. For example, a Wikipedia page for the parent station.

Example:

  "identifier": {
    "@type": "PropertyValue",
    "propertyID": "WIKIDATA_ID",
    "value": "Q795598"
  },

PopularityScoreSpecification (popularityScore)

Property Expected Type Description
@type Text Required - Always set to “PopularityScoreSpecification”.
value Number Required - A positive numeric value to be compared with other entities from your catalog. The bigger number represents higher popularity.
eligibleRegion Country One or list of the region(s) this popularity score is applicable for.
If the popularity score is global applicable, simply use “earth” as the text value.
If specific region(s) need to be listed, please use Country type.
If this property is left out, the eligibleRegion defaults to “earth”.

Country (popularityScore.eligibleRegion)

Property Expected Type Description
@type Text Required - Always set to “Country”.
name Text Required - The ISO 3166-1 alpha-2. For example “GB”, “US”.

Examples:

GLOBAL POPULARITY

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 4.3,
  "eligibleRegion": "Earth"
},

COUNTRY-SPECIFIC

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 2,
  "eligibleRegion": {
    "@type": "Country",
    "name": "US"
  }
},

City, State, Country, AdministrativeArea (areaServed)

areaServed helps selecting the most-appropriate station based on the user’s location information. For example, when user queries “a radio station near me”, or “local news radio”. Please note, this differs from eligibleRegion which specifies the boundary where users are permitted to listen to the station.

Property Expected Type Description
@type Text Required - Always set to one of “City” ,“State”, “Country” or "AdministrativeArea".
name Text Required - The name of the city/state/country/area. Please provide the most granualar region. Also, the containing chain needs to be provided. Use the following format: "city, state, country".

Examples:

CITY

"areaServed": {
  "@type": "City",
  "name": "North Highlands, CA, US"
},

STATE

"areaServed": [
  {
    "@type": "State",
    "name": "California, US"
  },
  {
    "@type": "State",
    "name": "Nevada, US"
  }
],

COUNTRY

"areaServed": [
  {
    "@type": "AdministrativeArea",
    "name": "Cape Cod, Massachusetts, US"
  },
  {
    "@type": "State",
    "name": "Connecticut, US"
  }
],

ListenAction (potentialAction)

The ListenAction property defines your deeplinks for playback and the criteria for the users (e.g., geo/chronal/login/subscription status) to access the content.

Property Expected Type Description
@type Text Required - Always set to "ListenAction”.
target EntryPoint Required - The specifications of your deeplink, including the supported platform information. There can be multiple EntryPoint to define different deeplinks for different platform sets.
actionAccessibilityRequirement ActionAccessSpecification Required - The definition of user requirements to access this entity. If multiple ActionAccessSpecification presents, a user matching ANY of the specification criteria would be able to access the content.

EntryPoint (potentialAction.target)

Property Expected Type Description
@type Text Required - Always set to “EntryPoint”.
urlTemplate Text Required - The link that will be used to initiate playback of your content.
actionPlatform Text Required - The platform(s) that this deeplink is valid for. The possible values are:
  • http://schema.org/DesktopWebPlatform
  • http://schema.org/MobileWebPlatform
  • http://schema.org/AndroidPlatform
  • http://schema.org/AndroidTVPlatform
  • http://schema.org/IOSPlatform
  • http://schema.googleapis.com/GoogleAudioCast
  • http://schema.googleapis.com/GoogleVideoCast

ActionAccessSpecification (potentialAction.actionAccessibilityRequirement)

Property Expected Type Description
@type Text Required - Always set to “ActionAccessSpecification”.
category Text Required - The type of access requirement. This needs to be one of the following values:
  • “nologinrequired” : The action is available to the user with no purchase or login to access content.
  • “free”: The action is available with no purchase or paid subscription required of the user. The action does require a user to login.
  • “subscription”: The action is included with a paid subscription to your service.
availabilityStarts DateTime The start time of the availability window. This can be used to control the exact time when this content can be exposed to users.
availabilityEnds DateTime The end time of the availability window. This can be used to control the exact time when this content should stop being exposed to users.
eligibleRegion Country The country that is eligible for this Offer. This can be used to control the country/region where this content should or should not be available.
requiresSubscription MediaSubscriptioin The subscription package required to access this content. If your service offers multiple subscription package, this property is required; if your service is free, or there is only single tier of subscription, you can skip this property.
Country (potentialAction.actionAccessibilityRequirement.eligibleRegion)
Property Expected Type Description
@type Text Required - Always set to “Country”.
name Text Required - The ISO 3166-1 Alpha 2 country code.
MediaSubscription (potentialAction.actionAccessibilityRequirement.requiresSubscription)
Property Expected Type Description
@type Text Required - Always set to “MediaSubscription”.
@id Text Required - A globally unique ID for the subscription package in URI format. The ID should be stable and not change over time. It will be treated as an opaque string and does not have to be a working link.
name Text Required - The name of the subscription package. For example “G-Radio Premium”, “A-Radio Basic”
expectsAcceptanceOf Offer Offer associated with purchasing the Media Subscription. This is used to express the price of the subscription.
Offer (potentialAction.actionAccessibilityRequirement.requiresSubscription.expectsAcceptanceOf)
Property Expected Type Description
@type Text Required - Always set to “Offer”.
price Number Required - The price of the subscription
priceCurrency Text Required - The currency (in 3-letter ISO 4217 format) of the price.
seller Organization The organization which offers the subscription/purchase of the action. Please use the same schema as described in the Organization (broadcaster or broadcastAffilicateOf) section.

Examples:

UNIVERSAL DEEPLINK

"potentialAction": {
    "@type": "ListenAction",
    "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://www.tjradio.org/?streamStationId=170",
        "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/GoogleAudioCast",
            "http://schema.googleapis.com/GoogleVideoCast"
        ]
    },
    "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "NoLoginRequired",
        "availabilityStarts": "2018-04-01T11:01:00-04:00",
        "availabilityEnds": "2018-06-30T23:59:00-04:00",
        "eligibleRegion": {
            "@type": "Country",
            "name": "US"
        }
    }
},

PLATFORM SPECIFIC

"potentialAction": {
    "@type": "ListenAction",
    "target": [
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjradio.org/?streamStationId=170",
            "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/MobileWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/AndroidTVPlatform",
                "http://schema.org/IOSPlatform"
            ]
        },
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjradio.org/castlink?streamStationId=170",
            "actionPlatform": [
                "http://schema.googleapis.com/GoogleAudioCast",
                "http://schema.googleapis.com/GoogleVideoCast"
            ]
        }
    ],
    "actionAccessibilityRequirement": [
        {
            "@type": "ActionAccessSpecification",
            "category": "NoLoginRequired",
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": [
                {
                    "@type": "Country",
                    "name": "IN"
                },
                {
                    "@type": "Country",
                    "name": "GB"
                }
            ]
        },
        {
            "@type": "ActionAccessSpecification",
            "category": "Subscription",
            "requiresSubscription": {
                "@type": "MediaSubscription",
                "@id": "http://www.example.com/packages/basic-pack",
                "name": "G-Radio Basic Pack",
                "expectsAcceptanceOf": {
                    "@type": "Offer",
                    "price": 8.99,
                    "priceCurrency": "USD"
                }
            },
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": {
                "@type": "Country",
                "name": "US"
            }
        }
    ]
},

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