Plik danych Media Actions to obiekt JSON zawierający kolekcję elementów. Encja to obiekt schema.org, który reprezentuje element z katalogu: odcinek serialu telewizyjnego, serial telewizyjny, film, utwór, album i inne treści.
Struktura pliku danych
Karty odtwarzania i działania słuchaczy mają różne struktury.
Działania dotyczące oglądania mają taką hierarchię: |
Akcje nasłuchiwania mają taką hierarchię: |
Koperta pliku danych
Koperta pliku danych to obiekt najwyższego poziomu w pliku danych działań związanych z multimediami. Obiekt zawiera tablicę obiektów znaczników treści (elementów), które reprezentują całą zawartość katalogu.
Koperta pliku danych obsługuje następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
@context |
Adres URL | Wymagany – ustaw wartość http://schema.org |
@type |
Tekst | Wymagane – ustaw na DataFeed . |
dateModified |
DateTime | Wymagane – data i godzina ostatniej modyfikacji pliku danych podana w formacie ISO 8601 (wraz ze strefą czasową). |
dataFeedElement |
Rzeczy | Wymagane – elementy w katalogu multimediów. |
Szablon koperty pliku danych
{
"@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> },
...
]
}
Znaczniki treści
Obiekt znaczników treści reprezentuje jeden element w katalogu: film, odcinek serialu telewizyjnego, serial telewizyjny, utwór, album, stację radiową itd. Obiekt zawiera identyfikator i kanoniczny URL treści i pomaga opisać ją za pomocą metadanych.
Szablon znaczników treści
Obiekt znaczników treści może mieć tablicę obiektów znaczników Action, co umożliwia powiązanie treści z wieloma obiektami znaczników Action. Na przykład treść może mieć inny obiekt znacznika działania w zależności od regionu.
{
"@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> }
],
...
}
Znaczniki działań
Obiekt znaczników Action opisuje precyzyjny link, który przekierowuje użytkowników do treści, oraz określa wymagany poziom dostępu. Obiekt jest właściwością (potentialAction
) obiektu znaczników treści.
Ograniczenia dostępu można określić na 2 sposoby:
- W przypadku działań związanych z zegarkiem użyj Obiekt specyfikacji dostępu do działania.
- W przypadku działań związanych z słuchaniem użyj obiektu Offer.
Szablon znaczników działań
Jeśli treść zawiera wiele precyzyjnych linków, obiekt znacznika Action zawiera wiele obiektów docelowych. Na przykład precyzyjny link treści na iOS może się różnić od precyzyjnego linku na Androida. Poza tym, jeśli obowiązują różne ograniczenia dostępu w zależności od regionu i przedziałów czasu, obiekt znaczników Action może mieć wiele obiektów specyfikacji dostępu do działań lub obiektów oferty, jak pokazano w szablonach poniżej.
Szablon znaczników działań dla działań obserwacji:
"potentialAction": {
"@type": "WatchAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"actionAccessibilityRequirement": [
{ <ACTION ACCESSIBILITY OBJECT 01> },
{ <ACTION ACCESSIBILITY OBJECT 02> }
]
}
Szablon obiektu znaczników działań dla działań nasłuchiwania:
"potentialAction": {
"@type": "ListenAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"expectsAcceptanceOf": [
{ <OFFER OBJECT 01> },
{ <OFFER OBJECT 02> }
]
}
Cel
Obiekt docelowy zapewnia mapowanie precyzyjnego linku na różne platformy Google. Obiekt jest właściwością (target
) obiektu znaczników działania.
Przykład elementu docelowego
Jeśli treść zawiera wiele precyzyjnych linków powiązanych z platformami, utwórz wiele obiektów docelowych, aby zapewnić różne mapowania. Na przykład precyzyjny link do treści na Chromecaście może różnić się od precyzyjnego linku do treści na innych platformach precyzyjne linki, jak widać w przykładzie poniżej.
Przykład obiektu docelowego (podstawowego):
"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"
]
}
Przykład obiektu docelowego z 2 precyzyjnymi linkami:
"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"
]
}
]
Specyfikacja dostępu do działania
Obiekt specyfikacji dostępu do działań opisuje wymaganie dostępu dla
treści w zależności od regionu i okresu. Obiekt jest właściwością,
actionAccessibilityRequirement
, z
Obiekt znaczników działania.
category
obiektu może być dowolną z tych wartości:
nologinrequired
free
subscription
Aby opisać szczegóły subskrypcji, utwórz Obiekt subskrypcji multimediów. Jeśli treści wymagają od subskrybentów dodatkowego zakupu, skorzystaj z offers, aby określić cenę.
externalsubscription
Aby opisać szczegóły subskrypcji, utwórz Obiekt subskrypcji multimediów. Jeśli treści wymagają od subskrybentów dodatkowego zakupu, skorzystaj z offers, aby określić cenę.
rental
Użyj offers, aby określić cenę.
purchase
Użyj offers, aby określić cenę.
Subskrypcja multimediów
Obiekt subskrypcji multimediów opisuje szczegóły wymaganej subskrypcji
treści. Obiekt jest właściwością (requiresSubscription
) elementu
Obiekt specyfikacji dostępu do działania. To jest
wymagane, jeśli actionAccessibilityRequirement.category
to subscription
lub
externalSubscription
i Twoja oferta subskrypcji obejmuje wiele
pakiety lub poziomy albo oferuje dodatkową obsługę. Nie uwzględniaj tego, jeśli
jest jednopoziomowa i daje dostęp do wszystkich treści z katalogu.
Przykład subskrypcji multimediów
Przykład obiektu subskrypcji multimediów:
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/premium_subscription",
"name": "Example Premium",
"sameAs": "http://www.example.com/premium_subscription"
}
Oferta
Obiekt oferty opisuje cenę powiązaną z treścią. Obiekt jest właściwością (expectsAcceptanceOf
) tych obiektów:
- W przypadku działań związanych z zegarkiem Obiekt specyfikacji dostępu do działania.
- W przypadku działań nasłuchiwanych jest to obiekt znaczników działania.
Przykładowa oferta
Watch Actions określa właściwość expectsAcceptanceOf
w parametrze
Obiekt specyfikacji dostępu do działania:
"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"
}
}
}
}
Listen Actions określa właściwość expectsAcceptanceOf
bezpośrednio w obiekcie znaczników 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"
}
}
}
Obraz
Obiekt graficzny opisuje obraz powiązany z treścią.
Wymagania dotyczące zdjęcia:
- W przypadku działań związanych z zegarkiem prześlij obraz o wysokiej rozdzielczości (co najmniej 140 x 210 pikseli) i współczynniku proporcji 2:3.
- Obraz musi być w formacie
.jpg
lub.png
.
- Obraz musi być w formacie
- W przypadku działań związanych z słuchaniem prześlij obraz o wysokiej rozdzielczości (co najmniej 300 x 300 pikseli) i współczynniku proporcji 1 x 1.
- Zalecamy rozmiar 600 x 600 pikseli lub większy.
- Obraz musi być w formacie
.jpg
,.png
lub.gif
.
- Adres URL obrazu musi być dostępny do pobrania i zindeksowania.
- Musisz mieć prawa do korzystania z obrazu oraz zezwolenia na jego wyświetlanie na urządzeniach i w usługach Google.
- Obraz nie może zawierać:
- Rozmyty, pikselowy, obrócony obraz lub obraz niskiej jakości.
- Zdjęcie licencjonowane lub zdjęcie licencjonowane.
- Nagość.
- Treści niezgodne z prawem.
- Gdy zaktualizujesz aplikację
MusicPlaylist
, zaktualizuj jej obraz, aby odzwierciedlał nowe treści.
Przykładowy obraz
"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"]
}
Przykłady pliku danych
W poniższych przykładach widać różnicę w strukturze pliku danych Oglądaj działania i słuchaj.
Przykład: Watch Actions
{
"@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"
}
]
}
]
}
Przykład działania Listen Actions
{
"@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"
}
}
}
}
}
]
}