구조화된 동영상(VideoObject, Clip, BroadcastEvent) 데이터

Google이 동영상의 세부정보를 자동으로 파악하려고 하지만, 동영상에 VideoObject를 표시하여 설명, 썸네일 URL, 업로드 날짜, 길이와 같이 동영상 결과에 표시되는 정보에 영향을 줄 수 있습니다. 보기 페이지에 구조화된 동영상 데이터를 추가하면 Google에서 동영상을 더 쉽게 찾을 수 있습니다. 동영상은 기본 검색 결과 페이지, 동영상 모드, Google 이미지, Google 디스커버 등 Google의 여러 위치에 표시될 수 있습니다.

Google 검색 결과, 동영상 탭, 디스커버의 동영상 콘텐츠

보기 페이지를 마크업하는 방식에 따라 동영상에서 다음과 같은 특정 동영상 기능을 사용할 수도 있습니다.

동영상 기능

실시간 배지: BroadcastEvent로 표시하여 동영상에 실시간 배지를 추가하세요. 실시간 배지는 길이에 관계없이 실시간으로 스트리밍되는 모든 공개 동영상에 적용될 수 있습니다. 예를 들면 다음과 같습니다.

  • 스포츠 경기
  • 시상식
  • 인플루언서 동영상
  • 실시간 스트리밍 게임

실시간 배지 가이드라인을 따르고 Google에서 적절한 시점에 페이지를 크롤링하도록 Indexing API를 사용하세요.

검색결과에 실시간 배지가 표시된 동영상

중요한 부분

“重要时刻”功能是一种视频浏览方式,能让用户像翻看图书章节那样在视频片段间跳转,有助于用户更深入地与您的内容互动。Google 搜索会尝试自动检测视频中的片段,并向用户显示重要时刻,您无需采取任何措施。或者,您也可以手动告知 Google 视频中的重要时间点。我们将优先显示您通过结构化数据或 YouTube 说明设置的重要时刻。

  • 如果您的视频托管在您的网页上,您可以通过以下两种方式启用重要时刻功能:
    • Clip 结构化数据:指定每个片段确切的开始时间和结束时间,以及要为每个片段显示的标签。此方式适用于 Google 搜索支持的所有语言。
    • SeekToAction 结构化数据:告知 Google 时间戳通常位于网址结构中的什么位置,以便 Google 可以自动识别重要时刻,并将用户链接到视频中的这些时间点。 目前支持以下语言:英语、西班牙语、葡萄牙语、意大利语、中文、法语、日语、德语、土耳其语、韩语、荷兰语和俄语。我们的目标是逐步将此功能扩展到更多语言。即使是对于受支持的语言,并非所有视频都会标出重要时刻,但我们希望随着时间的推移也能改善这一功能。
  • 如果您的视频托管在 YouTube 上,您可以在 YouTube 上的视频说明中指定确切的时间戳和标签。请查看在 YouTube 说明中标记时间戳的最佳实践。此方式适用于 Google 搜索支持的所有语言。

    如果您想在 YouTube 上启用视频章节功能,请遵循这些其他指南

若要完全停用“重要时刻”功能(包括 Google 为了自动为您的视频显示重要时刻而付出的所有努力),请使用 nosnippet meta 标记。

검색결과에 중요한 부분이 표시된 동영상

학습 동영상: 학생과 교사가 교육 동영상을 찾을 수 있도록 구조화된 학습 동영상 데이터를 추가하세요. 기능 제공 여부, 가이드라인, 예에 관한 자세한 내용은 학습 동영상 문서를 참고하세요.

검색결과에 표시된 학습 동영상

구조화된 데이터를 추가하는 방법

구조화된 데이터는 페이지 정보를 제공하고 페이지 콘텐츠를 분류하기 위한 표준화된 형식입니다. 구조화된 데이터를 처음 사용한다면 구조화된 데이터의 작동 방식을 자세히 알아보세요.

다음은 구조화된 데이터를 빌드, 테스트 및 출시하는 방법의 개요입니다. 웹페이지에 구조화된 데이터를 추가하는 방법에 관한 단계별 안내는 구조화된 데이터 Codelab을 참고하세요.

  1. 필수 속성을 추가합니다. 사용 중인 형식에 따라 페이지에 구조화된 데이터를 삽입하는 위치를 알아보세요.
  2. 가이드라인을 따릅니다.
  3. 리치 결과 테스트를 사용하여 코드의 유효성을 검사하고 심각한 오류를 해결하세요. 또한 도구에서 신고될 수 있는 심각하지 않은 문제는 구조화된 데이터의 품질을 개선하는 데 도움이 될 수 있으므로 해결하는 것이 좋습니다. 그러나 리치 결과를 사용하기 위한 필수사항은 아닙니다.
  4. 구조화된 데이터를 포함하는 일부 페이지를 배포하고 URL 검사 도구를 사용하여 Google에서 페이지를 표시하는 방법을 테스트합니다. Google이 페이지에 액세스할 수 있으며 robots.txt 파일, noindex 태그 또는 로그인 요구사항에 의해 차단되지 않는지 확인합니다. 페이지가 정상적으로 표시되면 Google에 URL을 재크롤링하도록 요청할 수 있습니다.
  5. Google에 향후 변경사항을 계속 알리려면 사이트맵을 제출하는 것이 좋습니다. 이는 Search Console Sitemap API를 사용하여 자동화할 수 있습니다.

표준 동영상 결과

표준 동영상 검색결과의 예

하나의 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>
마이크로데이터

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

실시간 배지

실시간 배지가 포함된 동영상이 검색결과에 표시된 예

다음은 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>
마이크로데이터

<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

검색결과에 중요한 부분이 표시된 동영상의 예

다음은 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>
마이크로데이터

<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

다음은 SeekToAction 마크업에 필요한 추가 속성이 포함된 단일 VideoObject의 예입니다.

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>
마이크로데이터

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

가이드라인

구조화된 동영상 데이터를 Google 검색에서 사용하려면 검색 Essentials, 구조화된 일반 데이터 가이드라인동영상 색인 생성 요구사항을 준수해야 합니다.

또한 동영상 콘텐츠에 적용되는 다음 가이드라인을 확인하는 것이 좋습니다.

실시간 배지 가이드라인

실시간 스트리밍 동영상에 BroadcastEvent를 추가할 때는 다음 가이드라인을 따르세요.

  • 구조화된 데이터에 저속하거나 불쾌할 수 있는 언어를 사용하지 마세요.
  • Google이 적절한 시점에 실시간 스트리밍 동영상을 크롤링하도록 하려면 Indexing API를 사용하세요. 다음과 같은 경우 API를 호출하세요.
    • 동영상이 실시간으로 제공될 때
    • 동영상 스트리밍이 중지되고 페이지의 마크업이 업데이트되어 endDate를 나타낼 때
    • 언제든지 마크업이 변경되어 Google에 알려야 할 때

YouTube에서 타임스탬프를 표시하기 위한 권장사항

동영상이 YouTube에서 호스팅되는 경우 Google 검색에서 YouTube에 있는 동영상 설명을 바탕으로 동영상의 중요한 부분을 자동으로 사용 설정할 수 있으므로, 개발자가 YouTube 설명에 있는 특정 타임스탬프를 표시할 필요가 없습니다. 물론 개발자는 동영상의 중요한 지점을 더 명시적으로 알릴 수 있으며 Google은 이 정보를 우선시합니다. 다음 다이어그램은 YouTube 동영상 설명의 타임스탬프와 라벨이 검색결과에 어떻게 나타나는지를 보여줍니다.

타임스탬프와 라벨이 검색결과에 표시된 동영상
1. 라벨: 클립의 이름
2. 타임스탬프: 클립이 시작되는 지점

YouTube 설명에 사용될 타임스탬프와 라벨의 형식을 지정할 때는 다음 가이드라인에 유의하세요.

  • 타임스탬프의 형식은 [hour]:[minute]:[second]와 같이 지정합니다. 시간이 없으면 포함하지 않아도 됩니다.
  • 타임스탬프와 같은 행에 타임스탬프 라벨을 지정합니다.
  • 동영상 설명의 새로운 행에 각 타임스탬프를 입력합니다.
  • 타임스탬프를 동영상의 특정 지점에 연결합니다.
  • 라벨에 하나 이상의 단어가 포함되어 있어야 합니다.
  • 타임스탬프를 시간 순서대로 나열합니다.

YouTube에서 동영상 챕터를 사용 설정하려면 다음 추가 가이드라인을 따르세요.

ClipSeekToAction 가이드라인

구조화된 Clip 또는 SeekToAction 데이터를 추가하여 동영상 세그먼트를 표시하는 경우 다음 가이드라인을 따르세요.

  • 동영상에는 동영상 URL의 시작점이 아닌 지점에 딥 링크를 설정할 수 있는 기능이 있어야 합니다. 예를 들어 https://www.example.com/example?t=30을 사용하면 동영상의 30초 지점에서 시작됩니다.
  • 사용자가 동영상을 시청할 수 있는 페이지에 구조화된 VideoObject 데이터를 추가해야 합니다. 동영상을 시청할 수 없는 페이지로 사용자를 연결하는 것은 좋은 사용자 환경이 아닙니다.
  • 동영상의 총 재생 시간은 30초 이상이어야 합니다.
  • 동영상에는 구조화된 VideoObject 데이터 문서에 나와 있는 필수 속성이 포함되어야 합니다.
  • 구조화된 Clip 데이터에만 해당함: 동일한 페이지에 정의된 동일한 동영상의 두 클립은 시작 시간이 같아서는 안 됩니다.
  • 구조화된 SeekToAction 데이터에만 해당함: Google에서 동영상 콘텐츠 파일을 가져올 수 있어야 합니다.

구조화된 데이터 유형 정의

이 섹션에서는 Google 검색의 동영상 기능과 관련된 구조화된 데이터 유형에 관해 설명합니다. 마크업이 Google 검색에서 사용되려면 필수 VideoObject 속성이 있어야 합니다. 권장 속성을 통해 VideoObject에 관한 정보를 추가하여 더 만족스러운 사용자 환경을 제공할 수 있습니다. VideoObject 외에 다음 데이터 유형을 추가하면 Google 검색에서 동영상 수정을 사용 설정할 수 있습니다.

  • BroadcastEvent: 실시간 스트리밍 동영상을 마크업하여 동영상에 실시간 배지를 사용 설정합니다.
  • Clip: 사용자가 동영상의 특정 지점으로 빠르게 이동할 수 있도록 동영상의 중요한 세그먼트를 표시합니다.
  • SeekToAction: URL 구조가 작동하는 방식을 표시하여 중요한 부분을 사용 설정합니다. 그러면 Google에서 자동으로 중요한 부분을 식별해 동영상 내의 해당 지점으로 사용자를 연결할 수 있습니다.
  • 학습 동영상: 구조화된 학습 동영상 데이터를 추가하여 학생과 교사가 교육 동영상을 찾을 수 있도록 도움을 주세요.

VideoObject

VideoObject의 전체 정의는 schema.org/VideoObject에서 확인할 수 있습니다. 필수 속성을 포함하지 않으면 Google에서 동영상에 관한 정보를 추출하지 못할 수 있습니다. 권장 속성을 통해 콘텐츠에 관한 정보를 추가하여 더 만족스러운 사용자 환경을 제공할 수 있습니다.

필수 속성
name

Text

동영상 제목입니다. 사이트에 있는 각 동영상의 name 속성에는 고유한 텍스트를 사용해야 합니다.

thumbnailUrl

반복된 URL

동영상의 고유한 썸네일 이미지 파일을 가리키는 URL입니다. 썸네일 이미지 가이드라인을 따릅니다.

uploadDate

DateTime

동영상이 처음으로 게시된 날짜와 시간입니다. ISO 8601 형식으로 나타냅니다. 시간대 정보를 제공하는 것이 좋으며, 제공하지 않은 경우 Googlebot에서 사용하는 시간대가 기본값으로 설정됩니다.

권장 속성
contentUrl

URL

지원되는 파일 형식 중 하나인 동영상 파일의 실제 콘텐츠 바이트를 가리키는 URL입니다. 동영상이 있는 페이지로 링크하지 마세요. 동영상 파일의 실제 콘텐츠 바이트 자체의 URL이어야 합니다.


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

동영상 권장사항을 따라 주세요.

description

Text

동영상 설명입니다. 사이트에 있는 각 동영상의 description 속성에는 고유한 텍스트를 사용해야 합니다. HTML 태그는 무시됩니다.

duration

Duration

동영상의 길이이며, ISO 8601 형식으로 나타냅니다. 예를 들어 PT00H30M5S는 '30분 5초'의 길이를 나타냅니다.

embedUrl

URL

특정 동영상 플레이어로 연결되는 URL. 동영상이 있는 페이지로 링크하지 마세요. 동영상 플레이어의 URL이어야 합니다. 보통 <embed> 태그의 src 요소에 있는 정보입니다.


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

동영상 권장사항을 따라 주세요.

expires DateTime

해당하는 경우 동영상을 사용할 수 없게 되는 날짜와 시간입니다. ISO 8601 형식으로 나타냅니다. 동영상이 만료되지 않은 경우에는 이 정보를 제공하지 마세요. 시간대 정보를 제공하는 것이 좋으며, 제공하지 않은 경우 Googlebot에서 사용하는 시간대가 기본값으로 설정됩니다.

hasPart

동영상에 중요한 세그먼트가 있는 경우 VideoObject에서 필수 Clip 속성을 중첩하세요. 예를 들면 다음과 같습니다.


<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

동영상이 허용되지 않는 지역입니다(해당하는 경우). 명시하지 않으면 Google은 동영상이 모든 지역에서 허용되는 것으로 간주합니다. 두 자리 또는 세 자리 ISO 3166-1 형식으로 국가를 지정합니다. 여러 값을 지정하려면 여러 국가 코드를 사용합니다(예: JSON-LD 배열 또는 마이크로데이터의 여러 meta 태그).

interactionStatistic

InteractionCounter

동영상의 시청 횟수. 예를 들면 다음과 같습니다.


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

동영상을 실시간으로 제공하는 중에 실시간 배지를 포함하고 싶다면 VideoObject에서 BroadcastEvent 속성을 중첩하세요. 예를 들면 다음과 같습니다.


<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

동영상이 허용되는 지역입니다(해당하는 경우). 명시하지 않으면 Google은 동영상이 모든 지역에서 허용되는 것으로 간주합니다. 두 자리 또는 세 자리 ISO 3166-1 형식으로 국가를 지정합니다. 여러 값을 지정하려면 여러 국가 코드를 사용합니다(예: JSON-LD 배열 또는 마이크로데이터의 여러 meta 태그).

BroadcastEvent

실시간 배지를 표시하려면 VideoObject에서 다음 속성을 중첩하세요. BroadcastEvent 속성은 필수가 아니지만 동영상에 실시간 배지를 표시하려면 다음 속성은 반드시 추가해야 합니다.

BroadcastEvent의 전체 정의는 schema.org/BroadcastEvent에서 확인할 수 있습니다.

필수 속성
publication

BroadcastEvent

동영상이 실시간으로 스트리밍되는 시기. 목록이나 단일 인스턴스일 수 있습니다.

publication.endDate

DateTime

실시간 스트리밍이 종료되는 또는 종료 예정인 날짜 및 시간. ISO 8601 형식으로 나타냅니다.

동영상이 종료되고 더 이상 실시간으로 스트리밍되지 않으면 endDate를 제공해야 합니다. 실시간 스트리밍이 시작되기 전까지 예상 endDate를 알 수 없는 경우 대략적인 endDate를 제공하는 것이 좋습니다.

endDate가 과거이거나 현재인 경우 스트리밍이 실제로 종료되고 더 이상 실시간으로 제공되지 않는 것입니다. endDate가 미래인 경우 스트리밍이 그 시간에 종료될 예정이라는 것입니다.

publication.isLiveBroadcast

불리언

동영상이 실시간으로 스트리밍되거나, 되고 있거나, 될 예정인 경우 true로 설정합니다.

publication.startDate

DateTime

실시간 스트리밍이 시작되는 또는 시작 예정인 날짜 및 시간. ISO 8601 형식으로 나타냅니다. startDate가 과거이거나 현재인 경우 스트리밍이 실제로 시작된 것입니다. startDate가 미래인 경우 스트림이 그 시간에 시작될 예정이라는 것입니다.

Clip

중요한 부분 기능에 사용할 타임스탬프와 라벨을 Google에 알리려면 다음 속성을 VideoObject에 중첩하세요. Clip 속성은 필수가 아니지만 Google에서 자동으로 동영상에 표시할 수 있는 동영상 세그먼트 대신, 본인이 직접 동영상에 지정한 타임스탬프와 라벨을 Google이 표시하도록 하려면 다음 속성을 추가해야 합니다.

Clip의 전체 정의는 schema.org/Clip에서 확인할 수 있습니다.

필수 속성
name

Text

클립의 콘텐츠를 설명하는 제목

startOffset

Number

작업의 시작 부분부터 초 단위로 표시된 클립의 시작 시간

url

URL

클립의 시작 시간으로 연결되는 URL

클립 URL은 시간을 지정하는 추가 쿼리 매개변수가 포함된 동영상과 동일한 URL 경로로 연결되어야 합니다.

예를 들어 다음 URL은 동영상이 2분에 시작한다는 의미입니다.


"url": "https://www.example.com/example?t=120"
권장 속성
endOffset

Number

작업의 시작 부분부터 초 단위로 표시된 클립의 종료 시간

SeekToAction

Google이 동영상에서 자동으로 식별되는 중요한 부분을 표시할 수 있도록 URL 구조의 작동 방식을 Google에 알리려면 VideoObject에 다음 속성을 중첩합니다. SeekToAction 속성은 필수가 아니지만 Google에서 URL 구조의 작동 방식을 이해하도록 하려면 다음 속성을 추가해야 합니다. 그러면 Google에서 동영상 내의 해당 지점으로 사용자를 연결할 수 있습니다.

SeekToAction의 전체 정의는 schema.org/SeekToAction에서 확인하세요.

필수 속성
potentialAction

SeekToAction

잠재적 동작으로, 중첩된 다음 속성을 포함합니다.

예를 들면 다음과 같습니다.


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

Google에서 타임스탬프 구조로 식별한 다음 건너뛸 시간(초)으로 바꿀 자리표시자 문자열입니다. 다음 값을 사용합니다.


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

startOffset-input은 주석 처리된 속성입니다. 자세한 내용은 Potential Actions 페이지를 참고하세요.

potentialAction.target

EntryPoint

VideoObject가 포함된 페이지의 URL(동영상에서 건너뛸 시간(초)의 삽입할 수 있는 위치를 나타내는 URL 구조의 자리표시자 포함)입니다. 이는 Google에서 URL 구조를 이해하는 방법이자 개발자가 타임스탬프의 형식을 지정하는 방법입니다. URL의 타임스탬프 부분을 다음 자리표시자 문자열로 바꿉니다.


{seek_to_second_number}

예를 들어 URL의 타임스탬프 부분을 바꿉니다.


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

그러면 이제 타임스탬프는 다음과 같습니다.


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

使用 Search Console 监控富媒体搜索结果

Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:

  1. 首次部署结构化数据后
  2. 发布新模板或更新代码后
  3. 定期分析流量时

首次部署结构化数据后

等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,有效项目数量会增加,而无效项目数量不会增加。如果您发现结构化数据存在问题,请执行以下操作:

  1. 修正无效项目
  2. 检查实际网址,核实问题是否仍然存在。
  3. 使用状态报告请求验证

发布新模板或更新代码后

如果对网站进行重大更改,请监控结构化数据无效项目的增幅。
  • 如果您发现无效项目增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
  • 如果您发现有效项目减少了(但无效项目的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。

定期分析流量时

请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。

문제 해결

구조화된 데이터를 구현하거나 디버깅하는 데 문제가 있다면 다음 리소스를 참고하세요.

  • 콘텐츠 관리 시스템(CMS)을 사용하거나 다른 사람이 내 사이트를 관리한다면 도움을 요청하세요. 문제를 자세히 설명하는 모든 Search Console 메시지를 CMS나 관리자에게 전달해야 합니다.
  • Google은 구조화된 데이터를 사용하는 기능이라고 해서 검색결과에 표시된다고 보장하지 않습니다. Google에서 콘텐츠를 리치 결과로 표시할 수 없는 일반적인 이유 목록은 구조화된 데이터 일반 가이드라인을 참고하세요.
  • 구조화된 데이터에 오류가 있을 수 있습니다. 구조화된 데이터의 오류 목록을 확인하세요.
  • 페이지에 구조화된 데이터 직접 조치를 취하는 경우 페이지에 있는 구조화된 데이터는 무시됩니다. 하지만 페이지는 계속 Google 검색결과에 표시될 수 있습니다. 구조화된 데이터 문제를 해결하려면 직접 조치 보고서를 사용하세요.
  • 가이드라인을 다시 검토하여 콘텐츠가 가이드라인을 준수하지 않는지 확인합니다. 스팸성 콘텐츠 또는 스팸성 마크업의 사용으로 인해 문제가 발생할 수 있습니다. 하지만 해당 문제가 구문 문제가 아닐 수도 있고, 이 경우 리치 결과 테스트에서는 이 문제를 식별할 수 없습니다.
  • 누락된 리치 결과/총 리치 결과 수 감소 문제를 해결하세요.
  • 다시 크롤링이 이루어지고 색인이 생성될 때까지 기다리세요. 페이지가 게시된 후 Google에서 페이지를 찾고 크롤링하기까지 며칠 정도 걸릴 수 있습니다. 크롤링 및 색인 생성에 관한 일반적인 질문은 Google 검색 크롤링 및 색인 생성 FAQ를 참고하세요.
  • Google 검색 센터 포럼에 질문을 올려보세요.