SportsEvents – Lập mô hình, các phương pháp hay nhất và nguồn cấp dữ liệu mẫu

Định nghĩa

SportsEvent là một loại thực thể đại diện cho một trận đấu thể thao hoặc bản phát lại đầy đủ của một trận đấu thể thao.

Bạn có thể mô hình hoá những gì dưới dạng SportsEvent? Một trận đấu thể thao
Sự kiện nào không thể được mô hình hoá dưới dạng SportsEvent?

Mọi nội dung dạng ngắn, đoạn video hoặc nội dung bổ trợ. Sau đây là danh sách:

  • Tóm tắt ngẫu nhiên hoặc phát lại các đoạn video ngắn
  • Bản xem trước trò chơi
  • Điểm nổi bật của trò chơi
  • Cảnh quay hỏng trong trò chơi
  • Đoạn video phỏng vấn cầu thủ
  • Video hậu trường
  • Bài đánh giá trò chơi (do người dùng tạo hoặc nội dung khác)
  • Các đoạn video ngắn ngẫu nhiên trong trò chơi

Làm cách nào để xử lý nội dung bổ trợ như vậy?

Các trường hợp sử dụng phổ biến cho SportsEvents

S.No. Nội dung mô tả Thực thể bắt buộc
Trường hợp 1

Tôi cần lập mô hình cho một SportsEvent thuộc danh mục truyền hình trực tuyến của tôi và phát trực tuyến.

Trận đấu được phát trực tuyến qua Internet và không liên kết với bất kỳ kênh nào.

SportsEvent đại diện cho trò chơi.

BroadcastEvent đại diện cho chương trình phát sóng trận đấu.

Trường hợp 2 Tôi cần lập mô hình một SportsEvent thuộc danh mục truyền hình trực tuyến của tôi và được phát trực tuyến trên một kênh.

SportsEvent đại diện cho trò chơi.

BroadcastEvent đại diện cho thời gian phát sóng trận đấu.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService thực thể đại diện cho kênh và danh sách kênh.

Trường hợp 3 Kết hợp hai trường hợp trước. Nếu bạn kết hợp các trường hợp sử dụng trước đó, hãy cung cấp tất cả loại thực thể được liệt kê trong cột "Thực thể bắt buộc" tương ứng.

Các phương pháp hay nhất và thông tin chi tiết về một số quy trình kiểm tra mà chúng tôi thực hiện

Các nguyên tắc và quy trình kiểm tra chất lượng sau đây áp dụng khi lập mô hình sự kiện thể thao và chương trình phát sóng sự kiện thể thao.

Áp dụng các quy tắc sau cho tất cả các hoạt động tích hợp SportsEvent:

  • Đặt tất cả đường liên kết sâu về thể thao trên SportsEvent.potentialAction: Đường liên kết sâu ở cấp trận đấu (WatchAction) – cho cả sự kiện phát trực tiếp không có kênh và video phát lại theo yêu cầu – phải nằm riêng trên thực thể SportsEvent (SportsEvent.potentialAction). Đừng bao giờ đặt potentialAction trên BroadcastEvent tham chiếu đến SportsEvent. (Đối với các chương trình phát sóng trên kênh truyền hình tuyến tính không có đường liên kết sâu dành riêng cho sự kiện, hãy cung cấp đường liên kết sâu của kênh trên BroadcastService.potentialAction.) Nếu một trận đấu có nhiều luồng phát trực tiếp (ví dụ: nguồn cấp dữ liệu theo khu vực, chương trình phát sóng tại sân nhà hoặc sân khách, nhiều ngôn ngữ hoặc URL phát lại video theo yêu cầu và phát trực tiếp riêng biệt), hãy cung cấp một mảng đối tượng WatchAction trong SportsEvent.potentialAction.
  • Cửa sổ trước khi phát sóng (availabilityStarts): Đặt SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts ít nhất 14 ngày trước SportsEvent.startDate (availabilityStarts <= SportsEvent.startDate - 14 days) để các ô trò chơi sắp diễn ra và thông báo đón xem có thể xuất hiện trước. Bạn không cần phải cung cấp thực thể nguồn cấp dữ liệu trước 14 ngày. Bạn có thể cung cấp dữ liệu sự kiện gần ngày diễn ra trận đấu, miễn là dấu thời gian availabilityStarts được đặt trước SportsEvent.startDate ít nhất 14 ngày.
  • Khoảng thời gian đệm cho hiệp phụ (availabilityEnds): Đặt SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds sau SportsEvent.endDate với khoảng thời gian đệm ít nhất từ 2 đến 3 giờ (availabilityEnds >= SportsEvent.endDate + 2 to 3 hours hoặc cho đến khi kết thúc khoảng thời gian phát lại video theo yêu cầu) để đường liên kết sâu không hết hạn trong thời gian diễn ra hiệp phụ hoặc chương trình bình luận sau trận đấu.
  • Yêu cầu đối với @id và url:
    • Sử dụng các giá trị @id riêng biệt: BroadcastEvent.@id phải khác với SportsEvent.@id.
    • Bỏ qua url: Không thêm thuộc tính url vào thực thể BroadcastEvent hoặc SportsEvent.
S.No. Thực thể bắt buộc Nguyên tắc
Trường hợp 1

Tôi cần lập mô hình cho một SportsEvent thuộc danh mục truyền hình trực tuyến của tôi và phát trực tuyến.

Trận đấu được phát trực tuyến qua Internet và không liên kết với bất kỳ kênh nào.

Thực thể bắt buộc

  • SportsEvent đại diện cho trò chơi
  • BroadcastEvent đại diện cho việc phát sóng trận đấu

Nguyên tắc lập mô hình

Trường hợp phụ 1: Trò chơi chỉ có sẵn ở dạng trực tiếp (và không nằm trong danh mục Video theo yêu cầu)

  • Cung cấp thực thể BroadcastEvent để chia sẻ lịch phát sóng, tham chiếu đến trận đấu bằng BroadcastEvent.broadcastOfEvent và chỉ định quốc gia phát sóng trong BroadcastEvent.location.
  • Cung cấp đường liên kết sâu của sự kiện phát trực tiếp trên thực thể SportsEvent bằng cách sử dụng SportsEvent.potentialAction (được định cấu hình bằng availabilityStarts trước 14 ngày và vùng đệm ngoài giờ 2 – 3 giờ availabilityEnds).
  • Không cung cấp BroadcastEvent.potentialAction, BroadcastEvent.url hoặc SportsEvent.url.
  • Không cung cấp BroadcastEvent.publishedOn vì trò chơi phát trực tuyến mà không có kênh truyền hình truyền thống.

Trường hợp phụ 2: Trận đấu được phát trực tiếp và có trong danh mục Video theo yêu cầu (ví dụ: khi video phát lại toàn bộ trận đấu vẫn được cung cấp theo yêu cầu)

  • Cung cấp thực thể BroadcastEvent để chia sẻ lịch phát sóng của từng chương trình phát sóng (tham chiếu BroadcastEvent.broadcastOfEvent và chỉ định BroadcastEvent.location).
  • Hợp nhất cả tính năng phát trực tiếp và phát video theo yêu cầu trên SportsEvent.potentialAction – bằng cách mở rộng availabilityEnds cho đến khi kết thúc cửa sổ Video theo yêu cầu nếu URL và quyền giống hệt nhau, hoặc bằng cách cung cấp nhiều đối tượng WatchAction trong SportsEvent.potentialAction với các cửa sổ actionAccessibilityRequirement tương ứng.
  • Không cung cấp BroadcastEvent.potentialAction, BroadcastEvent.url, SportsEvent.url hoặc BroadcastEvent.publishedOn.

Kiểm tra chất lượng cần thực hiện

  • Đặt BroadcastEvent.isLiveBroadcast thành boolean true (không có dấu ngoặc kép) khi trận đấu phát sóng trực tiếp. Đặt giá trị này thành false cho một chương trình phát sóng phát lại theo lịch.
  • Đối với các thực thể BroadcastEvent không hoạt động, BroadcastEvent.startDate không được sớm hơn SportsEvent.startDate.
  • Thêm parentOrganization (có URL sameAs của Wikipedia) vào cả homeTeam và awayTeam.
Trường hợp 2

Tôi cần lập mô hình cho một SportsEvent thuộc danh mục truyền hình trực tuyến của tôi và phát trực tuyến trên một kênh.

Thực thể bắt buộc

  • SportsEvent đại diện cho trò chơi.
  • BroadcastEvent đại diện cho chương trình phát sóng trận đấu.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService thực thể đại diện cho kênh và danh sách kênh.

Nguyên tắc lập mô hình

Trường hợp phụ 1: Trò chơi chỉ có sẵn trực tiếp trên kênh truyền hình truyền thống (và không thuộc danh mục Video theo yêu cầu)

  • Cung cấp thực thể BroadcastEvent để chia sẻ lịch phát sóng, trong đó BroadcastEvent.publishedOn trỏ đến thực thể BroadcastService, BroadcastEvent.broadcastOfEvent trỏ đến thực thể SportsEvent và BroadcastEvent.location chỉ định quốc gia phát sóng.
  • Cung cấp các thực thể BroadcastService, Organization, TelevisionChannel và CableOrSatelliteService để đại diện cho kênh và danh sách kênh, cùng với đường liên kết sâu của kênh trên BroadcastService.potentialAction.
  • Tuyệt đối không cung cấp BroadcastEvent.potentialAction, BroadcastEvent.url hoặc SportsEvent.url.
  • Nếu bạn cũng hỗ trợ đường liên kết sâu trực tiếp dành riêng cho trận đấu, hãy cung cấp đường liên kết đó trên SportsEvent.potentialAction; nếu chỉ có thể phát qua đường liên kết sâu của kênh truyền hình tuyến tính trên BroadcastService.potentialAction, hãy bỏ qua SportsEvent.potentialAction.

Trường hợp phụ 2: Trận đấu được phát trực tiếp trên một kênh và nằm trong danh mục Video theo yêu cầu

  • Cung cấp thực thể BroadcastEvent (có publishedOn, broadcastOfEvent và location) để chia sẻ lịch phát sóng của kênh.
  • Cung cấp các thực thể BroadcastService, Organization, TelevisionChannel và CableOrSatelliteService, cùng với đường liên kết sâu của kênh trên BroadcastService.potentialAction.
  • Tuyệt đối không cung cấp BroadcastEvent.potentialAction, BroadcastEvent.url hoặc SportsEvent.url.
  • Cung cấp SportsEvent.potentialAction trên thực thể SportsEvent cho cửa sổ phát lại cấp sự kiện/Video theo yêu cầu.

Kiểm tra chất lượng cần thực hiện

  • Đặt BroadcastEvent.isLiveBroadcast thành boolean true (không có dấu ngoặc kép) khi trận đấu đang diễn ra và false cho video phát lại trận đấu.
  • Đối với các thực thể BroadcastEvent không hoạt động, BroadcastEvent.startDate không được sớm hơn SportsEvent.startDate.
  • Thêm parentOrganization (có URL sameAs của Wikipedia) vào cả homeTeam và awayTeam.

Ví dụ

Trường hợp 1: Một sự kiện thể thao thuộc danh mục truyền hình trực tuyến và được phát trực tuyến

Sự kiện phát sóng

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/basketball/professional/final_game_6",
  "name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
  "description": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B.",
  "startDate": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Sự kiện thể thao

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "SportsEvent",
  "@id": "http://example.com/basketball/professional/final_game_6",
  "name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
  "sport": "https://en.wikipedia.org/wiki/Basketball",
  "description": {
    "@language": "en",
    "@value": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B."
  },
  "startDate": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "homeTeam": {
    "@type": "SportsTeam",
    "name": "Team B",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "Jane Doe"
      }
    ]
  },
  "location": {
    "@type": "Place",
    "name": "Example Stadium",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "1600 Amphitheatre Pkwy",
      "addressLocality": "Mountain View",
      "addressRegion": "CA",
      "postalCode": "94043",
      "addressCountry": "US"
    }
  },
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "TMS_ID",
      "value": "EP000194303282"
    }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://www.example.com/pbl_finals_game_6?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": "2019-09-01T10:00-08:00",
      "availabilityEnds": "2019-09-16T16:00-08:00",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Trường hợp 2: Một sự kiện thể thao thuộc danh mục truyền hình trực tuyến và được phát trực tuyến trên một kênh

Sự kiện phát sóng

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/basketball/professional/final_game_6",
  "name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
  "description": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B.",
  "startDate": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Sự kiện thể thao

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "SportsEvent",
  "@id": "http://example.com/basketball/professional/final_game_6",
  "name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
  "sport": "https://en.wikipedia.org/wiki/Basketball",
  "description": {
    "@language": "en",
    "@value": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B."
  },
  "startDate": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "homeTeam": {
    "@type": "SportsTeam",
    "name": "Team B",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "Jane Doe"
      }
    ]
  },
  "location": {
    "@type": "Place",
    "name": "Example Stadium",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "1600 Amphitheatre Pkwy",
      "addressLocality": "Mountain View",
      "addressRegion": "CA",
      "postalCode": "94043",
      "addressCountry": "US"
    }
  },
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "TMS_ID",
      "value": "EP000194303282"
    }
  ]
}

BroadcastService, CableOrSatelliteService, TelevisionChannel và Organization như được định nghĩa trong phần Kênh truyền hình trực tuyến trong Khái niệm.

Làm cách nào để xử lý nội dung bổ trợ?

Nội dung nào được coi là nội dung bổ trợ?
  • Tóm tắt ngẫu nhiên hoặc phát lại các đoạn video ngắn
  • Bản xem trước trò chơi
  • Điểm nổi bật của trò chơi
  • Cảnh quay hỏng trong trò chơi
  • Đoạn video phỏng vấn cầu thủ
  • Video hậu trường
  • Bài đánh giá trò chơi (do người dùng tạo hoặc nội dung khác)
  • Các đoạn video ngắn ngẫu nhiên khác trong trò chơi
S.No. Trường hợp sử dụng Nguyên tắc lập mô hình
Trường hợp 1 Tôi có nội dung bổ trợ trong danh mục Video theo yêu cầu.
  • Thuộc tính này không được hỗ trợ và không thể cung cấp trong nguồn cấp dữ liệu.
  • Tuy nhiên, bạn có thể sử dụng ViTA để cung cấp một số nội dung này. Hãy liên hệ với người đại diện của Google để tìm hiểu thêm về ViTA.
Trường hợp 2 Tôi có nội dung bổ trợ trong danh mục nội dung phát trực tiếp

Trường hợp phụ 1: Nội dung có thể phát trực tiếp trên Internet

  • Cung cấp thực thể BroadcastEvent để chia sẻ lịch phát sóng.
  • Cung cấp đường liên kết sâu của nội dung bổ trợ bằng cách sử dụng thuộc tính BroadcastEvent.potentialAction (ngoại lệ này chỉ áp dụng cho nội dung bổ trợ phát trực tiếp độc lập vì không có thực thể SportsEvent trong nguồn cấp dữ liệu).
  • Thêm mọi siêu dữ liệu liên quan (vào đoạn trích) trực tiếp vào BroadcastEvent . Ví dụ: bạn có thể thêm hình ảnh bằng thuộc tính BroadcastEvent.image . Bạn có thể thêm mức phân loại theo độ tuổi bằng thuộc tính BroadcastEvent.contentRating .
  • Vì loại nội dung này không phải là SportsEvent, nên nguồn cấp dữ liệu không được chứa thực thể SportsEvent. Do đó, bạn không được cung cấp thuộc tính broadcastOfEvent trên BroadcastEvent .
  • Vì không liên kết với kênh nên bạn không cần cung cấp thuộc tính publishedOn trên BroadcastEvent.

Trường hợp phụ 2: Nội dung có thể phát trực tiếp trên Internet trên một kênh

  • Bạn phải cung cấp thực thể BroadcastEvent để chia sẻ lịch phát sóng.
  • Bạn phải cung cấp các thực thể BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService để thể hiện kênh và danh sách nhà cung cấp.
  • Đường liên kết sâu đến trò chơi phải là đường liên kết sâu BroadcastService , được biểu thị bằng thuộc tính BroadcastService.potentialAction (bắt buộc).
  • Bạn không được cung cấp thuộc tính BroadcastEvent.potentialAction.
  • Mọi siêu dữ liệu liên kết (với đoạn video) phải được thêm trực tiếp vào BroadcastEvent. Ví dụ: bạn có thể thêm hình ảnh bằng thuộc tính BroadcastEvent.image. Bạn có thể thêm mức phân loại theo độ tuổi bằng thuộc tính BroadcastEvent.contentRating.
  • Vì loại nội dung này không phải là SportsEvent, nên nguồn cấp dữ liệu không được chứa thực thể SportsEvent. Do đó, bạn không được cung cấp thuộc tính broadcastOfEvent trên BroadcastEvent.
  • Vì thuộc tính này được liên kết với một kênh, hãy cung cấp thuộc tính publishedOn trên BroadcastEvent.
Trường hợp 3 Tôi có nội dung bổ trợ trong cả danh mục Video theo yêu cầu và Truyền hình trực tuyến

Vì nội dung bổ trợ về thể thao theo yêu cầu hiện không được chấp nhận trong nguồn cấp dữ liệu, nên trường hợp này tương tự như trường hợp 2. Xem hướng dẫn tại đó.

Câu hỏi thường gặp

Hỏi: Tôi có thể tìm thông số kỹ thuật liên quan cho các thực thể nêu trên ở đâu?

Đáp: Bạn có thể xem các thông số kỹ thuật bắt buộc tại đây.

Tài liệu tổng thể Đường liên kết
SportsEvent Đường liên kết
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Đường liên kết
BroadcastEvent Đường liên kết

Hỏi: Có tài liệu nào chi tiết hơn giải thích cách lập mô hình các kênh truyền hình trực tuyến và danh sách kênh không?

Đáp: Có, bạn có thể xem thêm thông tin chi tiết trong phần Kênh truyền hình trực tuyến trong mục Khái niệm. Vui lòng yêu cầu quyền xem nếu bạn không thể xem tài liệu.

Hỏi: ViTA có hỗ trợ cả trận đấu trực tiếp đầy đủ và video phát lại toàn bộ trận đấu không?

Đáp: ViTA hỗ trợ siêu dữ liệu về các trận đấu trực tiếp đầy đủ và bản phát lại đầy đủ của trận đấu theo giải đấu (ngoài một số nội dung bổ trợ)

  • Đối với những đối tác đã có nguồn cấp dữ liệu Hành động liên quan đến nội dung nghe nhìn đang hoạt động với Google hoặc có dịch vụ Video theo yêu cầu hoặc Truyền hình trực tuyến, Google yêu cầu nguồn cấp dữ liệu đó phải mở rộng và bao gồm cả các loại SportsEvent được hỗ trợ.

    • Trong thời gian ngắn, các Đối tác có thể sử dụng ViTA để phân tích nội dung bổ trợ. Hỗ trợ tất cả các loại nội dung thông qua nguồn cấp dữ liệu sẽ được triển khai trong dài hạn.
  • Đối với những đối tác không cung cấp dịch vụ video theo yêu cầu hoặc truyền hình trực tuyến mà chỉ cung cấp nội dung thể thao theo giải đấu và nội dung bổ trợ liên quan, ViTA là một lựa chọn tuyệt vời để bắt đầu. Hãy liên hệ với người đại diện của Google để tìm hiểu thêm về ViTA.