書籍

書籍アクションを使用すると、ユーザーに書籍と著者を見つけてもらうための入り口として Google 検索を利用できます。ユーザーが検索結果で見つけた書籍を簡単に購入または借りることができるようになります。たとえば、ユーザーが「シャーロットのおくりもの」を検索すると、表示された結果で書籍の購入や貸出サービスの利用が行えます。書籍プロバイダは、ここで説明する構造化データスキーマを使用して、Google にデータフィードを提供します。ユーザーは ReadAction を使用して書籍を購入し、BorrowAction を使用して書籍を借りる仕様となっています。

検索結果に表示された書籍アクション

パネルには読むアクションと借りるアクションが組み込まれており、書籍を購入するためのオプションや借りるためのオプションが表示されます。ユーザーは、表示されるリンクを介して読むアクションや借りるアクションを実行することで、ナレッジパネルや他の Google サーフェスからウェブサイトやアプリ上の書籍のページに直接移動できます。

プロバイダがナレッジパネルに表示される順序は、ユーザーごとに動的にパーソナライズされます。つまり、ユーザーによって表示されるプロバイダの順序は異なり、同じユーザーであってもタイミングが異なると表示順序が変わります。順序に影響する要因はさまざまです。たとえば、ユーザーがナレッジパネルで特定のプロバイダのリンクをクリックする回数が多いほど、そのプロバイダが上位に表示される可能性が高くなります。順序をコントロールする方法はありません。

はじめに

書籍アクションを適切に実装するには、書籍アクションの構造化データタイプの定義に沿ってフィードを作成する必要があります。実装にあたっては、まず以下の項目を確認してください。

ガイドライン

書籍が確実に検索結果に表示されるようにするには、重要な点と主要な概念について把握することが大切です。また、フィードについて標準形式の仕様を満たす必要があります。

要件を満たすには、構造化データに関する一般的なガイドラインウェブマスター向けガイドライン(品質に関するガイドライン)に加えて、ここで説明するガイドラインを遵守してください。以下のガイドラインがあります。

作品とエディション

このドキュメントでは、書籍について述べる際に、次に示す 2 つの用語を使用します。

  • 作品: 抽象的な概念としての書籍。具体的には、タイトル、著者、原著の言語などの作品に帰属するメタデータを指します。
  • エディション: 実際に出版された書籍。具体的には、出版年、版の名称、国際標準図書番号(ISBN)などの刊行物に帰属するメタデータを指します。

たとえば、『シャーロットのおくりもの』は作品ですが、出版された各種の刊行物はエディションです。作品としての『シャーロットのおくりもの』 には、初版、第 2 版、要約版、フランス語翻訳版などのエディションがあります。

この区別は、フィード内ではすぐに見分けられない場合があるため、特に重要です。Book エンティティには、次の 2 つがあります。

  • BookWorkは「最上位レベル」の Book エンティティです。
    • workExampleWork のプロパティであり、BookEdition)のインスタンスを 1 つだけ指定します。
    • Work ごとに少なくとも 1 つの workExample が必要です。
  • BookEditionは「下位レベル」の Book エンティティです。

1 つの作品に複数のエディションが存在する場合があることを覚えておくと便利です。エディションはできる限りグループ化することをおすすめします。そうすれば、Google のシステムが書籍に関するすべての関連情報を利用し、それを検索結果に表示できます。必要なときには複数の作品レコードに分割することもできますが、その場合、各作品レコードには以下が必要です。

  • 別の @id
  • ISBN またはその他のサポートされている識別子を持つ、少なくとも 1 つのエディション。

図書館システムと図書館メンバー

Library entity は「最上位レベル」の Library エンティティ タイプです。これは抽象的な構造を示すものであり、LibrarySystem エンティティと、その図書館システムの「下位レベル」にあたる個別の Library (member) エンティティで構成されます。

LibrarySystem は抽象化されたエンティティであり、図書館メンバーによる協力関係のつながりを表します。たとえば、オースティン公共図書館は LibrarySystem エンティティとして指定でき、オースティン公共図書館のウェブサイトが、テキサス州オースティンでサービスを提供する公共図書館システムとして表現されます。このシステムは、20 の系列図書館、つまり図書館メンバーで構成されます。

すべての LibrarySystem エンティティで、少なくとも 1 つの Library (member) エンティティが必要です。図書館が実際には図書館システムに含まれていない場合にも必要であり、書籍アクションの実装上、このようなケースでは図書館は自らの図書館システムの唯一の図書館メンバーとして指定されます。また、書籍アクションの実装上、図書館メンバーは、図書館システムとは違って抽象的な概念ではないことから、実際の住所が指定されます。

逆の言い方をすると、すべての Library (member) エンティティは、少なくとも 1 つの LibrarySystem エンティティに属している必要があります。

ISBN とその他のサポートされている識別子

ISBN は、Google 検索でフィードデータと Google のデータをマッチングする際の主要な照合シグナルです。プロバイダは、検索結果に表示させたい書籍すべてについて、ISBN またはその他のサポートされている識別子を提供する必要があります。そのような識別子を提供しなかった場合、マッチングがうまくできなくなるため、書籍が検索結果に表示されません。

Google 検索では ISBN-13 が推奨されていますが、代わりに以下を提供することもできます。

  • オンライン コンピュータ ライブラリ センター(OCLC)番号
  • アメリカ議会図書館管理番号(LCCN)

ユーザーが書籍を見つけやすくするために、フィード内のリンクは次のガイドラインに従う必要があります。

  • 同じコンテンツについて重複するページが存在する場合は、書籍のタイトルと書籍に関する他の情報を含む正規 URL をリンクに指定する必要があります。
  • ユーザーが読むアクションまたは借りるアクションのリンクをクリックしたら、書籍の購入または貸し出しサービスを直接サポートするページにユーザーを転送する必要があります。特に、何回もリンクをクリックしなければコンテンツの購入や貸し出しサービスが利用できないページをアクション リンクの宛先にすることは避けてください。たとえば、検索結果ページや商品概要ページにユーザーを誘導してはなりません。

フィードを作成する

サイトでユーザーへの書籍の販売を行う場合は、Book フィードをアップロードする必要があります。Google の担当者に連絡して、フィードをアップロードする方法と場所の詳細を確認してください。

サイトでユーザーへの書籍の貸し出しを行う場合は、Book フィードと Library フィードの 2 つを別個にアップロードする必要があります。Google の担当者に連絡して、フィードをアップロードする方法と場所の詳細を確認してください。

フィード ファイルのサイズ、量、形式の要件を遵守する

要件は次のとおりです。

  • フィード ファイルのサイズ要件:
    • フィード ファイルを圧縮しない場合は、サイズは 1 GB 未満でなければなりません。
    • フィード ファイルを圧縮する場合も 1 GB 未満でなければなりません。フィード ファイルを圧縮せず、サイズが 1 GB を超える場合は、フィード ファイルを複数のファイルに分割する必要があります。
  • フィード ファイルは圧縮できます。その場合、zip、gz、tar、tar.gz、JAR、ar、arj、cpio、またはダンプ アーカイブ ファイル形式にする必要があります。
  • 複数のフィード ファイルがある場合は、そのままアップロードすることも、サイトマップ インデックス ファイルに含めることもできます。
  • 単一のフィード ファイルのファイル拡張子は .json でなければなりません。

フィード コンテンツの要件に従う

次のフィード コンテンツ要件に特に注意し、これらを守ってください。

  • フィードに最新でないエンティティを含めてはなりません。最新でないエンティティとは、availabilityEnds が過去の日付に設定されているエンティティ、またはサイトで参照できなくなったエンティティです。
  • フィード内のすべてのディープリンク(urlTemplate など)とすべての URL(url など)は本番環境の URL でなければなりません。QA 環境、開発環境、またはその他の本番以外の環境の URL は使用しないでください。
  • すべての URL(url など)は正規 URL でなければなりません。
  • フィード内の各エンティティでは、次のプロパティを指定する必要があります。
    • 一意の ID: @id
    • 一意の URL: url
    • 一意のディープリンク: urlTemplate

データフィード検証ツールでフィードをテストする

データフィード検証ツールで一般的なエラーと警告を解決する際には、次のトラブルシューティング手順の実施をおすすめします。

  • [Validate on] フィールドで正しいオプションが選択されていることを確認します。Book エンティティに対しては [Books Action] を選択します。

  • @type の値が正確に表記されていることを確認します。
  • @context の値が適切に設定されていることを確認します。ReadActionBorrowAction の両方に "@context": "http://schema.org" を設定します。

フィード ファイルをホストする

フィード ファイルの準備ができたら、安全な場所にホストします。Google は定期的にフィードを取得して、コンテンツが最新かどうかを確認します。

ホスト方法

フィードをホストする方法としては、以下がサポートされています。

ホスト方法 認証サポート
Google Cloud Storage ストレージ オブジェクト閲覧者の権限
HTTPS ユーザー名 + パスワード、または HTTP クライアント証明書
SFTP パスワード、キー + フレーズ、またはその両方
AWS S3 キー ID + アクセスキー

審査を受けるためにフィード ファイルを送信する

コンテンツを Google 検索で使用できるようにするには、フィード内のディープリンクの品質について、Google サポートチームによる審査を受けます。いくつかのディープリンクを手動でテストして、ユーザーが書籍の購入や貸し出しサービスを利用するページが開くか確認することをおすすめします。

フィードの審査をリクエストする際は、以下の情報をお知らせください。

  • ホストの場所: フィード ファイルの URL。
  • ホストの認証情報(該当する場合): Google がホストの場所からフィード ファイルを取得するための認証情報。

必要に応じてフィードを更新する

書籍の目録を変更する頻度にもよりますが、フィードは毎日更新することをおすすめします。以下の条件とヒントを参考にしてください。

  • Google 検索はリアルタイムでの更新をサポートしていません。
  • Google 検索は 1 日に 1 回フィードを取得し、1 日に 1 回取り込みを行います。リリースを阻害する大きな問題がない場合、取り込みにかかる時間は通常 2 日です。
  • 特定のエディションを提供できる時期に変更が見込まれる場合は、availabilityStartsavailabilityEnds を使用して正確な日付を設定します。エンティティを使用できなくなった場合は、エンティティを完全に削除します。

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

コンテンツが構造化データとして検索結果に表示されるようにするには、下記の一覧に示す必須プロパティを含める必要があります。また、推奨プロパティを含めることにより、コンテンツに関する情報を追加できます。これはユーザー エクスペリエンスの向上に役立ちます。

DataFeed エンティティ

Google に送信されるすべての schema.org データフィード ファイルは、ルートレベルに DataFeed のエンティティを 1 つだけ含む必要があります。すべての Book エンティティと Library エンティティは、DataFeed エンティティの dataFeedElement フィールドのリストに含められる必要があります。

必須プロパティ
@context

Text

http://schema.org に設定します。

@type

Text

DataFeed に設定します。

dataFeedElement

Book または LibrarySystem

単一の Book エンティティまたは LibrarySystem エンティティに設定します。あるいは、Book エンティティまたは LibrarySystem エンティティのいずれかの配列に設定します。Book エンティティと LibrarySystem エンティティの両方を含む配列に設定することはできません。

Book フィードの使用例:


{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "http://schema.org",
      "@type": "Book",
      "@id": "http://example.com/work/the_catcher_in_the_rye",
      "url": "http://example.com/work/the_catcher_in_the_rye",
      "name": "The Catcher in the Rye",
      "author": {
        "@type": "Person",
        "name": "J.D. Salinger"
      },
      "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye",
      "workExample": [
        {
          "@type": "Book",
          "@id": "http://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "http://schema.org/Paperback",
          "inLanguage": "en",
          ...
        },
        ...
      ]
   }
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}

LibrarySystem フィードの使用例:


{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "http://schema.org",
      "@type": "LibrarySystem",
      "@id": "http://example.com/library-systems/100",
      "name": "Santa Clara County Library District",
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "librarytype",
          "value": "public"
        }
      ],
      ...
    },
    ...
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}
dateModified

DateTime

フィードの最終更新日時。ISO 8601 形式で指定します。

Book エンティティ

Book の定義の全文は schema.org/Book で確認できますが、考慮する必要があるのは下記のプロパティだけです。フィードに含めるすべての書籍について、必須プロパティを定義する必要があります。また、推奨プロパティを定義して、コンテンツに関する情報を追加できます。これはユーザー エクスペリエンスの向上に役立ちます。

BookWork

Book エンティティは、最上位レベルのエンティティ タイプです。作品を表します。

必須プロパティ
@context

Text

http://schema.org に設定します。

@id

Text

書籍に関するグローバルで一意な ID。URL 形式で指定します。プロバイダの組織内で一意である必要があります。ID は固定されており、時間の経過とともに変化してはなりません。URL 形式が推奨されますが必須ではありません。また、有効なリンクである必要はありません。@id 値に使用するドメインは、プロバイダの組織で所有している必要があります。

@type

Text

Book に設定します。

author

Person または Organization

書籍の著者(1 人または複数)。

name

Text

書籍のタイトル。

url

URL

書籍の紹介または解説が掲載されているウェブサイトの URL。このリンクは、フィード内のコンテンツと Google のデータベース内のコンテンツを正確に照合するために役立ちます。workExample.target.urlTemplate と同じ値を指定できます。

実際のランディング ページについては、Google 検索は workExample.target.urlTemplate で指定された URL を使用します。

workExample

Book (Edition)

作品のエディション(1 つまたは複数)。

推奨プロパティ
sameAs

URL

作品の内容を一義的に示す参照ウェブページの URL。たとえば、この書籍に関する Wikipedia、Wikidata、VIAF、アメリカ議会図書館のページなどです。

BookEdition

workExample プロパティでは、この Book エンティティを使用します。作品のエディションを表します。

必須プロパティ
@id

Text

書籍に関するグローバルで一意な ID。URL 形式で指定します。プロバイダの組織内で一意である必要があります。ID は固定されており、時間の経過とともに変化してはなりません。URL 形式が推奨されますが必須ではありません。また、有効なリンクである必要はありません。@id 値に使用するドメインは、プロバイダの組織で所有している必要があります。

@type

Text

Book に設定します。

bookFormat

Enum

エディションの形式。この値は、次のいずれかにする必要があります。

  • http://schema.org/AudiobookFormat
  • http://schema.org/EBook
  • http://schema.org/Hardcover
  • http://schema.org/Paperback
inLanguage

Text

エディションの内容の主要言語。ISO 639-1 alpha-2 コードのリストにある 2 文字のコードのいずれか 1 つを使用します。

isbn

Text

エディションの ISBN-13 情報。ISBN-10 の場合は、ISBN-13 に変換します。電子書籍やオーディオブックに ISBN コードがない場合は、印刷書籍の ISBN を使用します。たとえば、電子書籍版に ISBN がない場合は、対応する印刷版の ISBN を使用します。

potentialAction

ReadAction または BorrowAction

ユーザーが書籍を購入またはダウンロードする際にトリガーされるアクション。詳細については、ReadAction または BorrowAction をご覧ください。

推奨プロパティ
author

Person または Organization

エディションの著者(1 人または複数)。

bookEdition

Text

書籍のエディション情報。自由形式で指定します。例: 2nd Edition

datePublished

Date

エディションの出版日付。YYYY-MM-DD または YYYY 形式で指定します。特定の年月日または特定の年を指定できます。

identifier

PropertyValue

このエディションを一義的に示す外部 ID またはその他の ID。複数の識別子を使用できます。詳細については、PropertyValueidentifierをご覧ください。

このプロパティは繰り返し可能です。

name

Text

エディションのタイトル。エディションのタイトルが作品のタイトルと異なる場合にのみ使用します。

sameAs

URL

エディションを一義的に示す参照ウェブページの URL。たとえば、特定のエディションに関する Wikipedia のページです。WorksameAs を再利用しないでください。

url

URL

エディションの紹介または解説が掲載されているウェブサイトの URL。workExample.target.urlTemplate と同じ値を指定できます。

BookEdition)の例:

"workExample":
        {
          "@type": "Book",
          "@id": "http://example.com/book/100",
          "inlanguage": "en",
          "isbn": "8920000030001",
          "bookEdition": "20 Anniversary Edition",
          "datePublished": "2000-02-26",
          "bookFormat": "http://schema.org/Hardcover",
          "potentialAction": {...}
        }

複数の workExample プロパティを含む BookEdition)の例:

"workExample": [
        {
          "@type": "Book",
          "@id": "http://example.com/book/200",
          "inlanguage": "zh",
          "isbn": "9000031676948",
          "bookEdition": "2nd Edition",
          "bookFormat": "http://schema.org/Hardcover",
          "potentialAction": {...}
        },
        {
          "@type": "Book",
          "@id": "http://example.com/book/300",
          "inlanguage": "zh",
          "isbn": "90000031676947",
          "bookEdition": "1st Edition",
          "bookFormat": "http://schema.org/EBook",
          "potentialAction": {...}
      }
 ]

Person または Organizationauthor

書籍の author プロパティでは、Person または Organization エンティティを使用します。

必須プロパティ
@type

Text

Person または Organization に設定します。

name

Text

個人または組織の名前。

推奨プロパティ
sameAs

URL

個人または組織のプロフィールを一義的に示す参照ウェブページの URL。たとえば、個人または組織の Wikipedia ページなどです。

author の例:

"author": {
  "@type": "Person",
  "name": "William Shakespeare"
}

複数の author プロパティの例:

"author": [
  {
    "@type": "Person",
    "name": "William Shakespeare"
  },
  {
    "@type": "Person",
    "name": "Victor Hugo",
    "sameAs": "https://en.wikipedia.org/wiki/Victor_Hugo"
  }
]

PropertyValue (identifier)

Editionidentifier プロパティでは、PropertyValue エンティティを使用します。

必須プロパティ
@type

Text

PropertyValue に設定します。

propertyID

Text

ID のタイプ。ISBN とその他のサポートされている識別子で説明しているように、次のいずれかを指定する必要があります。

  • OCLC_NUMBER
  • LCCN
value

Text

ID の値。このエディションを一義的に示す外部 ID。外部 ID の数字以外のプレフィックスはすべて削除します。

identifier の例:

    "identifier": {
      "@type": "PropertyValue",
      "propertyID": "OCLC_NUMBER",
      "value":  "110123456"
    }

複数の identifier プロパティの例:

    "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "OCLC_NUMBER",
      "value":  "110123456"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "LCCN",
      "value":  "220123456"
    }]

ReadAction Book フィードの JSON ファイルの例

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "http://schema.org",
      "@type": "Book",
      "@id": "http://example.com/work/the_catcher_in_the_rye",
      "url": "http://example.com/work/the_catcher_in_the_rye",
      "name": "The Catcher in the Rye",
      "author": {
        "@type": "Person",
        "name": "J.D. Salinger"
      },
      "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye",
      "workExample": [
        {
          "@type": "Book",
          "@id": "http://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "http://schema.org/Paperback",
          "inLanguage": "en",
          "url": "http://example.com/edition/the_catcher_in_the_rye_paperback",
          "datePublished": "1991-05-01",
          "identifier": {
            "@type": "PropertyValue",
            "propertyID": "OCLC_NUMBER",
            "value": "1057320822"
          },
          "potentialAction": {
            "@type": "ReadAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "http://example.com/store/9787543321724",
              "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/IOSPlatform"
              ]
            },
            "expectsAcceptanceOf": {
              "@type": "Offer",
              "category": "purchase",
              "Price": 6.99,
              "priceCurrency": "USD",
              "availabilityStarts": "2020-01-01T11:0:00-04:00",
              "availabilityEnds": "2050-06-30T23:59:00-04:00",
              "eligibleRegion": {
                "@type": "Country",
                "name": "US"
              }
            }
          }
        },
        {
          "@type": "Book",
          "@id": "http://example.com/edition/the_catcher_in_the_rye_hardcover",
          "isbn": "9780316769532",
          "bookEdition": "Hardcover",
          "bookFormat": "http://schema.org/Hardcover",
          "inLanguage": "en",
          "url": "http://example.com/edition/the_catcher_in_the_rye_hardcover",
          "datePublished": "1951-07-16",
          "potentialAction": {
            "@type": "ReadAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "http://example.com/store/9780316769532",
              "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/IOSPlatform"
              ]
            },
            "expectsAcceptanceOf": [
              {
                "@type": "Offer",
                "category": "nologinrequired",
                "availabilityStarts": "2020-01-01T11:0:00-04:00",
                "availabilityEnds": "2050-06-30T23:59:00-04:00",
                "eligibleRegion": [
                  {
                    "@type": "Country",
                    "name": "US"
                  },
                  {
                    "@type": "Country",
                    "name": "GB"
                  }
                ]
              },
              {
                "@type": "Offer",
                "category": "Subscription",
                "availabilityStarts": "2020-01-01T11:0:00-04:00",
                "availabilityEnds": "2050-06-30T23:59:00-04:00",
                "eligibleRegion": {
                  "@type": "Country",
                  "name": "IN"
                }
              }
            ]
          }
        }
      ]
    }
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}

BorrowAction Book フィードの JSON ファイルの例

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "http://schema.org",
      "@type": "Book",
      "@id": "http://example.com/work/the_catcher_in_the_rye",
      "url": "http://example.com/work/the_catcher_in_the_rye",
      "name": "The Catcher in the Rye",
      "author": {
        "@type": "Person",
        "name": "J.D. Salinger"
      },
      "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye",
      "workExample": [
        {
          "@type": "Book",
          "@id": "http://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "http://schema.org/Paperback",
          "inLanguage": "en",
          "url": "http://example.com/edition/the_catcher_in_the_rye_paperback",
          "datePublished": "1991-05-01",
          "identifier": {
            "@type": "PropertyValue",
            "propertyID": "OCLC_NUMBER",
            "value": "1057320822"
          },
          "potentialAction": {
            "@type": "BorrowAction",
            "lender": {
              "@type": "LibrarySystem",
              "@id": "http://example.com/librarySystem/100"
            },
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "http://example.com/borrowpurchase?bookId=170",
              "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/IOSPlatform"
              ]
            }
          }
        },
        {
          "@type": "Book",
          "@id": "http://example.com/edition/the_catcher_in_the_rye_hardcover",
          "isbn": "9780316769532",
          "bookEdition": "Hardcover",
          "bookFormat": "http://schema.org/Hardcover",
          "inLanguage": "en",
          "url": "http://example.com/edition/the_catcher_in_the_rye_hardcover",
          "datePublished": "1951-07-16",
          "potentialAction": {
            "@type": "BorrowAction",
            "lender": {
              "@type": "LibrarySystem",
              "@id": "http://example.com/librarySystem/100"
            },
            "target": [
              {
                "@type": "EntryPoint",
                "urlTemplate": "http://example.com/borrowpurchase?bookId=170",
                "actionPlatform": [
                  "http://schema.org/DesktopWebPlatform"
                ]
              },
              {
                "@type": "EntryPoint",
                "urlTemplate": "http://example.com/mobile/borrowpurchase?bookId=170",
                "actionPlatform": [
                  "http://schema.org/AndroidPlatform",
                  "http://schema.org/IOSPlatform"
                ]
              }
            ]
          }
        }
      ]
    }
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}

ReadActionpotentialAction

potentialAction プロパティでは、ReadAction エンティティを使用します。ReadAction には、書籍にアクセスするためのディープリンク、書籍の在庫を保有する販売店、ユーザーが満たすべき条件を定義します。会員ステータス、ログイン ステータス、場所など、書籍へのアクセスに必要な各種の条件を指定できます。

必須プロパティ
@type

Text

ReadAction に設定します。

expectsAcceptanceOf

Offer

このエンティティにアクセスするためのユーザー要件の定義。複数の Offer プロパティが存在する場合、Offer 条件のいずれかを満たすユーザーがコンテンツにアクセスできます。

このプロパティは繰り返し可能です。

expectsAcceptanceOf.@type

Text

Offer に設定します。

expectsAcceptanceOf.category

Text

Offer のタイプ。次のいずれかの値を指定する必要があります。

  • nologinrequired: ユーザーは、購入やログインを行うことなくアクションを実行し、コンテンツを利用できます。
  • free: ユーザーは、購入や有料登録を求められることなく、アクションを実行できます。ただし、アクションの実行時にはログインする必要があります。
  • subscription: サービスの有料登録に書籍が含まれます。
  • purchase: 購入すると、書籍にアクセスできます。
  • rental: 購入すると、書籍に一定期間アクセスできます。
expectsAcceptanceOf.eligibleRegion

Country

Offer を利用できる国。コンテンツを利用できる(または利用できない)国と地域を管理するために使用できます。

このプロパティは繰り返し可能です。

expectsAcceptanceOf.eligibleRegion.@type

Text

Country に設定します。

expectsAcceptanceOf.eligibleRegion.name

Text

ISO 3166-1 alpha-2 形式の国コード。

target

EntryPoint

サポートされているプラットフォーム情報を含む、ディープリンクの仕様。複数の EntryPoint プロパティを使用して、プラットフォーム セットごとに異なるディープリンクを定義できます。

このプロパティは繰り返し可能です。

target.@type

Text

EntryPoint に設定します。

target.actionPlatform

Text

ディープリンクが有効なプラットフォーム。次のいずれかの値を使用します。

  • http://schema.org/DesktopWebPlatform
  • http://schema.org/AndroidPlatform
  • http://schema.org/IOSPlatform

このプロパティは繰り返し可能です。

target.urlTemplate

URL

ユーザーがコンテンツの再生を開始するために使用するリンク。

推奨プロパティ
expectsAcceptanceOf.availabilityEnds

DateTime

サービス期間の終了時刻。ユーザーに書籍を提供する正確な終了時刻の管理に使用できます。

expectsAcceptanceOf.availabilityStarts

DateTime

サービス期間の開始時刻。ユーザーに書籍を提供する正確な開始時刻の管理に使用できます。

expectsAcceptanceOf.price

Number

書籍の購入価格。Offer プロパティの categorypurchase または rental に設定されている場合は必須です。

expectsAcceptanceOf.priceCurrency

Text

価格の通貨。3 文字の ISO 4217 形式で指定します。

ReadAction の例:

"potentialAction": {
  "@type": "ReadAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "http://example.com/purchase?bookId=170",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  "expectsAcceptanceOf": {
    "@type": "Offer",
    "category": "purchase",
    "price": "9.99",
    "priceCurrency": "USD",
    "availabilityStarts": "2018-04-01T11:01:00-04:00",
    "availabilityEnds": "2018-06-30T23:59:00-04:00",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

複数の EntryPoint プロパティを含む ReadAction の例:

"potentialAction": {
  "@type": "ReadAction",
  "target": [
    {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/purchase?bookId=170",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform"
      ]
    },
    {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/mobile/purchase?bookId=170",
      "actionPlatform": [
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform"
      ]
    }
  ],
  "expectsAcceptanceOf": [
    {
      "@type": "Offer",
      "category": "noLoginRequired",
      "availabilityStarts": "2018-04-01T11:01:00-04:00",
      "availabilityEnds": "2018-06-30T23:59:00-04:00",
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        },
        {
          "@type": "Country",
          "name": "GB"
        }
      ]
    },
    {
      "@type": "Offer",
      "category": "Subscription",
      "availabilityStarts": "2018-04-01T11:01:00-04:00",
      "availabilityEnds": "2018-06-30T23:59:00-04:00",
      "eligibleRegion": {
        "@type": "Country",
        "name": "IN"
      }
    }
  ]
}

BorrowActionpotentialAction

potentialAction プロパティでは、BorrowAction エンティティを使用します。BorrowAction には、書籍にアクセスするためのディープリンク、書籍の在庫を保有する図書館、ユーザーが満たすべき条件を定義します。会員ステータス、ログイン ステータス、場所など、書籍へのアクセスに必要な各種の条件を指定できます。

必須プロパティ
@type

Text

BorrowAction に設定します。

lender

LibrarySystem

このエディションへのアクセスを提供する図書館システム。

lender.@id

URL

LibrarySystem の ID のリファレンス。LibrarySystem は、Library フィード内ですべて個別に記述する必要があります。

lender.@type

Text

LibrarySystem に設定します。

target

EntryPoint

サポートされているプラットフォーム情報を含む、ディープリンクの仕様。複数のプラットフォーム セットへのディープリンクを定義するには、EntryPoint 配列を指定します。

このプロパティは繰り返し可能です。

target.@type

Text

EntryPoint に設定します。

target.actionPlatform

Text

ディープリンクが有効なプラットフォーム。次のいずれかの値を使用します。

  • http://schema.org/DesktopWebPlatform
  • http://schema.org/AndroidPlatform
  • http://schema.org/IOSPlatform

このプロパティは繰り返し可能です。

target.urlTemplate

URL

コンテンツの再生を開始するためのリンク。

BorrowAction の例:

"potentialAction": {
  "@type": "BorrowAction",
  "lender": {
    "@type": "LibrarySystem",
    "@id": "http://example.com/librarySystem/100"
  },
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "http://example.com/borrow?bookId=170",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/IOSPlatform"
    ]
  }
}

複数の EntryPoint プロパティを含む BorrowAction の例:

"potentialAction": {
  "@type": "BorrowAction",
  "lender": {
    "@type": "LibrarySystem",
    "@id": "http://example.com/librarySystem/100"
  },
  "target": [
    {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/borrow?bookId=170",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform"
      ]
    },
    {
      "@type": "EntryPoint",
`      "urlTemplate": "http://example.com/mobile/borrow?bookId=170",
      "actionPlatform": [
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform"
      ]
    }
  ]
}

Library エンティティ

Library の定義の全文は schema.org/Library で確認できますが、考慮する必要があるのは下記のプロパティだけです。フィードに含めるすべての図書館について、必須プロパティを定義する必要があります。また、推奨プロパティを定義して、コンテンツに関する情報を追加できます。これはユーザー エクスペリエンスの向上に役立ちます。

Library エンティティは、最上位レベルの Library エンティティ タイプです。これは抽象的な構造を示すものであり、LibrarySystem エンティティと、その LibrarySystem の下位レベルにあたる個別の Library (member) エンティティで構成されます。

Library フィードは Book フィードとは区別されます。したがって、Library フィードを実装する場合には、Book フィードとは完全に別にする必要があります。詳細については、フィードを作成するをご覧ください。

LibrarySystem

LibrarySystem エンティティは、図書館メンバーによる協力関係のつながりを表します。

必須プロパティ
@context Text

http://schema.org に設定します。

@id URL

図書館システムに関するグローバルで一意な ID。URL 形式で指定します。ID は固定されており、時間の経過とともに変化してはなりません。不透明型の文字列として扱われ、有効なリンクである必要はありません。@id 値に使用するドメインは、プロバイダの組織で所有している必要があります。

@type Text

LibrarySystem に設定します。

additionalProperty PropertyValue

図書館の種類を示すために使用する追加のプロパティ。

additionalProperty.@type Text

PropertyValue に設定します。

additionalProperty.name Text

librarytype に設定します。

additionalProperty.value Text

図書館の種類。次のいずれかの値を使用します。

  • public
  • academic
  • corporate
  • national
  • school
  • special
member Library

図書館システムのメンバー(1 つまたは複数)。

name Text

図書館システムの名前。例: The Southwestern League of Libraries

url URL

図書館システムの紹介または解説が掲載されている URL。Google 検索は、このリンクを使用してフィード内のコンテンツと Google のデータベース内のコンテンツを照合します。実際のランディング ページについては、Google 検索は workExample.target.urlTemplate で指定された URL を使用します。

Librarymember

LibrarySystem エンティティの member プロパティでは、Library (member) エンティティを使用します。Library (member) は、特定の図書館システムの単一の図書館メンバーを表します。

必須プロパティ
@id URL

図書館の分館に関するグローバルで一意な ID。URL 形式で指定します。ID は固定されており、時間の経過とともに変化してはなりません。不透明型の文字列として扱われ、有効なリンクである必要はありません。@id 値に使用するドメインは、プロバイダの組織で所有している必要があります。

@type Text

Library に設定します。

location PostalAddress

図書館の分館の住所。すべてのプロパティがすべての国に適用されるわけではありません。図書館の住所に該当するものをすべて含めてください。

米国の location の例:


{
  "@type": "Library",
  "@id": "http://example.com/library-branches/1001",
  "name": "Campbell Library",
  "location": {
    "@type": "PostalAddress",
    "streetAddress": "77 Harrison Ave",
    "addressLocality": "Campbell",
    "addressRegion": "CA",
    "postalCode": "95008",
    "addressCountry": "US"
  }
}

日本の location の例:


{
  "@type": "Library",
  "@id": "http://example.com/library-branches/1003",
  "name": "Tokyo Metropolitan Central Library",
  "location": {
    "@type": "PostalAddress",
    "streetAddress": "7-13-5 Minamiazabu, Minato City",
    "addressLocality": "Tokyo",
    "postalCode": "106-0047",
    "addressCountry": "JP"
  }
}
location.@type Text

PostalAddress に設定します。

location.addressCountry Text

ISO 3166-1 形式の国コード。例: US

location.addressLocality Text

地名。例: Mountain View

location.addressRegion Text

地域。例: CA

location.postalCode Text

郵便番号。例: 94043

location.streetAddress Text

番地。例: 1600 Amphitheatre Pkwy

name Text

図書館の分館の名前。

LibrarySystem フィードの JSON ファイルの例

{
   "@context": "http://schema.org",
   "@type":"LibrarySystem",
   "@id":"http://example.com/library-systems/100",
   "name":"Santa Clara County Library District",
   "additionalProperty":[
      {
         "@type":"PropertyValue",
         "name":"librarytype",
         "value":"public"
      }
   ],
   "member":[
      {
         "@type":"Library",
         "@id":"http://example.com/library-branches/1001",
         "name":"Campbell Library",
         "location":{
            "@type":"PostalAddress",
            "streetAddress":"77 Harrison Ave",
            "addressLocality":"Campbell",
            "addressRegion":"CA",
            "postalCode":"95008",
            "addressCountry":"US"
         }
      },
      {
         "@type":"Library",
         "@id":"http://example.com/library-branches/1002",
         "name":"Gilroy Library",
         "location":{
            "@type":"PostalAddress",
            "streetAddress":"350 W 6th St",
            "addressLocality":"Gilroy",
            "addressRegion":"CA",
            "postalCode":"95020",
            "addressCountry":"US"
         }
      }
   ]
}