El feed de acciones multimedia es un objeto JSON que contiene una colección de entidades. Una entidad es un objeto de schema.org que representa un elemento de tu catálogo: un episodio de TV, una serie de TV, una película, una canción, un álbum y mucho más.

Estructura del feed
Las Acciones en Relojes y las Acciones de Escucha tienen estructuras de feeds diferentes.
Las Acciones de visualización tienen la siguiente jerarquía: |
Las Acciones de escucha tienen la siguiente jerarquía: |
Sobre del feed de datos
Un sobre de feed de datos es el objeto de nivel superior en el feed de acciones de medios. El objeto contiene un array de objetos de marcado de contenido (entidades) que representan todo el contenido de tu catálogo.
Un sobre de feed de datos admite las siguientes propiedades:
Propiedad | Tipo | Descripción |
---|---|---|
@context |
URL | Obligatorio: Se establece en http://schema.org . |
@type |
Texto | Obligatorio: Se establece en DataFeed . |
dateModified |
DateTime | Obligatorio: Es la fecha y hora de la última modificación del feed, en formato ISO 8601 (incluida la zona horaria). |
dataFeedElement |
Thing | Obligatorio: Son las entidades de tu catálogo multimedia. |
Plantilla de sobre del feed de datos
{
"@context": "http://schema.org",
"@type": "DataFeed",
"dateModified": "2018-07-20T00:44:51Z",
"dataFeedElement": [
{ <CONTENT MARKUP OBJECT 01> },
{ <CONTENT MARKUP OBJECT 02> },
{ <CONTENT MARKUP OBJECT 03> },
...
]
}
Marcas de contenido
Un objeto de marcado de contenido representa una sola entidad en tu catálogo: una película, un episodio de TV, una serie de TV, una canción, un álbum, una estación de radio, etcétera. El objeto contiene el identificador y la URL canónica del contenido y ayuda a describirlo a través de metadata.
Plantilla de marcado de contenido
Un objeto de lenguaje de marcado de contenido puede tener un array de objetos de lenguaje de marcado de Action, lo que permite que el contenido se asocie con varios objetos de lenguaje de marcado de Action. Por ejemplo, el contenido puede tener un objeto de marcado de Action diferente por región.
{
"@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",
"potentialAction": [
{ <ACTION MARKUP OBJECT 01> },
{ <ACTION MARKUP OBJECT 02> }
],
...
}
Lenguaje de marcado de acciones
Un objeto de marcado de acción describe el vínculo directo que lleva a los usuarios al contenido y el nivel de acceso requerido para el contenido. El objeto es una propiedad (potentialAction
) de un objeto de lenguaje de marcado de contenido.
Existen dos maneras de especificar las restricciones de acceso:
- Para las Acciones en Relojes, usa un objeto de especificación de acceso a la acción.
- Para las Acciones de escucha, usa un objeto de oferta.
Plantilla de lenguaje de marcado de acciones
Si el contenido tiene varios vínculos directos, un objeto de marcado de Action incluye varios objetos de destino. Por ejemplo, el vínculo directo del contenido para iOS puede ser diferente del vínculo directo de Android. Además, si hay diferentes restricciones de acceso según las regiones y los períodos, un objeto de marcado de Action puede tener varios objetos de especificación de acceso de Action o objetos de oferta, como se muestra en las siguientes plantillas.
Plantilla de objeto de lenguaje de marcado de acciones para Acciones en Relojes:
"potentialAction": {
"@type": "WatchAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"actionAccessibilityRequirement": [
{ <ACTION ACCESSIBILITY OBJECT 01> },
{ <ACTION ACCESSIBILITY OBJECT 02> }
]
}
Plantilla de objeto de lenguaje de marcado de acciones para acciones de escucha:
"potentialAction": {
"@type": "ListenAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"expectsAcceptanceOf": [
{ <OFFER OBJECT 01> },
{ <OFFER OBJECT 02> }
]
}
Objetivo
Un objeto de destino proporciona la asignación de un vínculo directo a varias plataformas de Google. El objeto es una propiedad (target
) de un objeto de marcado de acción.
Ejemplo de segmentación
Si el contenido tiene varios vínculos directos según las plataformas, crea varios objetos de destino para proporcionar diferentes asignaciones. Por ejemplo, el vínculo directo del contenido para Chromecast puede ser diferente de los vínculos directos de otras plataformas, como se muestra en el siguiente ejemplo.
Ejemplo de un objeto de destino (básico):
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
"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"
]
}
Ejemplo de objeto de segmentación con dos vínculos directos:
"target": [
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform"
]
},
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/cast/my_favorite_movie?autoplay=true",
"actionPlatform": [
"http://schema.googleapis.com/GoogleVideoCast"
]
}
]
Especificación de acceso a la acción
Un objeto de especificación de acceso de Action describe el requisito de acceso para el contenido según la región y el período. El objeto es una propiedad, actionAccessibilityRequirement
, de un objeto de marcado de acción.
El category
del objeto puede ser cualquiera de los siguientes:
nologinrequired
free
subscription
Para describir los detalles de la suscripción, crea un objeto de suscripción de contenido multimedia. Si el contenido requiere una compra adicional para los suscriptores, usa un objeto de oferta para especificar el precio.
externalsubscription
Para describir los detalles de la suscripción, crea un objeto de suscripción de contenido multimedia. Si el contenido requiere una compra adicional para los suscriptores, usa un objeto de oferta para especificar el precio.
rental
Usa un objeto de oferta para especificar el precio.
purchase
Usa un objeto de oferta para especificar el precio.
Suscripción a contenido multimedia
Un objeto de suscripción multimedia describe los detalles de la suscripción necesaria para el contenido. El objeto es una propiedad, requiresSubscription
, de un objeto de especificación de acceso a la acción. Esto es obligatorio si actionAccessibilityRequirement.category
es subscription
o externalSubscription
y tu oferta de suscripción incluye varios paquetes o niveles, o tiene compatibilidad con complementos. No lo incluyas si tu suscripción es de un nivel y brinda acceso a todo el contenido de tu catálogo.
Ejemplo de suscripción a contenido multimedia
Ejemplo de un objeto de suscripción a contenido multimedia:
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/premium_subscription",
"name": "Example Premium",
"sameAs": "http://www.example.com/premium_subscription"
}
Oferta
Un objeto de oferta describe el precio asociado con el contenido. El objeto es una propiedad (expectsAcceptanceOf
) de los siguientes objetos:
- Para las Acciones en Relojes, un objeto de especificación de acceso a la acción
- Para las acciones de escucha, un objeto de lenguaje de marcado de Action
Ejemplo de oferta
Las Acciones en Relojes especifican la propiedad expectsAcceptanceOf
en el objeto de especificación de acceso a la acción:
"potentialAction":{
"@type":"WatchAction",
"target":{
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/my_favorite_movie?autoplay=true",
"actionPlatform":[ "http://schema.org/DesktopWebPlatform" ]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "purchase",
"availabilityStarts": "2019-01-01T00:00Z",
"availabilityEnds": "2019-12-31T00:00Z",
"eligibleRegion": {
"@type": "Country",
"name": "US"
},
"expectsAcceptanceOf": {
"@type": "Offer",
"price": 7.99,
"priceCurrency": "USD",
"seller": {
"@type": "Organization",
"name": "My example seller"
}
}
}
}
Las Acciones de escucha especifican la propiedad expectsAcceptanceOf
directamente en el objeto de lenguaje de marcado de Action:
"potentialAction":{
"@type":"ListenAction",
"target":{
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/playlist/top_pop_songs?autoplay=true",
"actionPlatform":[ "http://schema.org/DesktopWebPlatform" ]
},
"expectsAcceptanceOf":{
"@type": "Offer",
"eligibleRegion": {
"@type":"Country",
"name":"US"
},
"category": "subscription",
"name": "Example Music",
"price": 9.99,
"priceCurrency": "USD",
"seller": {
"@type": "Organization",
"name": "My example seller",
"sameAs": "http://www.example.com"
}
}
}
Imagen
Un objeto de imagen describe la imagen asociada con el contenido.
Los requisitos para la imagen son los siguientes:
- Para las Acciones en Relojes, proporciona una imagen de alta resolución (mínimo de 140 × 210 píxeles) con una relación de aspecto de 2:3.
- La imagen debe estar en formato
.jpg
o.png
.
- La imagen debe estar en formato
- Para las Acciones de escucha, proporciona una imagen de alta resolución (mínimo de 300 × 300 píxeles) con una relación de aspecto de 1 × 1.
- Recomendamos 600 × 600 píxeles o un tamaño superior.
- La imagen debe estar en formato
.jpg
,.png
o.gif
.
- La URL de la imagen se debe poder rastrear e indexar.
- Debes tener derechos para usar la imagen y permitir que se muestre en los dispositivos y las propiedades de Google.
- La imagen no debe contener lo siguiente:
- Imagen borrosa, pixelada, rotada o de mala calidad
- Fotografías de archivo o sin licencia
- Imágenes de desnudos
- Contenido ilegal
- Cuando actualices
MusicPlaylist
, actualiza su imagen para que refleje el contenido nuevo.
Ejemplo de imagen
"image": {
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/artist/my_favorite_artist/1x1/photo1.jpg",
"dateModified" : "2019-01-05T22:11:33+00:00",
"regionsAllowed" : ["US","UK","MX"]
}
Ejemplos de feeds
En los siguientes ejemplos, se muestra la diferencia en la estructura del feed entre las acciones de reproducción y las acciones de escucha.
Ejemplo de acciones de visualización
{
"@context": "http://schema.org",
"@type": "DataFeed",
"dateModified": "2018-07-20T00:44:51Z",
"dataFeedElement": [
{
"@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",
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/my_favorite_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",
"availabilityStarts": "2018-07-21T10:35:29Z",
"availabilityEnds": "2019-10-21T10:35:29Z",
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
},
{
"@type": "Country",
"name": "CA"
}
],
}
},
"sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
"releasedEvent": {
"@type": "PublicationEvent",
"startDate": "2008-01-20",
"location": {
"@type": "Country",
"name": "US"
}
},
"description": "This is my favorite movie.",
"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"
}
]
}
]
}
Ejemplo de acciones de escucha
{
"@context": "http://schema.org",
"@type": "DataFeed",
"dateModified": "2018-07-20T00:44:51Z",
"dataFeedElement": [
{
"@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",
"sameAs":"https://en.wikipedia.org/wiki/my_favorite_artist",
"description":"This is my favorite pop music artist.",
"potentialAction": {
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/artist/my_favorite_artist?autoplay=true",
"actionPlatform":[
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"subscription",
"eligibleRegion": {
"@type":"Country",
"name":"US"
},
"price": 8.99,
"priceCurrency": "USD"
}
},
"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",
"description":"A mix of music similar to My Favorite Artist",
"potentialAction":{
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/artist_mix/my_favorite_artist?autoplay=true",
"actionPlatform":[
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"free",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
}
}
}
]
}