書籍(Books)の構造化データをマークアップする方法

書籍(Books)の構造化データをマークアップする方法

Photo by Annie Spratt via Unsplash

書籍(Books)の構造化データをマークアップする方法を紹介します。

Googleは検索結果のナレッジグラフに書籍に関する情報を表示することがあります。

書籍の構造化データのサンプル

書籍に関する情報は構造化データをマークアップしていなくても表示されることがありますが、構造化データをマークアップしておくと、Googleはその書籍に関する情報をより正確に理解できるようになります。

JSON-LDでマークアップ

書籍(Books)の構造化データをJSON-LDでマークアップする方法です。JSON-LDはページのどこに記述しても問題ありませんが、通常は<head>タグ内に記述します。

<script type="application/ld+json">
{
  "@context":"http://schema.org",
  "@type":"Book",
  "name" : "The Catcher in the Rye",
  "author": {
    "@type":"Person",
    "name":"J.D. Salinger"
  },
  "url" : "http://www.barnesandnoble.com/store/info/offer/JDSalinger",
  "workExample" : [{
    "@type": "Book",
    "isbn": "031676948",
    "bookEdition": "2nd Edition",
    "bookFormat": "http://schema.org/Hardcover",
    "potentialAction":{
    "@type":"ReadAction",
    "target":
      {
        "@type":"EntryPoint",
        "urlTemplate":"http://www.barnesandnoble.com/store/info/offer/0316769487?purchase=true",
        "actionPlatform":[
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/IOSPlatform",
          "http://schema.org/AndroidPlatform"
        ]
      },
      "expectsAcceptanceOf":{
        "@type":"Offer",
        "Price":6.99,
        "priceCurrency":"USD",
        "eligibleRegion" : {
          "@type":"Country",
          "name":"US"
        },
        "availability": "http://schema.org/InStock"
      }
    }
  },{
    "@type": "Book",
    "isbn": "031676947",
    "bookEdition": "1st Edition",
    "bookFormat": "http://schema.org/EBook",
    "potentialAction":{
    "@type":"ReadAction",
    "target":
      {
        "@type":"EntryPoint",
        "urlTemplate":"http://www.barnesandnoble.com/store/info/offer/031676947?purchase=true",
        "actionPlatform":[
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/IOSPlatform",
          "http://schema.org/AndroidPlatform"
        ]
      },
      "expectsAcceptanceOf":{
        "@type":"Offer",
        "Price":1.99,
        "priceCurrency":"USD",
        "eligibleRegion" : {
          "@type":"Country",
          "name":"UK"
        },
        "availability": "http://schema.org/InStock"
      }
    }
  }]
}
</script>

属性の解説

書籍(Books)の構造化データの属性は次のようになります。

書籍(Book)に関する情報

属性 必須 説明
@id 推奨 URL形式のユニークなID
IDは変わらない、固定のものを使用する。このURLは抽象的なものとして扱われるので、実際のWebページを表示する必要はない。
name 必須 書籍のタイトル
author 必須 書籍の著者に関する情報
“@type”:”Person”
URL 必須 自サイトの書籍に関するページのURL
sameAs 必須 書籍に関連するページ
Wikipediaや、プロフィールページ、公式サイトなど
workExample 必須 書籍の版に関する情報
“@type”: “Book”

著者(Author@Person)に関する情報

属性 必須 説明
author.name 必須 書籍の著者の名前
author.sameAs 推奨 著者に関連するページ
Wikipediaや、プロフィールページ、公式サイトなど

版(WorkExample@Book)に関する情報

属性 必須 説明
workExample.@id 推奨 URL形式のユニークなID
書籍で使用したIDとは異なる必要がある。
IDは変わらない、固定のものを使用する。このURLは抽象的なものとして扱われるので、実際のWebページを表示する必要はない。
workExample.bookEdition 任意 書籍の版
workExample.bookFormat 必須 書籍のフォーマット
電子書籍、ハードカバー、ペーパーバック、オーディオブックなど(日本なら新書、単行本、文庫本などがあると思います。)
workExample.isbn 必須 ISBN(国際標準図書番号)
電子書籍版などで、ISBNがない場合は、印刷版のISBNを使用する。
workExample.name 推奨* 版のタイトル
版のタイトルが書籍のタイトルと異なる場合に使用。
*版のタイトルが書籍のタイトルと同じ場合は、任意。
workExample.author 推奨* 版の著者
版の著者が書籍の著者と異なる場合に使用。
*版の著者が書籍の著者と同じ場合は、任意。
workExample.potentialAction 必須 書籍を読むために必要なアクション
@type”:”ReadAction”
workExample.url 推奨 版に固定のURL(存在する場合)
workExample.sameAs 推奨 版に関連するページ
Wikipediaや、プロフィールページ、公式サイトなど
workExample.datePublished 推奨 版の最初の発行日

書籍を読むためのアクション(potentialAction@ReadAction)に関する情報

属性 必須 説明
potentialAction.target 必須 アクションに関する情報
“@type”:”EntryPoint”
potentialAction.target.urlTemplate 必須 購入ページのURLなど
potentialAction.target.actionPlatform 必須 URLが対応しているプラットフォーム
以下から複数選択可
http://schema.org/DesktopWebPlatform: デスクトップのWebブラウザ用
http://schema.org/MobileWebPlatform: モバイルのWebブラウザ用
http://schema.org/AndroidPlatform: Androidアプリ用
http://schema.org/IOSPlatform:
iOSアプリ用
potentialAction.expectsAcceptanceOf 必須 購入に関する情報
“@type”:”Offer”

購入(expectsAcceptanceOf@Offer)に関する情報

属性 必須 説明
expectsAcceptanceOf.@id 推奨 購入に関するユニークなID
expectsAcceptanceOf.price 必須 価格
expectsAcceptanceOf.priceCurrency 必須 通貨
日本円ならJPY
expectsAcceptanceOf.eligibleRegion 任意 購入できる地域
expectsAcceptanceOf.ineligibleRegion 任意 購入できない地域
購入できる地域と購入できない地域に同じ国が記載されている場合は、その国については購入できない地域のデータで上書きされる
expectsAcceptanceOf.ineligibleRegion.name 任意 地域の名前
日本ならJP
expectsAcceptanceOf.availability 任意 在庫に関する情報
在庫あり、在庫なし、予約注文受付中など

参考