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, una serie de TV, una película, una canción, un álbum y mucho más.
![](https://developers-dot-devsite-v2-prod.appspot.com/actions/media/images/image-media-actions-29.jpg?authuser=19&hl=es)
Estructura del feed
Las acciones de reproducción y de escucha tienen estructuras de feed diferentes.
Las acciones de reproducción tienen la siguiente jerarquía: |
Las acciones de escucha tienen la siguiente jerarquía: |
Sobre del feed de datos
El sobre del feed de datos es el objeto de nivel superior del feed de Acciones multimedia. Este contiene un array de objetos de lenguaje de marcado de contenido (entidades) que representan todo el contenido de tu catálogo.
El sobre de un feed de datos admite las siguientes propiedades:
Propiedad | Tipo | Descripción |
---|---|---|
@context |
URL | Obligatorio: Configúralo en http://schema.org |
@type |
Texto | Obligatorio: Configúralo como DataFeed . |
dateModified |
DateTime | Obligatorio: Indica la fecha y hora de la última modificación del feed en formato ISO 8601 (incluida la zona horaria). |
dataFeedElement |
Thing | Obligatorio: Las entidades de tu catálogo de contenido 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> },
...
]
}
Lenguaje de marcado del contenido
Un objeto de lenguaje de marcado de contenido representa una entidad única de 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. El objeto incluye el identificador y la URL canónica del contenido y ayuda a describirlo mediante metadatos.
Plantilla de lenguaje de marcado de contenido
Un objeto de lenguaje de marcado de contenido puede tener un array de objetos de lenguaje de marcado de acciones, lo que permite que el contenido se asocie con varios objetos de lenguaje de marcado de Acciones. Por ejemplo, el contenido puede tener un objeto de lenguaje 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 lenguaje de marcado de acción describe el vínculo directo que lleva a los usuarios al contenido y el nivel de acceso requerido para este. 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 de reproducción, usa un Objeto de especificación de acceso a acciones.
- 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 lenguaje de marcado de Acción incluye varios objetos de destino. Por ejemplo, el vínculo directo del contenido para iOS podría ser diferente del vínculo directo de Android. Además, si hay diferentes restricciones de acceso según las regiones y los períodos de tiempo, un objeto de lenguaje de marcado de Action puede tener varios objetos de especificación de acceso a Action, o bien objetos de oferta, como se muestra en las siguientes plantillas.
Plantilla de objetos de lenguaje de marcado de acciones para las Acciones de reproducción:
"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 las 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 lenguaje de marcado de acciones.
Ejemplo de destino
Si el contenido tiene varios vínculos directos basados en las plataformas, crea varios objetos de destino para proporcionar diferentes asignaciones. Por ejemplo, es posible que el vínculo directo del contenido para Chromecast sea diferente del de otras plataformas. vínculos directos, 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 destino 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 acciones
Un objeto de especificación de acceso a acciones 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 lenguaje de marcado de acciones
El category
del objeto puede ser cualquiera de las siguientes opciones:
nologinrequired
free
subscription
Para describir los detalles de la suscripción, crea un Objeto de suscripción multimedia. Si el contenido requiere una compra adicional para los suscriptores, usa un offer object para especificar el precio
externalsubscription
Para describir los detalles de la suscripción, crea un Objeto de suscripción multimedia. Si el contenido requiere una compra adicional para los suscriptores, usa un offer object para especificar el precio
rental
Usa un offer object para especificar el precio
purchase
Usa un offer object para especificar el precio
Suscripción a medios
Un objeto de suscripción multimedia describe los detalles de la suscripción requerida
para el contenido. El objeto es una propiedad, requiresSubscription
, de un
Objeto de especificación de acceso a acciones. Este es
obligatorio si actionAccessibilityRequirement.category
es subscription
o
externalSubscription
y tu oferta de suscripción incluye varias
paquetes o niveles, o tiene asistencia complementaria. No incluyas esto si tu
La suscripción tiene 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 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 de reproducción, se puede Objeto de especificación de acceso a acciones.
- Para las acciones de escucha, es un objeto de lenguaje de marcado de acciones.
Ejemplo de oferta
Las Acciones de reproducción especifican la propiedad expectsAcceptanceOf
en el
Objeto de especificación de acceso a acciones:
"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 acciones:
"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 de la imagen son los siguientes:
- Para las acciones de reproducción, 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 x 300 píxeles) con una relación de aspecto de 1 x 1.
- Recomendamos 600 × 600 píxeles o más.
- 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 esta se muestre en los dispositivos y las propiedades de Google.
- La imagen no debe contener lo siguiente:
- Imagen borrosa, pixelada, girada o de baja calidad
- Fotografía 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 Acciones de visualización y 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"
}
}
}
}
}
]
}