미디어 작업 피드는 항목 모음이 포함된 JSON 객체입니다. 항목은 카탈로그의 항목(TV 에피소드, TV 시리즈, 영화, 노래, 앨범 등)을 나타내는 schema.org 객체입니다.
![](https://developers.google.cn/actions/media/images/image-media-actions-29.jpg?authuser=0000&hl=ko)
피드 구조
시청 작업과 듣기 작업의 피드 구조는 서로 다릅니다.
시청 작업에는 다음과 같은 계층 구조가 있습니다. |
듣기 작업에는 다음과 같은 계층 구조가 있습니다. |
데이터 피드 엔벨로프
데이터 피드 엔벨로프는 미디어 작업 피드의 최상위 개체입니다. 이 객체에는 카탈로그의 모든 콘텐츠를 나타내는 콘텐츠 마크업 객체 (항목) 배열이 포함됩니다.
데이터 피드 엔벨로프는 다음 속성을 지원합니다.
속성 | 유형 | 설명 |
---|---|---|
@context |
URL | 필수 - http://schema.org 로 설정 |
@type |
텍스트 | 필수 - DataFeed 로 설정합니다. |
dateModified |
DateTime | 필수사항 - 피드가 마지막으로 수정된 날짜와 시간이며, ISO 8601 형식으로 표시됩니다 (시간대 포함). |
dataFeedElement |
사물 | 필수 - 미디어 카탈로그의 항목입니다. |
데이터 피드 엔벨로프 템플릿
{
"@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> },
...
]
}
콘텐츠 마크업
콘텐츠 마크업 객체는 카탈로그의 단일 항목(영화, TV 에피소드, TV 시리즈, 노래, 앨범, 라디오 방송국 등)을 나타냅니다. 이 객체는 콘텐츠의 식별자 및 표준 URL을 포함하며 metadata를 통해 콘텐츠를 설명하는 데 도움이 됩니다.
콘텐츠 마크업 템플릿
콘텐츠 마크업 객체에는 Action 마크업 객체 배열이 있을 수 있으며, 이를 통해 콘텐츠를 여러 Action 마크업 객체와 연결할 수 있습니다. 예를 들어, 콘텐츠에 지역마다 다른 Action 마크업 객체가 있을 수 있습니다.
{
"@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> }
],
...
}
작업 마크업
작업 마크업 객체는 사용자를 콘텐츠와 콘텐츠에 필요한 액세스 수준으로 안내하는 딥 링크를 설명합니다. 객체는 콘텐츠 마크업 객체의 속성 (potentialAction
)입니다.
액세스 제한을 지정하는 방법에는 두 가지가 있습니다.
- 시청 작업의 경우 작업 액세스 사양 객체.
- 듣기 작업의 경우 offer 객체를 사용합니다.
작업 마크업 템플릿
콘텐츠에 딥 링크가 여러 개 있는 경우 작업 마크업 객체에는 여러 타겟 객체가 포함됩니다. 예를 들어 iOS용 콘텐츠의 딥 링크는 Android 딥 링크와 다를 수 있습니다. 또한 지역 및 기간에 따라 액세스 제한이 다를 경우, 아래 템플릿처럼 Action 마크업 객체는 여러 개의 Action 액세스 사양 객체를 가질 수도 있고, 객체를 제공할 수도 있습니다.
감시 작업에 대한 작업 마크업 객체 템플릿:
"potentialAction": {
"@type": "WatchAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"actionAccessibilityRequirement": [
{ <ACTION ACCESSIBILITY OBJECT 01> },
{ <ACTION ACCESSIBILITY OBJECT 02> }
]
}
듣기 작업을 위한 작업 마크업 객체 템플릿:
"potentialAction": {
"@type": "ListenAction",
"target": [
{ <TARGET OBJECT 01> },
{ <TARGET OBJECT 02> }
],
"expectsAcceptanceOf": [
{ <OFFER OBJECT 01> },
{ <OFFER OBJECT 02> }
]
}
타겟
타겟 객체는 다양한 Google 플랫폼에 딥 링크의 매핑을 제공합니다. 객체는 Action 마크업 객체의 속성 (target
)입니다.
대상 예시
콘텐츠에 플랫폼을 기반으로 하는 딥 링크가 여러 개 있는 경우 타겟 객체를 여러 개 만들어 서로 다른 매핑을 제공합니다. 예를 들어 Chromecast용 콘텐츠의 딥 링크가 다른 플랫폼의 딥 링크와 다를 수 있습니다. 아래 예와 같이 딥 링크를 설정할 수 있습니다
타겟 객체의 예 (기본):
"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"
]
}
딥 링크가 2개 있는 대상 객체의 예:
"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"
]
}
]
작업 액세스 사양
작업 액세스 사양 객체는
맞춤 콘텐츠를 만들 수 있습니다. 객체는 속성이며,
actionAccessibilityRequirement
/
작업 마크업 객체.
객체의 category
는 다음 중 하나일 수 있습니다.
nologinrequired
free
subscription
정기 결제 세부정보를 설명하려면 미디어 구독 객체. 만약 구독자에게 추가 구매가 필요한 콘텐츠인 경우 offer 객체를 사용하여 가격을 지정합니다.
externalsubscription
정기 결제 세부정보를 설명하려면 미디어 구독 객체. 만약 구독자에게 추가 구매가 필요한 콘텐츠인 경우 offer 객체를 사용하여 가격을 지정합니다.
rental
사용 offer 객체를 사용하여 가격을 지정합니다.
purchase
사용 offer 객체를 사용하여 가격을 지정합니다.
미디어 구독
미디어 구독 객체는 필요한 구독의 세부정보를 설명합니다.
있습니다. 객체는 requiresSubscription
이라는
작업 액세스 사양 객체 이것은
actionAccessibilityRequirement.category
이 subscription
인 경우 필수 또는
externalSubscription
및 구독 서비스에는 여러
추가 기능 지원이 있는 경우 만약
정기 결제는 한 등급으로 분류되며 카탈로그의 모든 콘텐츠에 대한 액세스를 제공합니다.
미디어 구독 예시
미디어 구독 객체의 예:
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/premium_subscription",
"name": "Example Premium",
"sameAs": "http://www.example.com/premium_subscription"
}
혜택
혜택 객체는 콘텐츠와 연결된 가격을 설명합니다. 객체는 다음 객체의 속성 (expectsAcceptanceOf
)입니다.
- 시청 작업의 경우 작업 액세스 사양 객체.
- Listen Actions의 경우 Action 마크업 객체.
혜택 예시
감시 작업은 expectsAcceptanceOf
속성을
작업 액세스 사양 객체:
"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"
}
}
}
}
듣기 작업은 다음과 같이 작업 마크업 객체에 expectsAcceptanceOf
속성을 직접 지정합니다.
"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"
}
}
}
이미지
이미지 객체는 콘텐츠와 연결된 이미지를 설명합니다.
이미지의 요구사항은 다음과 같습니다.
- 시청 작업의 경우 2:3 가로세로 비율의 고해상도 이미지 (최소 140x210픽셀)를 제공합니다.
- 이미지는
.jpg
또는.png
형식이어야 합니다.
- 이미지는
- 듣기 작업의 경우 가로세로 비율이 1x1인 고해상도 이미지 (최소 300x300픽셀)를 제공하세요.
- 600x600픽셀 이상을 사용하는 것이 좋습니다.
- 이미지는
.jpg
,.png
또는.gif
형식이어야 합니다.
- 이미지의 URL은 크롤링 및 색인 생성이 가능해야 합니다.
- 이미지를 사용할 권한이 있어야 하며 Google 기기 및 서비스에 이미지가 표시되도록 허용해야 합니다.
- 이미지에 다음이 포함되어서는 안 됩니다.
<ph type="x-smartling-placeholder">
- </ph>
- 흐리거나 모자이크 처리되거나 회전되었거나 품질이 좋지 않은 이미지
- 무허가 또는 스톡 사진.
- 과도한 노출.
- 불법 콘텐츠
MusicPlaylist
를 업데이트할 때는 새 콘텐츠를 반영하도록 이미지를 업데이트하세요.
이미지 예
"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"]
}
피드 예시
다음 예는 시청 작업 및 듣기 작업.
시계 작업 예시
{
"@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"
}
]
}
]
}
듣기 작업 예시
{
"@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"
}
}
}
}
}
]
}