# Content markup properties of MediaService (Required)

This section provides the details of the content markup properties for the
`MediaService` entity type which captures the configuration for your Media Action
integration

> [!IMPORTANT]
> **Key Point:** The MediaService entity should be enclosed within the `dataFeedElement` array. See example [below](https://developers.google.com/actions/media/reference/data-specification/mediaservice-specification#mediaservice-example)

> [!IMPORTANT]
> **Key Point:** Every Media Actions feed submission must include one and only one `MediaService` entity for each deeplink provider covered in the feed.

## Specification table

| Property | Expected Type | Description |
|---|---|---|
| `@type` | [Text](http://schema.org/Text) | **Required** - Always set to `MediaService`. |
| `@context` | [Text](http://schema.org/Text) | **Required** - Always set to `["http://schema.org", {"@language": "xx"}]`. |
| `@id` | [URL](https://schema.org/URL) | **Required** - A unique identifier for your brand; for example, `https://example.com`. The identifier must adhere to the following requirements: - It's globally unique across your catalog. - It's static. The ID must be stable and not change over time. - It's in the Unified Resource Identifier (URI) format. - Its domain must be owned by your organization. |
| `name` | [Text](http://schema.org/Text) | **Required** - The name of the provider. If your brand has any locale-specific names, list them in an array. For an example of this, refer to the [MediaService example](https://developers.google.com/actions/media/reference/data-specification/mediaservice-specification#mediaservice-example). |
| `brandIcon` | [ImageObject](https://schema.org/ImageObject) | **Required for all Watch Actions and Listen Actions** - The image file of your brand icon, repeated, for each size. On the Watch/Listen Action result, Google associates your content's deep links to your brand icon. Your brand icon image file must adhere to the following requirements: - It's a PNG file. - Its background is transparent. - Its shape is round in nature. - Make sure the images are anti-aliased and not distorted/pixelated This property must be repeated, because you must provide five images, one for each of the following dimensions: - 16x16 pixels, with a file no greater than 1 KB - 20x20 pixels, with a file no greater than 1 KB - 40x40 pixels, with a file no greater than 1 KB - 44x44 pixels, with a file no greater than 1 KB - 112x112 pixels, with a file no greater than 3 KB **Additional requirement for GoogleTV integrations** - These images of your brand icon will be displayed at the top of the Programming Guide, on Watch Action buttons and in Google TV settings. Provide three icons meeting the following requirements: - One square icon in PNG file format. (with a resolution of 512x512 px, 1:1 aspect ratio) - One white wordmark icon in PNG file format. (highest resolution available, no preference for aspect ratio) - One colored wordmark icon in PNG file format. (highest resolution available, no preference for aspect ratio) Make sure the images are anti-aliased and not distorted/pixelated. |
| `brandIcon.contentURL` | [URL](https://schema.org/URL) | **Required** - The URL of the image. |
| `brandIcon.height` | [Number](https://schema.org/Number) | **Required** - The height of the image, in pixels. |
| `brandIcon.width` | [Number](https://schema.org/Number) | **Required** - The width of the image, in pixels. |
| `brandIcon.additionalProperty` | [PropertyValue](https://schema.org/PropertyValue) | **Required** - The additional property used to describe the image's type and defines its intended uses. |
| `brandIcon.additionalProperty.@type` | [Text](http://schema.org/Text) | **Required** - Set to `PropertyValue`. |
| `brandIcon.additionalProperty.name` | [Text](http://schema.org/Text) | **Required** - Set to `contentAttributes`. |
| `brandIcon.additionalProperty.value` | [Text](http://schema.org/Text) | **Required** - The background suitability. To be valid, set to at least one of the following values: - **`forDarkBackground`:** An image, typically a transparent icon, that's suitable for use on a dark background. - **`forLightBackground`:** An image, typically a transparent icon, that's suitable for use on a light background. |
| `application` | [SotfwareApplication](https://schema.org/SoftwareApplication) | **Required if iOS, Android, Cast or AndroidTV applications are provided** - The list of your brand applications across the following: - iOS - Android - Cast - AndroidTV |
| `application.@type` | [Text](http://schema.org/Text) | **Required** - Always set to `SoftwareApplication`. |
| `application.operatingSystem` | [Text](http://schema.org/Text) | **Required** - Set to one of the following: - `iOS` - `Android` - `Cast` - `AndroidTV` |
| `application.downloadUrl` | [URL](https://schema.org/URL) | **Required if applicable** - For the Android, AndroidTV, and iOS platforms, you must specify this as the link to your application in the App Store and Play Store. For all other platforms, this isn't a required property. |
| `application.installUrl` | [URL](https://schema.org/URL) | **Required if applicable** - If the provider offers media playback through an AndroidTV app, you must specify this as the link to the AndroidTV APK file. If the provider doesn't offer AndroidTV playback, this isn't a required property. |
| `application.identifier` | [Text](http://schema.org/Text) | **Required if applicable** - For platforms that correspond to one of the following values, set it accordingly. This property is otherwise not required: - **iOS:** The App Store app identifier. For example, `967093455`. - **Android:** The Play Store Android package name. For example, `com.abc.media.android`. - **Cast:** The Cast app ID. For example, `ACDA4FDE`. - **AndroidTV:** The Play Store AndroidTV package name. For example, `com.abc.media.atv.android`. |
| `parentOrganization` | [Organization](https://schema.org/Organization) | **Required** - The parent provider of the service. |
| `parentOrganization.@type` | [Text](http://schema.org/Text) | **Required** - Always set to `Organization`. |
| `parentOrganization.name` | [Text](http://schema.org/Text) | **Required** - The organization name. |
| `subscriptions` | [MediaSubscription](https://schema.org/MediaSubscription) | **Optional** - The list of available `MediaSubscriptions` supported by the watch provider. |
| `baseSubscriptionTier` | [MediaSubscription](https://schema.org/MediaSubscription) | **Required if applicable** - If a watch provider and the provider has a base subscription package, you must set this to the subscription instance for content available to all subscribers. This property is otherwise not required. |
| `userRequestsFulfilledBy` | [Text](http://schema.org/Text) | **Optional** - Set to the either of the following parties who fulfills the user requests: - **`Google`:** All requests are fulfilled by Google. Essentially, Google returns the deep link for the requested content. - **`Provider`:** All requests are fulfilled by the content provider--the Cloud Provider. Essentially, the provider returns the deep link for the requested content or initiates the playback directly on their devices. By defaults this property is set to `Google`. |
| `mediaOffered` | [Text](http://schema.org/Text) | **Required** - Set to one of the following, which correspond to the types of content in your catalog that are included in the feed: - `["VoD"]` - The provider only includes Video on Demand (VoD) content in the feed. VoD content includes [Movies](https://developers.google.com/actions/media/reference/data-specification/movies-specification) and [TV Shows](https://developers.google.com/actions/media/reference/data-specification/tv-shows-specification). - `["LiveTV"]` - The provider only includes Live TV, which includes [Channels](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastservice-specification) and [BroadcastEvent](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastevent-specification) content, in the feed. - `["VoD", "LiveTV"]` - The provider includes both VoD and Live TV content in the feed. - `["Music"]` - The provider only includes music entities in the feed. This includes [Album, Artists, Songs](https://developers.google.com/actions/media/reference/data-specification/artists-albums-songs-specification) and [Playlist](https://developers.google.com/actions/media/reference/data-specification/musicmixes-specification) content. - `["Radio"]` - The provider only includes [Radio](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification) entities in the feed. - `["Music", "Radio"]` - The provider includes music and radio entities in the feed. This includes [Album, Artists, Songs](https://developers.google.com/actions/media/reference/data-specification/artists-albums-songs-specification), [Playlist](https://developers.google.com/actions/media/reference/data-specification/musicmixes-specification), and [Radio Station](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification) content. > [!NOTE] > **Note:** Validation tools use this to apply the appropriate validations. |

## MediaService example

```
{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {
      "@context": [
        "http://schema.org",
        {
          "@language": "en"
        }
      ],
      "@type": "MediaService",
      "@id": "https://abcmedia.com",
      "name": [
        {
          "@language": "en-us",
          "@value": "ABC Media"
        },
        {
          "@language": "en-gb",
          "@value": "ABC"
        }
      ],
      "userRequestsFulfilledBy": "Google",
      "mediaOffered": [
        "LiveTV",
        "VoD"
      ],
      "brandIcon": [
        {
          "@type": "ImageObject",
          "contentURL": "https://abcmedia.com/path_to_logo_16x16.png",
          "width": 16,
          "height": 16,
          "additionalProperty": [
            {
              "@type": "PropertyValue",
              "name": "contentAttributes",
              "value": [
                "forDarkBackground",
                "forLightBackground"
              ]
            }
          ]
        },
        {
          "@type": "ImageObject",
          "contentURL": "https://abcmedia.com/path_to_logo_20x20.png",
          "width": 20,
          "height": 20,
          "additionalProperty": [
            {
              "@type": "PropertyValue",
              "name": "contentAttributes",
              "value": [
                "forDarkBackground",
                "forLightBackground"
              ]
            }
          ]
        },
        {
          "@type": "ImageObject",
          "contentURL": "https://abcmedia.com/path_to_logo_40x40.png",
          "width": 40,
          "height": 40,
          "additionalProperty": [
            {
              "@type": "PropertyValue",
              "name": "contentAttributes",
              "value": [
                "forDarkBackground",
                "forLightBackground"
              ]
            }
          ]
        },
        {
          "@type": "ImageObject",
          "contentURL": "https://abcmedia.com/path_to_logo_44x44.png",
          "width": 44,
          "height": 44,
          "additionalProperty": [
            {
              "@type": "PropertyValue",
              "name": "contentAttributes",
              "value": [
                "forDarkBackground",
                "forLightBackground"
              ]
            }
          ]
        },
        {
          "@type": "ImageObject",
          "contentURL": "https://abcmedia.com/path_to_logo_112x112.png",
          "width": 112,
          "height": 112,
          "additionalProperty": [
            {
              "@type": "PropertyValue",
              "name": "contentAttributes",
              "value": [
                "forDarkBackground",
                "forLightBackground"
              ]
            }
          ]
        }
      ],
      "application": [
        {
          "@type": "SoftwareApplication",
          "operatingSystem": "Android",
          "downloadUrl": "https://google.play.store/com.abc.media.android",
          "identifier": "com.abc.media.android"
        },
        {
          "@type": "SoftwareApplication",
          "operatingSystem": "iOS",
          "downloadUrl": "https://apple.app.store/967093455",
          "identifier": "967093455"
        },
        {
          "@type": "SoftwareApplication",
          "operatingSystem": "AndroidTV",
          "downloadUrl": "https://google.play.store/com.abc.media.atv.android",
          "installUrl": "https://abcmedia.com/path_to_apkfile.apk",
          "identifier": "com.abc.media.atv.android"
        },
        {
          "@type": "SoftwareApplication",
          "operatingSystem": "Cast",
          "identifier": "ACDA4FDE"
        }
      ],
      "subscriptions": [
        {
          "@type": "MediaSubscription",
          "name": "Basic Package",
          "@id": "[partner determined string]",
          "identifier": "abcmedia.com:basic"
        },
        {
          "@type": "MediaSubscription",
          "name": "Premium Package",
          "@id": "[partner determined string]",
          "identifier": "abcmedia.com:premium"
        }
      ],
      "baseSubscriptionTier": {
        "@type": "MediaSubscription",
        "name": "Basic Package",
        "@id": "[partner determined string]",
        "identifier": "abcmedia.com:basic"
      },
      "parentOrganization": {
        "@type": "Organization",
        "name": "ABC Media"
      }
    }
  ]
}
```