Dữ liệu có cấu trúc cho video (VideoObject, Clip, BroadcastEvent)

Mặc dù Google sẽ cố gắng tự động tìm hiểu chi tiết về video của bạn, nhưng bạn có thể tác động đến thông tin xuất hiện trong kết quả tìm kiếm video, chẳng hạn như nội dung mô tả, URL hình thu nhỏ, ngày tải lên và thời lượng, bằng cách dùng VideoObject để đánh dấu video. Việc thêm dữ liệu có cấu trúc cho video vào trang xem cũng có thể giúp Google dễ dàng tìm thấy video của bạn hơn. Video có thể xuất hiện trên nhiều nền tảng của Google, chẳng hạn như trang kết quả tìm kiếm chính, chế độ Video, Google Hình ảnh và Google Khám phá:

Nội dung video trong kết quả tìm kiếm trên Google, thẻ video và Khám phá

Dựa trên cách bạn đánh dấu trang xem, video của bạn cũng có thể đủ điều kiện xuất hiện kèm theo các tính năng nâng cao sau:

Tính năng cho video

Huy hiệu TRỰC TIẾP: Đánh dấu video của bạn bằng thuộc tính BroadcastEvent để video xuất hiện kèm theo huy hiệu TRỰC TIẾP. Huy hiệu TRỰC TIẾP có thể áp dụng cho mọi video công khai được phát trực tiếp với thời lượng bất kỳ. Dưới đây là một số ví dụ:

  • Sự kiện thể thao
  • Chương trình lễ trao giải
  • Video của người ảnh hưởng
  • Trò chơi điện tử phát trực tiếp

Hãy nhớ tuân theo nguyên tắc đối với huy hiệu TRỰC TIẾP và sử dụng API Lập chỉ mục để đảm bảo Google thu thập dữ liệu trên trang của bạn vào đúng thời điểm.

Video có huy hiệu TRỰC TIẾP trong kết quả tìm kiếm

Khoảnh khắc chính

Khoảnh khắc chính là một tính năng giúp người dùng di chuyển giữa các phân đoạn video như giữa các chương trong một cuốn sách. Tính năng này có thể giúp tăng mức độ tương tác của người dùng với nội dung của bạn. Google Tìm kiếm sẽ cố gắng tự động phát hiện các phân đoạn trong video của bạn và hiển thị các khoảnh khắc chính cho người dùng. Bạn không cần làm gì để áp dụng tính năng này. Hoặc, bạn cũng có thể cho Google biết các khoảnh khắc quan trọng trong video. Chúng tôi sẽ ưu tiên những khoảnh khắc chính do bạn thiết lập trên YouTube thông qua dữ liệu có cấu trúc hoặc nội dung mô tả.

  • Nếu video được nhúng trên trang web của bạn hoặc bạn đang điều hành một nền tảng video, bạn có thể bật tính năng khoảnh khắc chính theo 2 cách:
    • Dữ liệu có cấu trúc Clip: Chỉ định chính xác thời gian bắt đầu và thời gian kết thúc của từng phân đoạn cũng như nhãn để hiển thị cho từng phân đoạn đó. Tính năng này dùng được ở tất cả ngôn ngữ có hỗ trợ Google Tìm kiếm.
    • Dữ liệu có cấu trúc SeekToAction: Cho Google biết nơi bạn thường đặt dấu thời gian trong cấu trúc URL để Google có thể tự động xác định các khoảnh khắc chính và dẫn người dùng đến những điểm như vậy trong video. Tính năng này được hỗ trợ cho các ngôn ngữ sau: tiếng Anh, tiếng Tây Ban Nha, tiếng Bồ Đào Nha, tiếng Ý, tiếng Trung, tiếng Pháp, tiếng Nhật, tiếng Đức, tiếng Thổ Nhĩ Kỳ, tiếng Hàn, tiếng Hà Lan và tiếng Nga.
  • Nếu lưu trữ video trên YouTube, thì bạn có thể chỉ định chính xác dấu thời gian và nhãn trong phần mô tả video trên YouTube. Hãy xem các phương pháp hay nhất về cách chỉ định dấu thời gian trong phần mô tả trên YouTube. Tính năng này dùng được ở tất cả ngôn ngữ có hỗ trợ Google Tìm kiếm. Nếu bạn muốn bật tính năng phân cảnh video trên YouTube, hãy làm theo các nguyên tắc bổ sung này.

Để chọn hoàn toàn không sử dụng tính năng khoảnh khắc chính (bao gồm cả việc không để Google tự động xác định các khoảnh khắc chính cho video), hãy sử dụng thẻ meta nosnippet.

Video kèm theo khoảnh khắc chính trong kết quả tìm kiếm

Video học tập: Giúp học viên và giáo viên tìm thấy video giáo dục của bạn bằng cách thêm dữ liệu có cấu trúc cho Video học tập. Để biết thêm thông tin về phạm vi cung cấp, nguyên tắc và ví dụ về tính năng này, hãy tham khảo tài liệu về Video học tập.

Video học tập trong kết quả tìm kiếm

Cách thêm dữ liệu có cấu trúc

Dữ liệu có cấu trúc là một định dạng chuẩn để cung cấp thông tin về một trang và phân loại nội dung trên trang. Nếu mới làm quen với dữ liệu có cấu trúc, bạn có thể tìm hiểu thêm về cách thức hoạt động của dữ liệu có cấu trúc.

Sau đây là thông tin tổng quan về cách xây dựng, kiểm tra và phát hành dữ liệu có cấu trúc. Để xem hướng dẫn từng bước về cách thêm dữ liệu có cấu trúc vào một trang web, hãy tham khảo lớp học lập trình về dữ liệu có cấu trúc.

  1. Thêm các thuộc tính bắt buộc. Tùy theo định dạng bạn đang sử dụng, hãy tìm hiểu nơi chèn dữ liệu có cấu trúc trên trang.
  2. Tuân theo các nguyên tắc.
  3. Xác thực mã của bạn bằng công cụ Kiểm tra kết quả nhiều định dạng rồi sửa mọi lỗi nghiêm trọng. Bạn cũng nên cân nhắc việc khắc phục mọi vấn đề không nghiêm trọng có thể bị gắn cờ trong công cụ này, vì những vấn đề này có thể giúp cải thiện chất lượng của dữ liệu có cấu trúc của bạn (tuy nhiên, bạn không nhất thiết thực hiện việc này để nội dung đủ điều kiện xuất hiện dưới dạng kết quả nhiều định dạng).
  4. Triển khai một vài trang có chứa dữ liệu có cấu trúc và sử dụng Công cụ kiểm tra URL để kiểm tra xem Google nhìn thấy trang đó như thế nào. Hãy đảm bảo rằng Google có thể truy cập trang của bạn và bạn không chặn trang bằng tệp robots.txt, thẻ noindex hoặc yêu cầu đăng nhập. Nếu có vẻ như trang không gặp vấn đề nào, bạn có thể yêu cầu Google thu thập lại dữ liệu các URL của mình.
  5. Để thông báo cho Google về các thay đổi sau này, bạn nên gửi một sơ đồ trang web. Bạn có thể tự động hoá quy trình này bằng Search Console Sitemap API.

Ví dụ

Kết quả tìm kiếm tiêu chuẩn về video

Ví dụ về kết quả tìm kiếm tiêu chuẩn về video

Dưới đây là ví dụ về một VideoObject.

JSON-LD

<html>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Introducing the self-driving bicycle in the Netherlands",
      "description": "This spring, Google is introducing the self-driving bicycle in Amsterdam, the world's premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google's ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "uploadDate": "2024-03-31T08:00:00+08:00",
      "duration": "PT1M54S",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "embedUrl": "https://www.example.com/embed/123",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "WatchAction" },
        "userInteractionCount": 5647018
      },
      "regionsAllowed": ["US", "NL"]
    }
    </script>
  </head>
  <body>
  </body>
</html>
Vi dữ liệu

<html itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
<head>
  <title itemprop="name">Introducing the self-driving bicycle in the Netherlands</title>
</head>
<body>
  <meta itemprop="uploadDate" content="2024-03-31T08:00:00+08:00" />
  <meta itemprop="duration" content="PT1M54S" />
  <p itemprop="description">This spring, Google is introducing the self-driving bicycle in Amsterdam, the world's premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google's ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.</p>
  <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope>
    <meta itemprop="userInteractionCount" content="5647018" />
    <meta itemprop="interactionType" itemtype="https://schema.org/WatchAction" />
  </div>
  <link itemprop="embedUrl" href="https://www.example.com/embed/123" />
  <meta itemprop="contentUrl" content="https://www.example.com/video/123/file.mp4" />
  <meta itemprop="regionsAllowed" content="US" />
  <meta itemprop="regionsAllowed" content="NL" />
  <meta itemprop="thumbnailUrl" content="https://example.com/photos/1x1/photo.jpg" />
</body>
</html>

Huy hiệu TRỰC TIẾP

Ví dụ về video trong kết quả tìm kiếm kèm theo huy hiệu TRỰC TIẾP

Dưới đây là ví dụ về VideoObjectBroadcastEvent.

JSON-LD

<html>
  <head>
    <title>Bald Eagle at the Park - Livestream</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "contentURL": "https://example.com/bald-eagle-at-the-park.mp4",
      "description": "Bald eagle at the park livestream.",
      "duration": "PT37M14S",
      "embedUrl": "https://example.com/bald-eagle-at-the-park",
      "expires": "2024-10-30T14:37:14+00:00",
      "regionsAllowed": "US",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "WatchAction" },
        "userInteractionCount": 4756
      },
      "name": "Bald eagle nest livestream!",
      "thumbnailUrl": "https://example.com/bald-eagle-at-the-park",
      "uploadDate": "2024-10-27T14:00:00+00:00",
      "publication": [
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2024-10-27T14:00:00+00:00",
          "endDate": "2024-10-27T14:37:14+00:00"
        },
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2024-10-27T18:00:00+00:00",
          "endDate": "2024-10-27T18:37:14+00:00"
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>
Vi dữ liệu

<html itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
<head>
  <title itemprop="name">Bald Eagle at the Park - Livestream</title>
</head>
<body>
  <meta itemprop="uploadDate" content="2024-10-27T14:00:00+00:00" />
  <meta itemprop="duration" content="PT37M14S" />
  <p itemprop="description">Bald eagle at the park livestream.</p>
  <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope>
    <meta itemprop="userInteractionCount" content="4756" />
    <meta itemprop="interactionType" itemtype="https://schema.org/WatchAction" />
  </div>
  <link itemprop="embedUrl" href="https://example.com/bald-eagle-at-the-park" />
  <meta itemprop="expires" content="2024-10-30T14:37:14+00:00" />
  <meta itemprop="contentUrl" content="https://example.com/bald-eagle-at-the-park.mp4" />
  <meta itemprop="regionsAllowed" content="US" />
  <meta itemprop="thumbnailUrl" content="https://example.com/bald-eagle-at-the-park" />
  <div itemprop="publication" itemtype="https://schema.org/BroadcastEvent" itemscope>
    <meta itemprop="isLiveBroadcast" content="true" />
    <meta itemprop="startDate" content="2024-10-27T14:00:00+00:00" />
    <meta itemprop="endDate" content="2024-10-27T14:37:14+00:00" />
  </div>
  <div itemprop="publication" itemtype="https://schema.org/BroadcastEvent" itemscope>
    <meta itemprop="isLiveBroadcast" content="true" />
    <meta itemprop="startDate" content="2024-10-27T18:00:00+00:00" />
    <meta itemprop="endDate" content="2024-10-27T18:37:14+00:00" />
  </div>
</body>
</html>

Clip

Ví dụ về một video trong kết quả tìm kiếm kèm theo khoảnh khắc chính

Sau đây là một ví dụ về VideoObjectClip.

JSON-LD

<html>
  <head>
    <title>Cat jumps over the fence</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "VideoObject",
      "name": "Cat video",
      "duration": "PT10M",
      "uploadDate": "2024-07-19T08:00:00+08:00",
      "thumbnailUrl": "https://www.example.com/cat.jpg",
      "description": "Watch this cat jump over a fence!",
      "contentUrl": "https://www.example.com/cat_video_full.mp4",
      "ineligibleRegion": "US",
      "hasPart": [{
        "@type": "Clip",
        "name": "Cat jumps",
        "startOffset": 30,
        "endOffset": 45,
        "url": "https://www.example.com/example?t=30"
      },
      {
        "@type": "Clip",
        "name": "Cat misses the fence",
        "startOffset": 111,
        "endOffset": 150,
        "url": "https://www.example.com/example?t=111"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>
Vi dữ liệu

<html itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
<head>
  <title itemprop="name">Cat jumps over the fence</title>
</head>
<body>
  <meta itemprop="uploadDate" content="2024-07-19" />
  <meta itemprop="duration" content="P10M" />
  <p itemprop="description">Watch this cat jump over a fence!</p>
  <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope>
    <meta itemprop="userInteractionCount" content="5647018" />
    <meta itemprop="interactionType" itemtype="https://schema.org/WatchAction" />
  </div>
  <div itemprop="hasPart" itemtype="https://schema.org/Clip" itemscope>
    <meta itemprop="name" content="Cat jumps" />
    <meta itemprop="startOffset" content="30" />
    <meta itemprop="endOffset" content="45" />
    <meta itemprop="url" content="https://www.example.com/example?t=30" />
  </div>
  <div itemprop="hasPart" itemtype="https://schema.org/Clip" itemscope>
    <meta itemprop="name" content="Cat misses the fence" />
    <meta itemprop="startOffset" content="111" />
    <meta itemprop="endOffset" content="150" />
    <meta itemprop="url" content="https://www.example.com/example?t=111" />
  </div>
  <link itemprop="embedUrl" href="https://www.example.com/embed/123" />
  <meta itemprop="contentUrl" content="https://www.example.com/cat_video_full.mp4" />
  <meta itemprop="ineligibleRegion" content="US" />
  <meta itemprop="thumbnailUrl" content="https://www.example.com/cat.jpg" />
</body>
</html>

SeekToAction

Sau đây là một ví dụ về một VideoObject chứa thuộc tính bổ sung cần thiết cho mã đánh dấu SeekToAction.

JSON-LD

<html>
  <head>
    <title>John Smith (@johnsmith123) on VideoApp: My daily workout! #stayingfit</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "potentialAction" : {
        "@type": "SeekToAction",
        "target": "https://video.example.com/watch/videoID?t={seek_to_second_number}",
        "startOffset-input": "required name=seek_to_second_number"
      },
      "name": "My daily workout!",
      "uploadDate": "2024-07-19T08:00:00+08:00",
      "thumbnailUrl": "https://www.example.com/daily-workout.jpg",
      "description": "My daily workout!",
      "embedUrl": "https://example.com/daily-workout"
    }
    </script>
  </head>
  <body>
  </body>
</html>
Vi dữ liệu

<html itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
<head>
  <title itemprop="name">John Smith (@johnsmith123) on VideoApp: My daily workout! #stayingfit</title>
</head>
<body>
  <meta itemprop="uploadDate" content="2024-07-19" />
  <p itemprop="description">My daily workout!</p>
  <div itemprop="potentialAction" itemtype="https://schema.org/SeekToAction" itemscope>
    <meta itemprop="target" content="https://video.example.com/watch/videoID?t={seek_to_second_number}" />
    <meta itemprop="startOffset-input" content="required name=seek_to_second_number" />
  </div>
  <link itemprop="embedUrl" href="https://example.com/daily-workout" />
  <meta itemprop="thumbnailUrl" content="https://www.example.com/daily-workout.jpg" />
</body>
</html>

Nguyên tắc

Để dữ liệu có cấu trúc cho video đủ điều kiện sử dụng trên Google Tìm kiếm, bạn phải tuân thủ Nguyên tắc cơ bản của Tìm kiếm, nguyên tắc chung về dữ liệu có cấu trúccác yêu cầu đối với việc lập chỉ mục video.

Ngoài ra, bạn nên xem các nguyên tắc sau nếu chúng áp dụng cho nội dung video của bạn:

Nguyên tắc về huy hiệu TRỰC TIẾP

Nếu bạn có ý định thêm BroadcastEvent vào video phát trực tiếp, hãy làm theo các nguyên tắc sau:

  • Đừng sử dụng ngôn ngữ thô tục hoặc phản cảm trong dữ liệu có cấu trúc.
  • Để đảm bảo Google thu thập dữ liệu về video phát trực tiếp của bạn vào đúng thời điểm, hãy sử dụng API Lập chỉ mục. Hãy gọi API này khi có các sự kiện sau:
    • Khi video bắt đầu phát
    • Khi video đã dừng phát trực tiếp và thẻ đánh dấu của trang đã được cập nhật để cho biết endDate
    • Bất cứ khi nào có thay đổi đối với mã đánh dấu và bạn cần thông báo cho Google

Các phương pháp hay nhất để chỉ định dấu thời gian trên YouTube

Nếu video của bạn được lưu trữ trên YouTube, thì Google Tìm kiếm có thể tự động hiển thị các khoảnh khắc chính của video dựa trên phần mô tả video trên YouTube. Bạn không cần phải chỉ định dấu thời gian cụ thể trong phần mô tả trên YouTube. Tuy nhiên, bạn có thể cho chúng tôi biết rõ hơn về những điểm quan trọng trong video của bạn và chúng tôi sẽ ưu tiên thông tin đó. Sơ đồ sau cho thấy cách dấu thời gian và nhãn trong phần mô tả video YouTube có thể xuất hiện trong kết quả tìm kiếm:

Một video trong kết quả tìm kiếm kèm theo dấu thời gian và nhãn
1. Nhãn: Tên của đoạn video.
2. Dấu thời gian: Thời điểm bắt đầu đoạn video.

Hãy ghi nhớ các nguyên tắc sau khi đặt định dạng dấu thời gian và nhãn cho phần mô tả trên YouTube:

  • Đặt dấu thời gian theo định dạng sau: [hour]:[minute]:[second]. Nếu không có giờ, bạn không cần phải chỉ định giờ.
  • Chỉ định nhãn của dấu thời gian trên cùng dòng với dấu thời gian.
  • Đặt mỗi dấu thời gian trên một dòng mới trong phần mô tả video.
  • Liên kết dấu thời gian với thời điểm đã chỉ định trong video.
  • Đảm bảo nhãn chứa ít nhất một từ.
  • Liệt kê dấu thời gian theo thứ tự thời gian.

Nếu bạn muốn bật tính năng phân cảnh video trên YouTube, hãy làm theo các nguyên tắc bổ sung này.

Nguyên tắc về Clip và SeekToAction

Nếu bạn định thêm dữ liệu có cấu trúc Clip hoặc SeekToAction để đánh dấu các phân đoạn trong video, hãy làm theo những nguyên tắc sau:

  • Video phải có khả năng liên kết sâu đến một điểm khác với điểm bắt đầu trong URL video. Ví dụ: https://www.example.com/example?t=30 sẽ bắt đầu ở giây thứ 30 của video.
  • Bạn phải thêm dữ liệu có cấu trúc VideoObject vào trang mà người dùng có thể xem video. Nếu người dùng được đưa đến một trang mà họ không thể xem video, thì đó sẽ là một trải nghiệm không tốt.
  • Tổng thời lượng video tối thiểu là 30 giây.
  • Video phải có các thuộc tính bắt buộc nêu trong tài liệu về dữ liệu có cấu trúc VideoObject.
  • Riêng với dữ liệu có cấu trúc Clip: Hãy nhớ đừng để hai đoạn của cùng một video được xác định trên cùng một trang có cùng thời gian bắt đầu.
  • Riêng với dữ liệu có cấu trúc SeekToAction: Bạn phải cho phép Google tìm nạp tệp nội dung video của bạn.

Định nghĩa các kiểu dữ liệu có cấu trúc

Phần này mô tả các kiểu dữ liệu có cấu trúc liên quan đến các tính năng video trong Google Tìm kiếm. Bạn phải thêm các thuộc tính bắt buộc VideoObject để nội dung của mình đủ điều kiện sử dụng trên Google Tìm kiếm. Bạn cũng có thể thêm các thuộc tính mà chúng tôi đề xuất để bổ sung thông tin về VideoObject, nhờ đó cải thiện trải nghiệm người dùng. Ngoài VideoObject, bạn có thể thêm các loại dữ liệu sau để video xuất hiện kèm theo các tính năng nâng cao trong Google Tìm kiếm:

  • BroadcastEvent: Đánh dấu video phát trực tiếp của bạn để video xuất hiện kèm theo huy hiệu TRỰC TIẾP.
  • Clip: Đánh dấu các phân đoạn quan trọng trong video để giúp người dùng nhanh chóng chuyển đến các thời điểm cụ thể trong video.
  • SeekToAction: Cho thấy các khoảnh khắc chính bằng cách cho biết cấu trúc của URL để Google có thể tự động xác định các khoảnh khắc chính và liên kết người dùng đến các thời điểm đó trong video.
  • Video học tập: Giúp học viên và giáo viên tìm thấy video giáo dục của bạn bằng cách thêm dữ liệu có cấu trúc cho Video học tập.

VideoObject

Bạn có thể xem định nghĩa đầy đủ về VideoObject tại schema.org/VideoObject. Nếu bạn không thêm các thuộc tính bắt buộc, có thể Google sẽ không trích xuất được bất kỳ thông tin nào về video đó. Bạn cũng có thể sử dụng các thuộc tính nên có để bổ sung thông tin về nội dung nhằm mang lại trải nghiệm tốt hơn cho người dùng.

Thuộc tính bắt buộc
name

Text

Tiêu đề của video. Hãy nhớ sử dụng văn bản riêng biệt trong thuộc tính name cho từng video trên trang web của bạn.

thumbnailUrl

URL lặp lại

URL trỏ đến tệp hình thu nhỏ riêng biệt của video. Hãy làm theo nguyên tắc về hình thu nhỏ.

uploadDate

DateTime

Ngày giờ xuất bản video lần đầu, ở định dạng ISO 8601. Bạn nên cung cấp thông tin múi giờ; nếu không, chế độ mặc định sẽ là múi giờ mà Googlebot sử dụng.

Thuộc tính nên có
contentUrl

URL

URL trỏ đến các byte nội dung thực tế của tệp video, thuộc một trong các loại tệp được hỗ trợ. Đừng liên kết đến trang chứa video; đây phải là URL của chính các byte nội dung thực tế của tệp video.


"contentUrl": "https://www.example.com/video/123/file.mp4"

Hãy nhớ làm theo các phương pháp hay nhất về video của chúng tôi.

description

Text

Nội dung mô tả video. Hãy nhớ sử dụng văn bản riêng biệt trong thuộc tính description đối với từng video trên trang web của bạn. Các thẻ HTML sẽ bị bỏ qua.

duration

Duration

Thời lượng của video ở định dạng ISO 8601. Ví dụ: PT00H30M5S nghĩa là thời lượng bằng "ba mươi phút và năm giây".

embedUrl

URL

URL trỏ đến trình phát cho một video cụ thể. Đừng liên kết đến trang chứa video; đây phải là URL của trình phát video. Thường thì đây là thông tin trong thuộc tính src của phần tử <embed>.


"embedUrl": "https://www.example.com/embed/123"

Hãy nhớ làm theo các phương pháp hay nhất của chúng tôi về video.

expires DateTime

Nếu có thể, hãy cung cấp ngày và giờ mà sau đó video sẽ không được cung cấp nữa, ở định dạng ISO 8601. Đừng cung cấp thông tin này nếu video của bạn không có ngày hết hạn. Bạn nên cung cấp thông tin múi giờ; nếu không, chế độ mặc định sẽ là múi giờ mà Googlebot sử dụng.

hasPart

Nếu video của bạn có các đoạn quan trọng, hãy lồng các tài sản Clip bắt buộc trong VideoObject. Ví dụ:


<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "VideoObject",
  "name": "Cat video",
  "hasPart": {
    "@type": "Clip",
    "name": "Cat jumps",
    "startOffset": 30,
    "url": "https://www.example.com/example?t=30"
  }
}
</script>
ineligibleRegion

Place

Khu vực mà video không được phép xuất hiện (nếu có). Nếu bạn không chỉ định các khu vực này, Google sẽ cho rằng video này được phép xuất hiện ở mọi nơi. Chỉ định các quốc gia ở định dạng ISO 3166-1 gồm hai hoặc ba chữ cái. Đối với nhiều giá trị, hãy dùng nhiều mã quốc gia (ví dụ: một mảng JSON-LD hoặc nhiều thẻ meta trong Vi dữ liệu).

interactionStatistic

InteractionCounter

Số lần video được xem. Ví dụ:


"interactionStatistic":
  {
    "@type": "InteractionCounter",
    "interactionType": { "@type": "WatchAction" },
    "userInteractionCount": 12345
  }
publication

Nếu bạn có ý định phát trực tiếp video của mình và muốn video đủ điều kiện xuất hiện kèm theo huy hiệu TRỰC TIẾP, hãy lồng các các tài sản BroadcastEvent trong VideoObject. Ví dụ:


<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "VideoObject",
  "name": "Cat video",
  "publication": {
    "@type": "BroadcastEvent",
    "name": "First scheduled broadcast",
    "isLiveBroadcast": true,
    "startDate": "2018-10-27T14:00:00+00:00",
    "endDate": "2018-10-27T14:37:14+00:00"
  }
}
</script>
regionsAllowed

Place

Các khu vực mà video được phép xuất hiện (nếu có). Nếu bạn không chỉ định các khu vực này, Google sẽ cho rằng video này được phép xuất hiện ở mọi nơi. Chỉ định các quốc gia ở định dạng ISO 3166-1 gồm hai hoặc ba chữ cái. Đối với nhiều giá trị, hãy dùng nhiều mã quốc gia (ví dụ: một mảng JSON-LD hoặc nhiều thẻ meta trong Vi dữ liệu).

BroadcastEvent

Để đủ điều kiện xuất hiện kèm theo huy hiệu TRỰC TIẾP, hãy lồng những tài sản sau trong VideoObject. Mặc dù các thuộc tính BroadcastEvent là không bắt buộc, nhưng bạn phải thêm các thuộc tính sau nếu bạn muốn video của mình xuất hiện kèm theo huy hiệu TRỰC TIẾP.

Bạn có thể xem định nghĩa đầy đủ về BroadcastEvent tại schema.org/BroadcastEvent.

Thuộc tính bắt buộc
publication

BroadcastEvent

Mô tả thời điểm bắt đầu phát trực tiếp video. Đây có thể là một danh sách hoặc một đối tượng đơn lẻ.

publication.endDate

DateTime

Ngày giờ mà video phát trực tiếp đó sẽ kết thúc hoặc dự kiến kết thúc, ở định dạng ISO 8601.

Bạn phải cung cấp endDate, nếu như video đã kết thúc và không còn phát trực tiếp. Nếu không xác định được endDate dự kiến trước khi bắt đầu phát trực tiếp, bạn nên cung cấp một giá trị endDate gần đúng.

Nếu endDate là một ngày trong quá khứ hoặc hiện tại, thì tức là video phát trực tiếp đã kết thúc và không còn đang phát trực tiếp nữa. Nếu endDate là một ngày trong tương lai, thì tức là video phát trực tiếp được lên lịch kết thúc vào thời điểm đó.

publication.isLiveBroadcast

Boolean

Đặt thành true nếu video đó đã, đang hoặc sẽ được phát trực tiếp.

publication.startDate

DateTime

Ngày và giờ mà video phát trực tiếp đó bắt đầu hoặc dự kiến bắt đầu, ở định dạng ISO 8601. Nếu startDate là một ngày trong quá khứ hoặc hiện tại, thì tức là video phát trực tiếp đó đã bắt đầu. Nếu startDate là một ngày trong tương lai, thì video phát trực tiếp đó được lên lịch bắt đầu vào thời điểm đó.

Clip

Để báo cho Google biết các dấu thời gian và nhãn nên sử dụng khi hiển thị khoảnh khắc chính, hãy lồng những thuộc tính sau trong VideoObject. Bạn không bắt buộc phải dùng thuộc tính Clip, tuy nhiên, bạn phải thêm những thuộc tính dưới đây nếu muốn Google hiển thị các dấu thời gian và nhãn mà bạn đã chỉ định cho video của mình (thay vì các phân đoạn video mà Google có thể tự động hiển thị).

Bạn có thể xem định nghĩa đầy đủ về Clip tại schema.org/Clip.

Thuộc tính bắt buộc
name

Text

Một tiêu đề mô tả nội dung đoạn video.

startOffset

Number

Thời gian bắt đầu của đoạn video, được biểu thị bằng số giây tính từ đầu video.

url

URL

URL trỏ đến thời gian bắt đầu của đoạn video đó.

URL của đoạn phải trỏ đến cùng một đường dẫn URL với video, nhưng có thêm tham số truy vấn để chỉ định thời gian.

Ví dụ: URL sau có nghĩa là video bắt đầu ở phút thứ 2:00:


"url": "https://www.example.com/example?t=120"
Thuộc tính nên có
endOffset

Number

Thời gian kết thúc của đoạn, được biểu thị bằng số giây tính từ đầu công việc.

SeekToAction

Để cho Google biết cấu trúc của URL (nhằm giúp Google hiển thị những khoảnh khắc chính được xác định tự động trong video), hãy lồng những thuộc tính sau trong VideoObject. Bạn không bắt buộc phải dùng thuộc tính SeekToAction. Tuy nhiên, bạn phải thêm những thuộc tính sau nếu muốn Google hiểu cách cấu trúc URL của bạn hoạt động, nhờ đó Google có thể liên kết người dùng đến một thời điểm trong video.

Bạn có thể xem định nghĩa đầy đủ về SeekToAction tại schema.org/SeekToAction.

Thuộc tính bắt buộc
potentialAction

SeekToAction

Cho biết có một thao tác tiềm ẩn. Hãy lồng những thuộc tính sau đây

Ví dụ:


{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "potentialAction" : {
    "@type": "SeekToAction",
    "target": "https://video.example.com/watch/videoID?t={seek_to_second_number}",
    "startOffset-input": "required name=seek_to_second_number"
  }
}
potentialAction.startOffset-input

Text

Chuỗi giữ chỗ mà Google sẽ xác định là cấu trúc dấu thời gian của bạn rồi thay thế bằng số giây cần bỏ qua. Hãy dùng giá trị sau:


"startOffset-input": "required name=seek_to_second_number"

startOffset-input là một tài sản được chú thích. Hãy xem trang về Potential Actions để biết thêm thông tin.

potentialAction.target

EntryPoint

URL của trang chứa VideoObject này, bao gồm cả một phần giữ chỗ trong cấu trúc URL cho biết vị trí mà Google có thể chèn số giây cần bỏ qua trong video. Đây là cách để Google hiểu được cấu trúc URL và cách bạn định dạng các dấu thời gian. Thay thế phần dấu thời gian của URL bằng chuỗi giữ chỗ sau đây:


{seek_to_second_number}

Ví dụ như thay thế phần dấu thời gian của URL:


"target": "https://video.example.com/watch/videoID?t=30"

Giờ đây, dấu thời gian hiển thị như sau:


"target": "https://video.example.com/watch/videoID?t={seek_to_second_number}"

Theo dõi kết quả nhiều định dạng bằng Search Console

Search Console là công cụ giúp bạn theo dõi hiệu quả hoạt động của các trang web trong Google Tìm kiếm. Bạn không cần đăng ký sử dụng Search Console để đưa trang web vào Google Tìm kiếm, nhưng việc làm vậy có thể giúp bạn hiểu và cải thiện cách Google nhìn thấy trang web của bạn. Bạn nên kiểm tra Search Console trong những trường hợp sau:

  1. Sau lần đầu triển khai dữ liệu có cấu trúc
  2. Sau khi phát hành mẫu mới hoặc cập nhật mã của bạn
  3. Phân tích lưu lượng truy cập định kỳ

Sau lần đầu triển khai dữ liệu có cấu trúc

Sau khi Google lập chỉ mục các trang của bạn, hãy tìm vấn đề bằng cách sử dụng Báo cáo trạng thái kết quả nhiều định dạng có liên quan. Lý tưởng nhất là số mục hợp lệ tăng lên và số mục không hợp lệ không tăng. Nếu bạn tìm thấy vấn đề trong dữ liệu có cấu trúc:

  1. Sửa các mục không hợp lệ.
  2. Kiểm tra URL đang hoạt động để xem vấn đề còn tồn tại không.
  3. Yêu cầu xác thực bằng cách sử dụng báo cáo trạng thái.

Sau khi phát hành các mẫu mới hoặc cập nhật mã

Khi bạn thực hiện những thay đổi đáng kể trên trang web của mình, hãy theo dõi xem số lượng mục dữ liệu có cấu trúc không hợp lệ có tăng lên hay không.
  • Nếu bạn thấy số mục không hợp lệ gia tăng, thì có lẽ bạn đã triển khai một mẫu mới không hoạt động được hoặc trang web của bạn tương tác với mẫu hiện có theo cách mới và không hợp lệ.
  • Nếu bạn thấy số mục hợp lệ giảm (nhưng số mục không hợp lệ không tăng), thì có thể bạn không còn nhúng dữ liệu có cấu trúc trên các trang của mình nữa. Hãy sử dụng Công cụ kiểm tra URL để tìm hiểu nguyên nhân gây ra vấn đề.

Phân tích lưu lượng truy cập định kỳ

Phân tích lưu lượng truy cập bạn nhận được qua Google Tìm kiếm bằng cách sử dụng Báo cáo hiệu suất. Dữ liệu báo cáo sẽ cho bạn biết bạn tần suất trang web xuất hiện dưới dạng kết quả nhiều định dạng trong Tìm kiếm, tần suất người dùng nhấp vào trang và vị trí trung bình của trang trong kết quả tìm kiếm. Bạn cũng có thể tự động lấy các kết quả này bằng Search Console API.

Khắc phục sự cố

Nếu gặp sự cố khi triển khai hoặc gỡ lỗi dữ liệu có cấu trúc, thì bạn có thể tham khảo một số tài nguyên trợ giúp sau đây.