メディア アクションのフィードは、エンティティのコレクションを含む JSON オブジェクトです。ここでいうエンティティとは、テレビ エピソード、テレビシリーズ、映画、曲、アルバムなどのカタログに含まれているものを表す schema.org オブジェクトを指します。

フィードの構造
ウォッチ アクションとリッスン アクションはフィードの構造が異なります。
ウォッチ アクションの階層は次のとおりです。 |
リスニング アクションの階層は次のとおりです。 |
データフィード エンベロープ
データフィード エンベロープは、メディア アクション フィードの最上位オブジェクトです。このオブジェクトには、カタログ内のすべてのコンテンツを表すコンテンツ マークアップ オブジェクト(エンティティ)の配列が含まれます。
データフィード エンベロープは次のプロパティをサポートしています。
プロパティ | タイプ | 説明 |
---|---|---|
@context |
URL | 必須 - http://schema.org に設定します。 |
@type |
テキスト | 必須 - DataFeed に設定します。 |
dateModified |
DateTime | 必須 - フィードの最終更新日時。ISO 8601 形式で指定します(タイムゾーンを含む)。 |
dataFeedElement |
Thing | 必須 - メディア カタログのエンティティ。 |
データフィード エンベロップのテンプレート
{
"@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> },
...
]
}
コンテンツ マークアップ
コンテンツ マークアップ オブジェクトは、カタログ内の 1 つのエンティティ(映画、テレビ エピソード、テレビシリーズ、曲、アルバム、ラジオ局など)を表します。このオブジェクトにはコンテンツの識別子と正規 URL が含まれており、metadataによってコンテンツの補足情報を付けることができます。
コンテンツ マークアップのテンプレート
コンテンツ マークアップ オブジェクトには、アクション マークアップ オブジェクトの配列を含めることができます。これにより、コンテンツを複数のアクション マークアップ オブジェクトに関連付けることができます。たとえば、地域ごとに異なるアクション マークアップ オブジェクトを指定できます。
{
"@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
)です。
アクセス制限を指定する方法は 2 通りあります。
- ウォッチ アクションの場合は、アクション アクセス指定オブジェクトを使用します。
- リッスン アクションの場合は、オファー オブジェクトを使用します。
アクション マークアップのテンプレート
コンテンツに複数のディープリンクがある場合、アクション マークアップ オブジェクトには複数のターゲット オブジェクトが含まれます。たとえば、コンテンツの iOS 用のディープリンクと Android 用のディープリンクに別々の URL を指定できます。また、アクセス制限が地域や期間によって異なる場合は、以下のテンプレートに示すように、アクション マークアップ オブジェクトに複数のアクション アクセス指定オブジェクトまたはオファー オブジェクトを含めることができます。
ウォッチ アクションのアクション マークアップ オブジェクトのテンプレート:
"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 プラットフォームへのディープリンクのマッピングを提供します。このオブジェクトはアクション マークアップ オブジェクトのプロパティ(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
サブスクリプションの詳細を記述するには、メディア サブスクリプション オブジェクトを作成します。コンテンツのサブスクリプションに別途料金が必要な場合は、オファー オブジェクトを使用して価格を指定します。
externalsubscription
サブスクリプションの詳細を記述するには、メディア サブスクリプション オブジェクトを作成します。コンテンツのサブスクリプションに別途料金が必要な場合は、オファー オブジェクトを使用して価格を指定します。
rental
オファー オブジェクトを使用して価格を指定します。
purchase
オファー オブジェクトを使用して価格を指定します。
メディア サブスクリプション
メディア サブスクリプション オブジェクトには、コンテンツに必要なサブスクリプションの詳細を記述します。このオブジェクトは、アクション アクセス指定オブジェクトのプロパティ requiresSubscription
です。これは、actionAccessibilityRequirement.category
が subscription
または externalSubscription
で、サブスクリプション サービスに複数のパッケージまたは階層が含まれている場合、またはアドオンがサポートされている場合に必要です。サブスクリプションが 1 階層で、カタログ内のすべてのコンテンツにアクセスできる場合は、この項目を含めないでください。
メディア サブスクリプションの例
メディア サブスクリプション オブジェクトの例:
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/premium_subscription",
"name": "Example Premium",
"sameAs": "http://www.example.com/premium_subscription"
}
オファー
オファー オブジェクトには、コンテンツに関連付けられた価格を記述します。このオブジェクトは次のオブジェクトのプロパティ(expectsAcceptanceOf
)です。
- ウォッチ アクションの場合はアクション アクセス指定オブジェクト。
- リッスン アクションの場合はアクション マークアップ オブジェクト。
オファーの例
ウォッチ アクションでは、アクション アクセス指定オブジェクトで 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 の高解像度画像(最小サイズは 140×210 ピクセル)を指定します。
- 画像は
.jpg
または.png
の形式にする必要があります。
- 画像は
- リッスン アクションの場合は、アスペクト比が 1:1 の高解像度画像(最小サイズは 300×300 ピクセル)を指定します。
- 600×600 ピクセル以上のサイズにすることをおすすめします。
- 画像の形式は、
.jpg
、.png
、.gif
のいずれかである必要があります。
- 画像の URL はクロール可能でインデックス登録できる必要があります。
- フィードの提供元は画像を使用する権利を保有し、Google のデバイスやプロパティに画像を表示することを許可する必要があります。
- 次のような画像は使用できません。
- ぼやけた画像、モザイクのかかった画像、回転した画像、低品質の画像。
- 使用許可を受けていない画像、またはストックフォト。
- ヌード。
- 不正なコンテンツ。
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"
}
}
}
}
}
]
}