書籍(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任意在庫に関する情報
在庫あり、在庫なし、予約注文受付中など

参考