動画(VideoObjectClipBroadcastEvent)の構造化データ

Google 検索は、ユーザーが動画を見つけて視聴するための入り口です。Google は動画の詳細を自動的に把握しようとしますが、VideoObject を使用して動画をマークアップすることにより、説明、サムネイル URL、アップロード日、再生時間などの情報を明確に指定できます。動画は、Google 検索の検索結果、動画の検索結果、Google 画像検索、Google Discover に表示されます。

Google 検索の検索結果、動画タブ、Discover の動画コンテンツを示すスクリーンショット

コンテンツのマークアップ方法に基づき、動画は次の機能強化の対象となります。

動画の機能強化

LIVE バッジ: 動画を BroadcastEvent でマークすることで、動画に LIVE バッジを追加できます。LIVE バッジは、ごく短時間のものを除いて、ライブ配信されているすべての公開動画に適用できます。たとえば以下のようなものがあります。

  • スポーツ イベント
  • 授賞式
  • インフルエンサーの動画
  • ライブ ストリーミング ビデオゲーム

LIVE バッジのガイドラインを遵守し、Indexing API を使用して、Google が適切なタイミングでページをクロールできるようにしてください。

LIVE バッジ付きで検索結果に表示された動画

ホーム アクティビティ: ユーザーが自宅で行うアクティビティを見つけやすくします。ユーザーが自宅で行うアクティビティを検索すると、動画やオンライン イベントが臨場感の高いリッチリザルトとして表示されます。Video 構造化データを追加すると、特に手を加えなくとも、動画がそのままリッチリザルトの対象となることもあります。

機能の提供状況、ガイドライン、例については、ホーム アクティビティをご覧ください。

検索結果のホーム アクティビティ

主な出来事

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

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

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

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

検索結果に表示された主な出来事を含む動画
動画のホスト カルーセル(制限あり): ItemList 構造化データを追加することで、ユーザーが動画のギャラリー ページを探索できるようにします。この機能は現在、少数のプロバイダに限定されています。 Google 検索では、ItemList 構造化データを追加しなくても、サイトのホスト カルーセルが自動的に表示されることがあります。

学習用動画: 学習用動画の構造化データを追加することで、教材となる動画を生徒と教師が見つけやすくなります。機能の提供状況、ガイドライン、例については、学習用動画に関するドキュメントをご覧ください。

検索結果に表示された学習用動画

構造化データを追加する方法

構造化データは、ページに関する情報を提供し、ページ コンテンツを分類するための標準化されたデータ形式です。構造化データを初めて使用する場合は、構造化データの仕組みについてをご覧ください。

構造化データの作成、テスト、リリースの概要は次のとおりです。ウェブページに構造化データを追加するための手順ガイドについては、構造化データの Codelab をご覧ください。

  1. 必須プロパティを追加します。使用している形式に基づいて、ページ上の構造化データを挿入する場所をご確認ください。
  2. ガイドラインに従います。
  3. リッチリザルト テストでコードを検証し、重大なエラーを修正します。ツールで報告される重大ではない問題の修正も検討してください。構造化データの品質向上に役立ちます(ただし、リッチリザルトの対象となるために必ずしも必要というわけではありません)。
  4. 構造化データが含まれているページを数ページ導入し、URL 検査ツールを使用して、Google でページがどのように表示されるかをテストします。Google がページにアクセスでき、robots.txt ファイル、noindex タグ、ログイン要件によってページがブロックされていないことを確認します。ページが正常に表示されたら、Google に URL の再クロールを依頼できます。
  5. 今後の変更について Google に継続して情報を提供するために、サイトマップを送信することをおすすめします。これは、Search Console Sitemap API で自動化できます。

標準的な動画のリッチリザルト

標準的な動画検索結果の例

VideoObject が 1 つの場合の例を示します。

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": "2016-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>
Microdata

<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="2016-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,NL" />
  <meta itemprop="thumbnailUrl" content="https://example.com/photos/1x1/photo.jpg" />
</body>
</html>

LIVE バッジ

検索結果に表示された LIVE バッジ付きの動画の例

以下に、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": "2018-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": "2018-10-27T14:00:00+00:00",
      "publication": [
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2018-10-27T14:00:00+00:00",
          "endDate": "2018-10-27T14:37:14+00:00"
        },
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2018-10-27T18:00:00+00:00",
          "endDate": "2018-10-27T18:37:14+00:00"
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>
Microdata

<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="2018-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="2018-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="2018-10-27T14:00:00+00:00" />
    <meta itemprop="endDate" content="2018-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="2018-10-27T18:00:00+00:00" />
    <meta itemprop="endDate" content="2018-10-27T18:37:14+00:00" />
  </div>
</body>
</html>

VideoObjectItemList の構造化データの例を示します。この機能は現在、少数のプロバイダに限定されています。

JSON-LD

<html>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "ItemList",
      "itemListElement": [
        {
          "@type": "VideoObject",
          "position": 1,
          "name": "Introducing the self-driving bicycle in the Netherlands",
          "url": "https://www.example.com/video/self-driving-bicycle",
          "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://www.example.com/video/self-driving-bicycle/1x1/photo.jpg",
            "https://www.example.com/video/self-driving-bicycle/4x3/photo.jpg",
            "https://www.example.com/video/self-driving-bicycle/16x9/photo.jpg"
          ],
          "uploadDate": "2016-03-31T08:00:00+08:00",
          "duration": "PT1M54S",
          "contentUrl": "https://www.example.com/video/self-driving-bicycle/file.mp4",
          "embedUrl": "https://www.example.com/embed/self-driving-bicycle",
          "interactionStatistic": {
            "@type": "InteractionCounter",
            "interactionType": { "@type": "WatchAction" },
            "userInteractionCount": 5647018
          }
        },
        {
          "@type": "VideoObject",
          "position": 2,
          "name": "How to tie a tie",
          "url": "https://www.example.com/video/how-to-tie-a-tie",
          "description": "How to tie a four-in-hand knot.",
          "thumbnailUrl": [
            "https://www.example.com/video/how-to-tie-a-tie/1x1/photo.jpg",
            "https://www.example.com/video/how-to-tie-a-tie/4x3/photo.jpg",
            "https://www.example.com/video/how-to-tie-a-tie/16x9/photo.jpg"
          ],
          "uploadDate": "2019-02-28T08:00:00+08:00",
          "duration": "PT5M01S",
          "contentUrl": "https://www.example.com/video/how-to-tie-a-tie/file.mp4",
          "embedUrl": "https://www.example.com/embed/how-to-tie-a-tie",
          "interactionStatistic": {
            "@type": "InteractionCounter",
            "interactionType": { "@type": "WatchAction" },
            "userInteractionCount": 102111
          }
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>
Microdata

<div>
      <div itemprop="video" itemscope itemtype="https://schema.org/VideoObject">
        <!-- Thumbnail -->
        <a href="https://example.com/videos/self-driving-bicycle"
           title="Introducing the self-driving bicycle in the Netherlands">
          <img src="https://example.com/videos/self-driving-bicycle/thumbnail.jpg"
               alt="Introducing the self-driving bicycle in the Netherlands"
               title="Introducing the self-driving bicycle in the Netherlands"
               itemprop="thumbnailUrl">
        </a>
        <!-- URL, name, and description -->
        <h1>
          <a itemprop="contentUrl" href="https://example.com/videos/self-driving-bicycle"
             title="Introducing the self-driving bicycle in the Netherlands">
            <span itemprop="name">Introducing the self-driving bicycle in the Netherlands</span>
          </a>
        </h1>
        <a href="https://example.com/videos/self-driving-bicycle"
             title="Introducing the self-driving bicycle in the Netherlands">
          <div 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.
          "</div>
        </a>
        <!-- Other metadata -->
        <meta itemprop="duration" content="PT1M54S" />
        <meta itemprop="uploadDate" content="2016-03-31T08:00:00+08:00" />
        <span itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter">
        	<span itemprop="interactionType" itemscope itemtype="https://schema.org/WatchAction"></span>
        	<meta itemprop="userInteractionCount" content="5647018" />
        </span>
      </div>

      <div itemprop="video" itemscope itemtype="https://schema.org/VideoObject">
        <!-- Thumbnail -->
        <a href="https://example.com/videos/how-to-tie-a-tie"
           title="How to tie a tie">
          <img src="https://example.com/videos/how-to-tie-a-tie/thumbnail.jpg"
               alt="How to tie a tie"
               title="How to tie a tie"
               itemprop="thumbnailUrl">
        </a>
        <!-- URL, name, and description -->
        <h1>
          <a itemprop="contentUrl" href="https://example.com/videos/how-to-tie-a-tie"
             title="Tie a Tie">
            <span itemprop="name">Tie a Tie</span>
          </a>
        </h1>
        <a href="https://example.com/videos/how-to-tie-a-tie"
             title="Tie a Tie">
          <div itemprop="description">How to tie a four-in-hand knot.</div>
        </a>
        <!-- Other metadata -->
        <meta itemprop="duration" content="PT5M01S" />
        <meta itemprop="uploadDate" content="2019-01-05T08:00:00+08:00" />
        <span itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter">
        	<span itemprop="interactionType" itemscope itemtype="https://schema.org/WatchAction"></span>
        	<meta itemprop="userInteractionCount" content="102111" />
        </span>
      </div>
    </div>
  

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": "2019-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",
      "regionsAllowed": "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>
Microdata

<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="2019-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="regionsAllowed" 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": "2020-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>
Microdata

<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="2020-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>

ガイドライン

ページが動画のリッチリザルトに表示されるようにするには、検索の基本事項構造化データに関する一般的なガイドライン動画のベスト プラクティスに従ってください。

また、動画コンテンツに適用する場合は、次のガイドラインを確認することをおすすめします。

LIVE バッジのガイドライン

BroadcastEvent を追加してライブ ストリーミング動画にマークを付ける場合、次のガイドラインを遵守してください。

  • 構造化データに下品な言葉や不適切であると思われる言葉を使わないでください。
  • Google が適切なタイミングでライブ ストリーミング動画をクロールできるようするために、Indexing API を使用します。以下のイベントに対して API を呼び出します。
    • 動画が公開されたとき
    • 動画の配信が停止し、ページのマークアップが endDate を示すように更新されたとき
    • マークアップに変更が発生し、Google に通知する必要があるとき

YouTube のタイムスタンプを含めるおすすめの方法

動画が YouTube でホストされている場合、Google 検索によって、YouTube の動画説明に基づいて主な出来事が自動的に有効になることがあります。この場合、YouTube の説明に特定のタイムスタンプを含める必要はありません。ただし、動画内の重要なポイントを明示しておくと、その情報が優先されるようになります。次の図は、YouTube の動画説明のタイムスタンプとラベルが検索結果でどのように表示されるかを示しています。

検索結果に表示されたタイムスタンプとラベルを含む動画
1. ラベル: クリップの名前。
2. タイムスタンプ: クリップの開始点。

YouTube の説明のタイムスタンプとラベルをフォーマットするときは、次のガイドラインに注意してください。

  • タイムスタンプを [hour]:[minute]:[second] の形式でフォーマットします。「hour」がない場合、追加する必要はありません。
  • タイムスタンプと同じ行でタイムスタンプのラベルを指定します。
  • 各タイムスタンプを動画説明の新しい行に配置します。
  • タイムスタンプを動画内の指定したポイントにリンクします。
  • ラベルには少なくとも 1 つの単語が含まれている必要があります。
  • タイムスタンプを時系列順でリストします。

YouTube で動画チャプターを有効にするには、こちらのガイドラインをご確認ください。

ClipSeekToAction のガイドライン

Clip または SeekToAction 構造化データを追加して動画セグメントにマークを付ける場合、次のガイドラインを遵守してください。

  • 動画には、動画 URL の開始時点以外の時点にディープリンクを設定する機能が必要です。たとえば https://www.example.com/example?t=30 は、開始後 30 秒の時点から再生されます。
  • VideoObject 構造化データは、動画を視聴できるページに追加する必要があります。動画を視聴できないページに誘導するのは、ユーザーの利便性を損ねます。
  • 動画の合計再生時間は 30 秒以上にしてください。
  • 動画には、VideoObject 構造化データのドキュメントに記載されている必須プロパティを含める必要があります。
  • Clip 構造化データのみ: 同じ動画の開始時間が等しい 2 本のクリップを同一のページに設定しないでください。
  • SeekToAction 構造化データのみ: Google が動画コンテンツ ファイルを取得できるようにする必要があります。

構造化データタイプの定義

このセクションでは、Google 検索の動画機能に関連する構造化データタイプについて説明します。 コンテンツが動画のリッチリザルトとして表示されるようにするには、必須の VideoObject プロパティを含める必要があります。また、推奨プロパティを使用すると、VideoObject についてさらに詳しい情報を追加できるため、ユーザー エクスペリエンスの向上につながります。VideoObject に加え、次のデータタイプを追加して、Google 検索での動画の機能強化を有効にできます。

  • BroadcastEvent: ライブ ストリーミング動画をマークアップして、動画の LIVE バッジを有効にします。
  • ItemList: 動画のリストがあるページをマークアップして、動画ホスト カルーセルを有効にします。
  • Clip: 動画内の重要な部分にマークを付けて、動画内の特定の時点にすばやく移動できるようにします。
  • SeekToAction: URL 構造の仕組みを指定することで、主な出来事を有効にできます。これにより Google は、主な出来事を自動的に識別し、動画内のその時点にユーザーをリンクできるようになります。
  • 学習用動画: 学習用動画の構造化データを追加することで、教材となる動画を生徒と教師が見つけやすくなります。

VideoObject

VideoObject の定義の全文は schema.org/VideoObject で確認できます。 必須プロパティを指定しないと、Google が動画に関する情報を抽出できない場合があります。また、推奨プロパティを使用すると、コンテンツについてさらに詳しい情報を追加できるため、ユーザー エクスペリエンスの向上につながります。

必須プロパティ
name

Text

動画のタイトル。

thumbnailUrl

URL を反復

動画のサムネイル画像ファイルを指す URL。サムネイル画像のガイドラインに準拠してください。

uploadDate

DateTime

動画が最初に公開された日時(ISO 8601 形式)。タイムゾーン情報を提供することをおすすめします。提供されない場合は、デフォルトで Googlebot が使用するタイムゾーンが適用されます。

推奨プロパティ
contentUrl

URL

実際の動画メディア ファイル(サポートされているエンコード形式)を指定する URL。動画が存在するページへのリンクではなく、動画メディア ファイルそのものの URL にする必要があります。

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

動画のベスト プラクティスに沿っていることをご確認ください。

description

Text

動画の説明。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

動画に重要なセグメントがある場合は、必須の Clip プロパティVideoObject 内でネストします。次に例を示します。

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

InteractionCounter

動画が視聴された回数です。次に例を示します。

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

動画がライブ中で、LIVE バッジの対象にする場合は、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

動画が許可されている地域。指定しない場合、すべての場所で動画が許可されていると見なされます。ISO 3166 形式で国を指定します。複数の値を指定する場合は、区切り文字としてスペースまたはカンマを使用します。

BroadcastEvent

LIVE バッジを表示するには、次のプロパティを VideoObject 内でネストします。BroadcastEvent プロパティは必須ではありませんが、動画が LIVE バッジとともに表示されるようにするには、次のプロパティを追加する必要があります。

BroadcastEvent の定義の全文は schema.org/BroadcastEvent で確認できます。

必須プロパティ
publication

BroadcastEvent

動画をいつライブ配信するかの説明。リストまたは 1 つのインスタンスを指定できます。

publication.endDate

DateTime

ライブ配信の終了日時または終了予定日時(ISO 8601 形式)。

動画が終了してライブではなくなったら、endDate を提供する必要があります。ライブ配信の開始前に予想される endDate がわからない場合は、おおよその endDate を指定することをおすすめします。

endDate が過去または現在の場合は、配信が実際に終了し、もうライブではないことを示します。endDate が将来の場合は、配信がその時点で終了するように予定されていることを示します。

publication.isLiveBroadcast

ブール値

動画がライブで配信されている、されていた、またはされる予定の場合は、true を指定します。

publication.startDate

DateTime

ライブ配信の開始日時または開始予定日時(ISO 8601 形式)。startDate が過去または現在の場合は、配信が実際に開始されたことを示します。startDate が将来の場合は、配信がその時点で開始するように予定されていることを示します。

ItemList(制限あり)

Google が動画のギャラリー ページについてより正確に理解できるようにするには、VideoObject プロパティのほか、次の ItemList プロパティを追加します。カルーセルの詳細については、カルーセルをご覧ください。

ItemList の定義の全文は schema.org/ItemList で確認できます。

必須プロパティ
itemListElement

ListItem

1 つのアイテムページの注釈。各 ListItem 要素には、VideoObject プロパティListItem プロパティを含める必要があります。

ListItem.position

Integer

リスト内でのアイテムページの順序位置。次に例を示します。

"itemListElement": [
  {
    "@type": "VideoObject",
    "position": 1,
    ... other VideoObject properties ...
  }, {
    "@type": "VideoObject",
    "position": 2,
    ... other VideoObject properties ...
  }
]
ListItem.url

URL

アイテムページの正規 URL。すべてのアイテムに固有の URL が必要です。

Clip

主な出来事機能に使用するタイムスタンプとラベルを Google に手動で伝えるには、VideoObject 内で次のプロパティをネストします。Clip プロパティは必須ではありませんが、Google に自動的に表示される動画セグメントではなく、自分が動画に対して指定したタイムスタンプやラベルを表示させたい場合は、以下のプロパティを追加する必要があります。

Clip の定義の全文は schema.org/Clip で確認できます。

必須プロパティ
name

Text

クリップの内容を説明するタイトル。

startOffset

Number

作品の先頭からの秒数で表したクリップの開始時間。

url

URL

クリップの開始時刻を指定する URL。

クリップ URL は、動画と同じ URL パスに、時間を指定するクエリ パラメータを加えたものです。

次の URL は、2 分 00 秒から始まる動画の URL の例です。

"url": "https://www.example.com/example?t=120"
推奨プロパティ
endOffset

Number

作品の先頭からの秒数で表したクリップの終了時間。

SeekToAction

URL 構造の仕組みを Google に伝えるには(動画で自動的に識別される主な出来事を Google が表示できるようにするため)、VideoObject 内で以下のプロパティをネストします。SeekToAction プロパティは必須ではありませんが、Google が URL 構造を識別して動画内の任意の時点にリンクできるようにしたい場合は、以下のプロパティを追加する必要があります。

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 検索結果に表示されますが、登録することにより、Google がサイトをどのように認識しているかを把握して改善できるようになります。次の場合は Search Console を確認することをおすすめします。

  1. 構造化データを初めてデプロイした後
  2. 新しいテンプレートをリリースした後やコードを更新した後
  3. トラフィックを定期的に分析する場合

構造化データを初めてデプロイした後

ページがインデックスに登録されたら、関連するリッチリザルトのステータス レポートを使用して、問題がないかどうかを確認します。有効な項目が増え、無効な項目が増えていない状態が理想的です。構造化データに問題が見つかった場合の手順は次のとおりです。

  1. 無効な項目を修正します
  2. 一般公開 URL の検査を行い、問題が解決したかどうかを確認します。
  3. ステータス レポートを使用して検証をリクエストします。

新しいテンプレートをリリースした後やコードを更新した後

ウェブサイトに大幅な変更を加えた場合は、構造化データの無効な項目が増加しないかどうか監視します。
  • 無効な項目が増加した場合は、新しく公開したテンプレートが正常に機能していないか、既存のテンプレートの新しい操作方法に問題があると考えられます。
  • 有効な項目が減少している(無効な項目の増加と一致しない)場合は、ページに構造化データが埋め込まれていない可能性があります。URL 検査ツールを使用して問題の原因を特定します。

トラフィックを定期的に分析する場合

パフォーマンス レポートを使用して Google 検索のトラフィックを分析します。このデータから、検索でページがリッチリザルトとして表示される頻度、ユーザーがページをクリックする頻度、検索結果におけるページの平均掲載順位がわかります。この結果は、Search Console API を使用して自動的に取得することもできます。

トラブルシューティング

構造化データの実装またはデバッグで問題が発生した場合は、以下のリソースが参考になります。