動態饋給結構總覽

「媒體動作」動態饋給是包含一組實體的 JSON 物件。實體是 schema.org 物件,代表目錄中的項目:電視劇集、電視影集、電影、歌曲、專輯等。

圖 1. 觀看動作和收聽動作的動態消息結構。

動態饋給結構

觀看動作和收聽行動有不同的資訊提供結構。

觀看動作的階層如下:
監聽動作具有下列階層:

資料動態饋給信封

資料動態饋給信封是媒體動作動態饋給中的頂層物件。物件包含內容標記物件 (實體) 陣列,代表目錄中所有的內容。

資料動態饋給信封支援下列屬性:

屬性 類型 說明
@context 網址 必要 - 設為 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> },
    ...
  ]
}

內容標記

內容標記物件代表目錄中的單一實體:電影、電視劇集、電視影集、歌曲、專輯、廣播電台等。這個物件包含內容的ID 和標準網址,且有助於透過中繼資料描述內容。

內容標記範本

內容標記物件可以具有 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)。

有兩種方法可以指定存取限制:

動作標記範本

如果內容有多個深層連結,動作標記物件就會包含多個目標物件。舉例來說,內容在 iOS 和 Android 的深層連結可能不同。此外,如果根據地區和時間範圍有不同的存取限制,單一動作標記物件可能會有多個 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"
  ]
}

含有兩個深層連結的目標物件範例:

"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.categorysubscriptionexternalSubscription,您的訂閱方案包含多項 方案、級別或附加支援如果您的 訂閱方案採單層式訂閱,可讓使用者存取你目錄中的所有內容,

媒體訂閱範例

媒體訂閱物件範例:

"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"
      }
    }
  }
}

監聽動作可直接在 Action 標記物件中指定 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"
    }
  }
}

圖片

圖片物件是指與內容相關聯的圖片。

圖片規定如下:

  • 針對觀看動作,請提供高解析度 (至少 140x210 像素) 且長寬比為 2:3 的高解析度圖片。
    • 圖片必須採用 .jpg.png 格式。
  • 針對收聽動作,請提供高解析度 (至少 300x300 像素) 且長寬比為 1x1 的高解析度圖片。
    • 建議採用 600x600 像素或更高像素。
    • 圖片必須採用 .jpg.png.gif 格式。
  • 圖片網址必須可供檢索和建立索引
  • 您必須擁有圖片的使用權利,並允許圖片顯示在 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"
            }
          }
        }
      }
    }
  ]
}