フィードの構造の概要

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

図 1. ウォッチ アクションとリッスン アクションのフィード構造

フィードの構造

ウォッチ アクションとリッスン アクションはフィードの構造が異なります。

ウォッチ アクションの階層は次のとおりです。
<ph type="x-smartling-placeholder">
リッスン アクションの階層は次のとおりです。
<ph type="x-smartling-placeholder">

データフィード エンベロープ

データフィード エンベロープは、メディア アクション フィードの最上位オブジェクトです。このオブジェクトには、カタログ内のすべてのコンテンツを表すコンテンツ マークアップ オブジェクト(エンティティ)の配列が含まれます。

データフィード エンベロープは次のプロパティをサポートしています。

プロパティ タイプ 説明
@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> },
    ...
  ]
}

コンテンツ マークアップ

コンテンツ マークアップ オブジェクトは、映画、テレビ エピソード、テレビシリーズ、曲、アルバム、ラジオ局など、カタログ内の 1 つのエンティティを表します。このオブジェクトにはコンテンツの識別子と正規 URL が含まれ、メタデータを通じてコンテンツを説明するのに役立ちます。

コンテンツ マークアップのテンプレート

コンテンツ マークアップ オブジェクトには、アクション マークアップ オブジェクトの配列を含めることができます。これにより、コンテンツを複数のアクション マークアップ オブジェクトに関連付けることができます。たとえば、地域ごとに異なるアクション マークアップ オブジェクトを指定できます。

{
   "@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 は次のいずれかになります。

メディア サブスクリプション

メディア サブスクリプション オブジェクトには、必要なサブスクリプションの詳細を記述します。 できます。このオブジェクトは、requiresSubscription アクション アクセス指定オブジェクト。これは、 actionAccessibilityRequirement.categorysubscription または 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 x 210 ピクセル以上)を指定します。
    • イメージは .jpg 形式または .png 形式にする必要があります。
  • リッスン アクションの場合は、アスペクト比が 1x1 の高解像度画像(300x300 ピクセル以上)を指定します。
    • 600×600 ピクセル以上のサイズにすることをおすすめします。
    • 画像の形式は、.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"
            }
          }
        }
      }
    }
  ]
}