Tổng quan về cấu trúc nguồn cấp dữ liệu

Nguồn cấp dữ liệu Hành động trên nội dung đa phương tiện là một đối tượng JSON chứa một tập hợp các thực thể. Thực thể là một đối tượng schema.org đại diện cho một mục trong danh mục của bạn: một tập chương trình truyền hình, một chương trình truyền hình dài tập, một bộ phim, một bài hát, một đĩa nhạc và nhiều nội dung khác.

Hình 1. Cấu trúc nguồn cấp dữ liệu của Hành động xem và Hành động nghe.

Cấu trúc nguồn cấp dữ liệu

Hành động xem và Hành động nghe có cấu trúc nguồn cấp dữ liệu khác nhau.

Hành động xem có hệ phân cấp như sau:
Hành động nghe có hệ phân cấp như sau:

Phong bì nguồn cấp dữ liệu

Phong bì nguồn cấp dữ liệu là đối tượng cấp cao nhất trong nguồn cấp dữ liệu Media Actions. Đối tượng này chứa một mảng đối tượng đánh dấu nội dung (thực thể) đại diện cho tất cả nội dung trong danh mục của bạn.

Phong bì nguồn cấp dữ liệu hỗ trợ các thuộc tính sau:

Thuộc tính Loại Mô tả
@context URL Bắt buộc – Đặt thành http://schema.org
@type Văn bản Bắt buộc – Đặt thành DataFeed.
dateModified DateTime Bắt buộc – Ngày và giờ sửa đổi gần đây nhất của nguồn cấp dữ liệu, ở định dạng ISO 8601 (bao gồm cả múi giờ).
dataFeedElement Thing Bắt buộcCác thực thể trong danh mục nội dung đa phương tiện của bạn.

Mẫu phong bì nguồn cấp dữ liệu

{
  "@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> },
    ...
  ]
}

Đánh dấu nội dung

Đối tượng đánh dấu nội dung đại diện cho một thực thể duy nhất trong danh mục của bạn: phim, tập chương trình truyền hình, phim truyền hình, bài hát, đĩa nhạc, đài phát thanh, v.v. Đối tượng này chứa giá trị nhận dạng và URL chính tắc của nội dung, đồng thời giúp mô tả nội dung thông qua siêu dữ liệu.

Mẫu đánh dấu nội dung

Đối tượng đánh dấu nội dung có thể có một mảng đối tượng đánh dấu Hành động, cho phép liên kết nội dung với nhiều đối tượng đánh dấu Hành động. Ví dụ: nội dung có thể có một đối tượng đánh dấu Hành động riêng cho mỗi khu vực.

{
   "@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> }
   ],
   ...
}

Đánh dấu hành động

Đối tượng đánh dấu Hành động mô tả đường liên kết sâu đưa người dùng đến nội dung và cấp truy cập cần thiết đối với nội dung đó. Đối tượng là một thuộc tính (potentialAction) của đối tượng đánh dấu nội dung.

Có hai cách để chỉ định các hạn chế truy cập:

Mẫu đánh dấu hành động

Nếu nội dung có nhiều đường liên kết sâu, thì đối tượng đánh dấu Hành động sẽ bao gồm nhiều đối tượng mục tiêu. Ví dụ: đường liên kết sâu của nội dung dành cho iOS có thể khác với đường liên kết sâu trong Android. Ngoài ra, nếu có các quy định hạn chế khác nhau về quyền truy cập tuỳ theo khu vực và khoảng thời gian, thì một đối tượng đánh dấu Hành động có thể có nhiều đối tượng thông số kỹ thuật về Quyền truy cập hành động hoặc đối tượng ưu đãi, như minh hoạ trong các mẫu bên dưới.

Mẫu đối tượng đánh dấu Hành động cho Hành động xem:

"potentialAction": {
  "@type": "WatchAction",
  "target": [
    { <TARGET OBJECT 01> },
    { <TARGET OBJECT 02> }
  ],
  "actionAccessibilityRequirement": [
    { <ACTION ACCESSIBILITY OBJECT 01> },
    { <ACTION ACCESSIBILITY OBJECT 02> }
  ]
}

Mẫu đối tượng đánh dấu hành động cho Hành động nghe:

"potentialAction": {
  "@type": "ListenAction",
  "target": [
    { <TARGET OBJECT 01> },
    { <TARGET OBJECT 02> }
  ],
  "expectsAcceptanceOf": [
    { <OFFER OBJECT 01> },
    { <OFFER OBJECT 02> }
  ]
}

Mục tiêu

Đối tượng mục tiêu cung cấp dữ liệu liên kết của một đường liên kết sâu đến nhiều nền tảng của Google. Đối tượng là một thuộc tính (target) của Đối tượng đánh dấu Hành động.

Ví dụ về mục tiêu

Nếu nội dung có nhiều đường liên kết sâu dựa trên nền tảng, hãy tạo nhiều đối tượng đích để cung cấp các mối liên kết khác nhau. Ví dụ: đường liên kết sâu của nội dung đến Chromecast có thể khác với đường liên kết sâu của các nền tảng khác như trong ví dụ dưới đây.

Ví dụ về đối tượng mục tiêu (cơ bản):

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

Ví dụ về đối tượng mục tiêu có 2 đường liên kết sâu:

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

Thông số kỹ thuật về quyền truy cập hành động

Đối tượng thông số kỹ thuật về quyền truy cập vào hành động mô tả yêu cầu về quyền truy cập vào dựa trên khu vực và khoảng thời gian. Đối tượng là một thuộc tính, actionAccessibilityRequirement trong tổng số Đối tượng đánh dấu hành động.

category của đối tượng có thể là bất kỳ giá trị nào sau đây:

Đăng ký nội dung nghe nhìn

Đối tượng gói thuê bao nội dung nghe nhìn mô tả thông tin chi tiết về gói thuê bao cần thiết cho nội dung. Đối tượng là một thuộc tính requiresSubscription của một Đối tượng thông số kỹ thuật truy cập hành động. Đây là bắt buộc nếu actionAccessibilityRequirement.categorysubscription hoặc externalSubscription và gói thuê bao của bạn bao gồm nhiều gói hoặc cấp hoặc có hỗ trợ tiện ích bổ sung. Không bao gồm mã này nếu gói thuê bao có một bậc và cấp quyền truy cập vào tất cả nội dung trong danh mục của bạn.

Ví dụ về gói thuê bao nội dung nghe nhìn

Ví dụ về đối tượng gói thuê bao nội dung nghe nhìn:

"requiresSubscription": {
  "@type": "MediaSubscription",
  "@id": "http://www.example.com/premium_subscription",
  "name": "Example Premium",
  "sameAs": "http://www.example.com/premium_subscription"
}

Lời đề nghị

Đối tượng ưu đãi mô tả giá liên kết với nội dung. Đối tượng là một thuộc tính (expectsAcceptanceOf) của các đối tượng sau:

Ví dụ về ưu đãi

Hành động xem chỉ định thuộc tính expectsAcceptanceOf trong Đối tượng thông số kỹ thuật truy cập hành động:

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

Thao tác nghe chỉ định trực tiếp thuộc tính expectsAcceptanceOf trong đối tượng đánh dấu Hành động:

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

Bài đăng có hình ảnh

Đối tượng hình ảnh mô tả hình ảnh liên kết với nội dung.

Sau đây là các yêu cầu đối với hình ảnh:

  • Đối với Hành động đồng hồ, hãy cung cấp hình ảnh có độ phân giải cao (tối thiểu 140x210 pixel) với tỷ lệ khung hình 2:3.
    • Hình ảnh phải ở định dạng .jpg hoặc .png.
  • Đối với tính năng Listen Actions, hãy cung cấp hình ảnh có độ phân giải cao (tối thiểu 300x300 pixel) với tỷ lệ khung hình 1x1.
    • Bạn nên sử dụng kích thước từ 600x600 pixel trở lên.
    • Hình ảnh phải ở định dạng .jpg, .png hoặc .gif.
  • URL của hình ảnh phải cho phép Google thu thập dữ liệu và lập chỉ mục.
  • Bạn phải có quyền sử dụng hình ảnh này và cho phép hình ảnh đó xuất hiện trên các thiết bị và sản phẩm của Google.
  • Hình ảnh không được chứa các nội dung sau:
    • Hình ảnh bị mờ, vỡ nét, bị xoay hoặc có chất lượng kém.
    • Ảnh không được cấp phép hoặc ảnh trên kho ảnh.
    • Ảnh khoả thân.
    • Nội dung bất hợp pháp.
  • Khi bạn cập nhật MusicPlaylist, hãy cập nhật hình ảnh để phản ánh nội dung mới.

Ví dụ về hình ảnh

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

Ví dụ về nguồn cấp dữ liệu

Các ví dụ sau đây minh hoạ sự khác biệt về cấu trúc nguồn cấp dữ liệu giữa Hành động xem và Hành động nghe.

Ví dụ về Hành động xem

{
  "@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"
        }
      ]
    }
  ]
}

Ví dụ về Hành động nghe

{
  "@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"
            }
          }
        }
      }
    }
  ]
}