O feed de ações de mídia é um objeto JSON que contém uma coleção de entidades. Uma entidade é um objeto do schema.org que representa um item no seu catálogo: um episódio de TV, uma série de TV, um filme, uma música, um álbum e muito mais.
Estrutura do feed
As Ações de assistir e ouvir têm estruturas de feed diferentes.
As Ações de exibição têm a seguinte hierarquia: |
As ações de escuta têm a seguinte hierarquia: |
Envelope do feed de dados
Um envelope de feed de dados é o objeto de nível superior no feed de ações de mídia. O objeto contém uma matriz de objetos de marcação de conteúdo (entidades) que representam todo o conteúdo no catálogo.
Um envelope de feed de dados é compatível com as seguintes propriedades:
Propriedade | Tipo | Descrição |
---|---|---|
@context |
URL | Obrigatório: defina como http://schema.org |
@type |
Texto | Obrigatório: defina como DataFeed . |
dateModified |
DateTime | Obrigatório: é a data e a hora da última modificação do feed, no formato ISO 8601 (incluindo o fuso horário). |
dataFeedElement |
Coisas | Obrigatório: as entidades do seu catálogo de mídia. |
Modelo de envelope do feed de dados
{
"@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> },
...
]
}
Marcação de conteúdo
Um objeto de marcação de conteúdo representa uma única entidade no seu catálogo: um filme, um episódio de TV, uma série de TV, uma música, um álbum, uma estação de rádio etc. O objeto contém o identificador e o URL canônico do conteúdo e ajuda a descrever o conteúdo por meio de metadados.
Modelo de marcação de conteúdo
Um objeto de marcação de conteúdo pode ter uma matriz de objetos de marcação de ação, o que permite que o conteúdo seja associado a vários objetos de marcação de ação. Por exemplo, o conteúdo pode ter um objeto de marcação de ação diferente por região.
{
"@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> }
],
...
}
Marcação de ação
Um objeto de marcação de ação descreve o link direto que leva os usuários ao conteúdo e o nível de acesso necessário para ele. O objeto é uma propriedade (potentialAction
) de um objeto de marcação de conteúdo.
Há duas maneiras de especificar as restrições de acesso:
- Para as Ações de exibição, use uma Objeto de especificação de acesso à ação.
- Para ações de escuta, use um objeto de oferta.
Modelo de marcação de ação
Se o conteúdo tiver vários links diretos, um objeto de marcação de ação incluirá vários objetos de destino. Por exemplo, o link direto do conteúdo para iOS pode ser diferente do link direto do Android. Além disso, se houver restrições de acesso diferentes com base nas regiões e nos períodos, um objeto de marcação de ação poderá ter vários objetos de especificação de acesso de ação ou objetos de oferta, conforme mostrado nos modelos abaixo.
Modelo de objeto de marcação de ação para ações de assistir:
"potentialAction": {
"@type": "WatchAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"actionAccessibilityRequirement": [
{ <ACTION ACCESSIBILITY OBJECT 01> },
{ <ACTION ACCESSIBILITY OBJECT 02> }
]
}
Modelo de objeto de marcação de ação para ações de escuta:
"potentialAction": {
"@type": "ListenAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"expectsAcceptanceOf": [
{ <OFFER OBJECT 01> },
{ <OFFER OBJECT 02> }
]
}
Destino
Um objeto de destino fornece o mapeamento de um link direto para várias plataformas do Google. O objeto é uma propriedade (target
) de um objeto de marcação de ação.
Exemplo de destino
Se o conteúdo tiver vários links diretos com base nas plataformas, crie vários objetos de destino para fornecer mapeamentos diferentes. Por exemplo, o link direto do conteúdo para o Chromecast pode ser diferente do link de outras plataformas links diretos, conforme mostrado no exemplo abaixo.
Exemplo de um 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"
]
}
Exemplo de objeto de destino com dois links diretos:
"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"
]
}
]
Especificação de acesso a ações
Um objeto de especificação de acesso da ação descreve o requisito de acesso para o
conteúdo com base na região e no período. O objeto é uma propriedade,
actionAccessibilityRequirement
, de um
Objeto de marcação de ação.
O category
do objeto pode ser qualquer um destes:
nologinrequired
free
subscription
Para descrever os detalhes da assinatura, crie uma Objeto de assinatura de mídia. Se o conteúdo requer uma compra adicional para os assinantes, use um objeto de oferta para especificar o preço.
externalsubscription
Para descrever os detalhes da assinatura, crie uma Objeto de assinatura de mídia. Se o conteúdo requer uma compra adicional para os assinantes, use um objeto de oferta para especificar o preço.
rental
Use um objeto de oferta para especificar o preço.
purchase
Use um objeto de oferta para especificar o preço.
Assinatura de mídia
Um objeto de assinatura de mídia descreve os detalhes da assinatura necessária
para conteúdo. O objeto é uma propriedade, requiresSubscription
, de um
Objeto de especificação de acesso de ação. Isso é
obrigatório se actionAccessibilityRequirement.category
for subscription
ou
externalSubscription
, e sua oferta de assinatura inclui várias
pacotes ou níveis ou tem suporte para complementos. Não inclua essa informação se
tem um nível e dá acesso a todo o conteúdo do seu catálogo.
Exemplo de assinatura de mídia
Exemplo de um objeto de assinatura de mídia:
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/premium_subscription",
"name": "Example Premium",
"sameAs": "http://www.example.com/premium_subscription"
}
Oferta
Um objeto de oferta descreve o preço associado ao conteúdo. O objeto é uma propriedade (expectsAcceptanceOf
) dos seguintes objetos:
- Para as Ações de exibição, Objeto de especificação de acesso à ação.
- Para Ações de escuta, um objeto de marcação de ação.
Exemplo de oferta
As Ações de relógio especificam a propriedade expectsAcceptanceOf
na
Objeto de especificação de acesso à ação:
"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"
}
}
}
}
As ações de detecção especificam a propriedade expectsAcceptanceOf
diretamente no objeto de marcação de ação:
"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"
}
}
}
Imagem
Um objeto de imagem descreve a imagem associada ao conteúdo.
Os requisitos da imagem são os seguintes:
- Para Ações de relógio, forneça uma imagem de alta resolução (mínimo de 140 x 210 pixels) com proporção de 2:3.
- A imagem precisa estar no formato
.jpg
ou.png
.
- A imagem precisa estar no formato
- Para "Ações de escuta", forneça uma imagem de alta resolução (mínimo de 300 x 300 pixels) com proporção de 1 x 1.
- Recomendamos 600 x 600 pixels ou mais.
- A imagem precisa estar no formato
.jpg
,.png
ou.gif
.
- O URL da imagem precisa ser rastreável e indexável.
- Você precisa ter direitos para usar a imagem e permitir que ela seja exibida em dispositivos e propriedades do Google.
- A imagem não pode conter o seguinte:
- Imagem desfocada, pixelada, girada ou com baixa qualidade.
- Fotos ou bancos de fotos sem licença.
- Nudez.
- Conteúdo ilegal.
- Ao atualizar
MusicPlaylist
, atualize a imagem para refletir o novo conteúdo.
Exemplo de imagem
"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"]
}
Exemplos de feed
Os exemplos a seguir mostram a diferença na estrutura do feed entre Ações de assistir e ouvir.
Exemplo de Ações de assistir
{
"@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"
}
]
}
]
}
Exemplo de ações de escuta
{
"@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"
}
}
}
}
}
]
}