書籍動作 (Book) 結構化資料

書籍動作可讓使用者透過 Google 搜尋發掘書籍和作者,並讓搜尋服務的使用者直接透過搜尋結果購買或借閱自己找到的書籍。舉例來說,使用者可以搜尋《夏綠蒂的網》,並在搜尋的結果中購買或借閱這本書。書籍供應商可以使用本文提供的結構化資料結構定義,向 Google 提供資料動態饋給。我們的規格提供兩種屬性:ReadAction 能讓使用者買書,BorrowAction 則能借書。

Google 搜尋結果中的書籍動作

閱讀動作和借閱動作已經整合到知識面板中,能夠顯示購買或借閱書籍的選項。透過您提供的連結,閱讀動作和借閱動作會將使用者從知識面板和其他 Google 產品中,直接導向您網站或應用程式中的書籍頁面。

知識面板中的供應商順序會依據每位使用者的喜好進行動態調整,這表示不同的使用者會看到不同的順序,且同一位使用者在不同時間看到的順序也可能不同。影響這項顯示順序的因素眾多,舉例來說,如果使用者經常在知識面板中點選特定供應商的連結,該供應商就較有可能在順序中獲得較高的排名。沒有任何方法能控制這項顯示順序。

踏出第一步

如要成功導入書籍動作,您必須依據書籍動作的結構化資料類型定義來建立動態饋給。但在那之前,請先詳閱下列各節:

指南規範

為確保書籍能順利呈現在 Google 搜尋結果中,請務必熟悉一些重要細節和主要概念。除此之外,您的動態饋給也必須符合幾項標準化格式規格。

為協助您完成此目標,請務必遵循結構化資料通用指南搜尋 Essentials,並且同時遵守本文描述的規範,包括:

作品和版本

本說明文件使用兩種不同的詞彙來討論書籍:

  • 作品 (Work):指一本書的抽象概念。具體來說,作品的屬性包括書名、作者和原文語言等中繼資料。
  • 版本 (Edition):書籍的實際版本。具體來說,版本的屬性包括出版年份、版本名稱和國際標準書號 (ISBN) 等中繼資料。

以《夏綠蒂的網》為例,這是一部「作品」,而它曾出版過的每種變體都是一種版本,因此《夏綠蒂的網》這部作品可能會有初版、二版、節縮版、法文翻譯版等眾多版本。

雖然您可能無法立刻察覺其中差異,不過作品和版本的區別對動態饋給來說特別重要。Book 實體分為兩種:

  • Book (Work) 是「頂層」的 Book 實體:
    • workExampleWork 的屬性之一,能指定一個獨一無二的 Book (Edition) 例項。
    • 每個 Work 都必須要有至少一個 workExample
  • Book (Edition) 是「較低層級」的 Book 實體。

請記得,一部作品可以有多個版本。建議您盡可能將這些版本集合在一起,這樣 Google 系統就能運用這本書的所有相關資訊,找到正確的書籍,並呈現在搜尋結果中。如果真的需要,您可以將這些版本分割為多個作品記錄,但每個作品記錄都必須包含:

  • 各自不同的 @id
  • 至少一個擁有 ISBN 或其他支援 ID 的版本。

圖書館系統和圖書館成員

Library entity 是「頂層」的 Library 實體類型。這是一種抽象結構,包含一個 LibrarySystem 實體以及該圖書館系統中每一個「較低層級」的 Library (member) 實體。

LibrarySystem 實體是一個抽象概念,代表由圖書館「成員」組成的合作網絡。舉例來說,您可以將奧斯汀公共圖書館指定為 LibrarySystem 實體。在其網站上,奧斯汀公共圖書館描述自己是為德州奧斯汀地區提供服務的公立圖書館「系統」,而這套系統是由 20 個關聯圖書館 (或稱圖書館「成員」) 組成。

每個 LibrarySystem 實體都必須擁有至少一個 Library (member) 實體,即使該圖書館實際上不屬於任何圖書館系統也一樣。面對這種情況時,為了順利導入書籍動作,請將這座圖書館視為其圖書館「系統」的唯一圖書館「成員」。對書籍動作導入作業而言,圖書館「成員」並非抽象的概念,因此會有實體地址,這點與圖書館「系統」不同。

同樣地,依照前面所述的邏輯,每個 Library (member) 實體都必須屬於至少一個 LibrarySystem 實體。

ISBN 和其他支援的 ID

當 Google 搜尋將您的動態饋給資料和 Google 的資料進行比對時,會以 ISBN 為主要的核對信號。如果想在搜尋結果顯示書籍,您就必須提供每一本書的 ISBN 或其他支援的 ID。如果缺少這些資訊,系統便無法比對您的書籍,也就無法將書籍提供給使用者。

Google 搜尋偏好採用 ISBN-13 系統,但您也可以提供下列 ID:

  • 國際線上圖書館電腦中心 (OCLC) 編號
  • 美國國會圖書館控管編號 (LCCN)
  • JP e-code

為了確保使用者在尋找書籍時能獲得最佳使用體驗,動態饋給中的連結必須遵循下列規範:

  • 如果您有多個網頁會顯示相同的內容,則連結必須是包含書名和其他書籍資訊的標準網址
  • 當使用者點選閱讀動作或借閱動作連結後,必須要連向直接支援購買或借閱該書的網頁。有些動作連結指向的網頁會要求使用者必須點擊更多連結,才能購買或借閱內容,請特別注意不要這麼做。舉例來說,請勿將使用者帶往搜尋結果網頁或產品摘要頁面。

建立動態饋給

如果您的網站向使用者販售書籍,就必須上傳 Book 動態饋給。請與 Google 代表聯絡,確認動態饋給的上傳方式和位置等詳細資訊。

如果您的網站提供書籍借閱,就必須上傳兩個不同的動態饋給:Book 動態饋給和 Library 動態饋給。請與 Google 代表聯絡,確認動態饋給的上傳方式和位置等詳細資訊。

遵循動態饋給的檔案大小、數量和格式規定

請遵循以下規定:

  • 動態饋給檔案大小相關規定:
    • 未壓縮的動態饋給檔案不得大於 1 GB。
    • 要壓縮的動態饋給檔案不得大於 1 GB。如果未壓縮的動態饋給檔案大於 1 GB,必須將分割為多個檔案。
  • 您可以壓縮動態饋給檔案,壓縮格式必須為 zip、gz、tar、tar.gz、JAR、ar、arj、cpio 或傾印封存檔案。
  • 如果有多個動態饋給檔案,可以選擇直接原樣上傳,或是納入 Sitemap 索引檔中。
  • 單一動態饋給檔案的副檔名必須為 .json

遵循動態饋給內容規定

請特別留意以下動態饋給內容規定,並務必遵循:

  • 動態饋給不得含有過時的實體。過時實體是指 availabilityEnds 設定為過去日期的實體,或是您的網站已不再提供的實體。
  • 動態饋給所包含的所有深層連結 (例如 urlTemplate) 和所有網址 (例如 url),都必須是實際使用的網址。請勿使用品質確保用的網址、開發網址或任何其他非實際使用的網址。
  • 所有網址 (例如 url) 都必須是標準網頁
  • 動態饋給中的每個實體都必須指定下列屬性:
    • 唯一識別碼:@id
    • 專屬網址:url
    • 專屬深層連結:urlTemplate

使用資料動態饋給驗證工具測試動態饋給

建議您按照下列疑難排解步驟,在資料動態饋給驗證工具上修正常見的錯誤和警告:

  • 確認「驗證日期」欄位中選取的是正確選項。 請為 Book 實體選取「書籍動作」

  • 確認 @type 的值拼寫正確無誤。
  • 確認 @context 的值設定正確。請將 ReadActionBorrowAction 都設定為 "@context": "https://schema.org"

代管動態饋給檔案

準備好動態饋給檔案後,請將檔案代管於安全的位置。Google 會定期擷取動態饋給,確保您的內容皆為最新資訊。

代管方法

系統支援下列幾種動態饋給代管方法:

代管 驗證支援
Google Cloud Storage Storage Object Viewer 權限
HTTPS 使用者名稱 + 密碼,或 HTTP 用戶端憑證
安全檔案傳輸通訊協定 密碼,或是金鑰 + 詞組,或兩者同時使用
AWS S3 金鑰 ID + 存取金鑰

將動態饋給檔案送交審查

在 Google 搜尋收錄您的內容之前,Google 支援團隊會審查動態饋給中的深層連結品質。我們強烈建議您手動測試某些深層連結,確認這些連結開啟的網頁可供使用者購買或借閱書籍。

如要提出動態饋給審查要求,請提供下列資訊:

  • 代管位置:動態饋給檔案的網址。
  • 代管驗證 (如適用):讓 Google 能從代管位置取得動態饋給檔案的驗證憑證。

視需要更新動態饋給

我們建議您每天更新動態饋給,不過最終還是要依您目錄的變更頻率而定。請留意下列情況和提示:

  • Google 搜尋不支援即時更新。
  • Google 搜尋每天都會擷取您的動態饋給,擷取到的內容通常會在兩天內編入索引。
  • 如果已可預見某個版本的供應時間會有所變化,請使用 availabilityStartsavailabilityEnds 設定確切的供應日期;如果已停止供應,則請完整移除該版本的實體。

結構化資料類型定義

您的內容必須包含下面列出的必要屬性,才能顯示在結構化搜尋結果中。您也可以加入建議的屬性,為內容新增更多相關資訊,提供更優質的使用者體驗。

DataFeed 實體

每個傳送給 Google 的 schema.org 資料動態饋給檔案,其根目錄層級都必須包含一個 DataFeed 實體,而所有 BookLibrary 實體都必須列在 DataFeed 實體的 dataFeedElement 欄位下。

Google 支援的屬性如下:

必要屬性
@context

Text

請設為 https://schema.org

@type

Text

請設為 DataFeed

dataFeedElement

BookLibrarySystem

請設定為單一 Book 實體或 LibrarySystem 實體,否則,請設為僅包含 Book 實體或 LibrarySystem 實體的陣列。請勿將這個屬性設定為同時包含 Book 實體和 LibrarySystem 實體的陣列。

Book 動態饋給中的使用範例:

{
  "@context": "https://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "https://schema.org",
      "@type": "Book",
      "@id": "https://example.com/work/the_catcher_in_the_rye",
      "url": "https://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": "https://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "https://schema.org/Paperback",
          "inLanguage": "en",
          ...
        },
        ...
      ]
   }
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}

LibrarySystem 動態饋給中的使用範例:

{
  "@context": "https://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "https://schema.org",
      "@type": "LibrarySystem",
      "@id": "https://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 實體

schema.org/Book 內已提供 Book 的完整定義,您只需要考慮下列屬性即可。請務必為加入動態饋給的每本書定義必要屬性。您也可以定義建議的屬性,為內容新增更多相關資訊,提供更優質的使用者體驗。

Book (Work)

這種 Book 實體是頂層的實體類型,代表一部「作品」

Google 支援的屬性如下:

必要屬性
@context

Text

請設為 https://schema.org

@id

Text

書籍的全域唯一 ID,採網址形式,必須對貴機構是唯一值。這個 ID 應固定,不會隨著時間而改變。我們建議採用網址格式,但並非強制,且不一定要是有效連結。用於 @id 值的網域必須由貴機構所擁有。

@type

Text

請設為 Book

author

PersonOrganization

書籍的作者。

name

Text

書籍的名稱。

url

URL

您網站上介紹或描述該書籍資訊的網址。這個連結能協助系統準確比對動態饋給中的內容與 Google 資料庫中的內容。可以與 workExample.target.urlTemplate 相同。

Google 搜尋會使用 workExample.target.urlTemplate 中提供的網址做為實際的到達網頁。

workExample

Book (Edition)

作品的版本。

建議屬性
sameAs

URL

可識別作品的參考網頁網址。舉例來說,可能是該本書在維基百科、維基數據、虛擬國際權威檔 (VIAF) 或美國國會圖書館的頁面。

Book (Edition)

這個 Book 實體用於 workExample 屬性,代表一部「作品」的其中一個「版本」

Google 支援的屬性如下:

必要屬性
@id

Text

書籍的全域唯一 ID,採網址形式,必須對貴機構是唯一值。這個 ID 應固定,不會隨著時間而改變。我們建議採用網址格式,但並非強制,且不一定要是有效連結。用於 @id 值的網域必須由貴機構所擁有。

@type

Text

請設為 Book

bookFormat

Enum

版本的形式。這個屬性的值必須為以下其中一種:

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

Text

版本內容的主要語言。請參考 ISO 639-1 alpha-2 代碼清單,使用其中一個由兩個英文字母組成的代碼。

isbn

Text

版本的 ISBN-13 編號。如果您擁有的是 ISBN-10,請轉換為 ISBN-13。

potentialAction

ReadActionBorrowAction

觸發後能讓使用者購買或下載書籍的動作。詳情請參閱 ReadActionBorrowAction 的說明。

建議屬性
author

PersonOrganization

版本的作者。

bookEdition

Text

書籍版本資訊,例如 2nd Edition

datePublished

Date

版本的出版日期,採 YYYY-MM-DDYYYY 格式。可以是特定日期,或只是某個年份。

identifier

PropertyValue

可明確識別版本的外部 ID 或其他 ID。可使用多個 ID。詳情請參閱 PropertyValue (identifier) 的說明。

這個屬性可以重複使用。

name

Text

版本的名稱。只有在版本名稱與作品名稱不同時,才需要使用這個屬性。

sameAs

URL

可明確識別版本的參照網頁網址。例如,此特定版本的維基百科頁面。請勿重複使用 WorksameAs

url

URL

您網站上介紹或描述該版本資訊的網址,可以與 workExample.target.urlTemplate 相同。

Book (Edition) 範例:

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

含有多個 workExample 屬性的 Book (Edition) 範例:

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

PersonOrganization (author)

PersonOrganization 實體會用於書籍的 author 屬性。

必要屬性
@type

Text

設為 PersonOrganization

name

Text

個人或機構組織的名稱。

建議屬性
sameAs

URL

可明確識別個人或機構組織的參照網頁網址,例如個人或機構組織的維基百科頁面。

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)

PropertyValue 實體會用於 Editionidentifier 屬性。

必要屬性
@type

Text

請設為 PropertyValue

propertyID

Text

ID 的類型。如 ISBN 和其他支援的 ID 一節所述,您必須使用下列其中一種 ID:

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
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"
    },{
      "@type": "PropertyValue",
      "propertyID": "JP_E-CODE",
      "value":  "12345678901234567890"
    }]

ReadAction Book 動態饋給 JSON 檔案範例

{
  "@context": "https://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "https://schema.org",
      "@type": "Book",
      "@id": "https://example.com/work/the_catcher_in_the_rye",
      "url": "https://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": "https://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "https://schema.org/Paperback",
          "inLanguage": "en",
          "url": "https://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": "https://example.com/store/9787543321724",
              "actionPlatform": [
                "https://schema.org/DesktopWebPlatform",
                "https://schema.org/AndroidPlatform",
                "https://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": "https://example.com/edition/the_catcher_in_the_rye_hardcover",
          "isbn": "9780316769532",
          "bookEdition": "Hardcover",
          "bookFormat": "https://schema.org/Hardcover",
          "inLanguage": "en",
          "url": "https://example.com/edition/the_catcher_in_the_rye_hardcover",
          "datePublished": "1951-07-16",
          "potentialAction": {
            "@type": "ReadAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "https://example.com/store/9780316769532",
              "actionPlatform": [
                "https://schema.org/DesktopWebPlatform",
                "https://schema.org/AndroidPlatform",
                "https://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": "https://schema.org",
  "@type": "DataFeed",
  "dataFeedElement": [
    {
      "@context": "https://schema.org",
      "@type": "Book",
      "@id": "https://example.com/work/the_catcher_in_the_rye",
      "url": "https://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": "https://example.com/edition/the_catcher_in_the_rye_paperback",
          "isbn": "9787543321724",
          "bookEdition": "Mass Market Paperback",
          "bookFormat": "https://schema.org/Paperback",
          "inLanguage": "en",
          "url": "https://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": "https://example.com/librarySystem/100"
            },
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "https://example.com/borrowpurchase?bookId=170",
              "actionPlatform": [
                "https://schema.org/DesktopWebPlatform",
                "https://schema.org/AndroidPlatform",
                "https://schema.org/IOSPlatform"
              ]
            }
          }
        },
        {
          "@type": "Book",
          "@id": "https://example.com/edition/the_catcher_in_the_rye_hardcover",
          "isbn": "9780316769532",
          "bookEdition": "Hardcover",
          "bookFormat": "https://schema.org/Hardcover",
          "inLanguage": "en",
          "url": "https://example.com/edition/the_catcher_in_the_rye_hardcover",
          "datePublished": "1951-07-16",
          "potentialAction": {
            "@type": "BorrowAction",
            "lender": {
              "@type": "LibrarySystem",
              "@id": "https://example.com/librarySystem/100"
            },
            "target": [
              {
                "@type": "EntryPoint",
                "urlTemplate": "https://example.com/borrowpurchase?bookId=170",
                "actionPlatform": [
                  "https://schema.org/DesktopWebPlatform"
                ]
              },
              {
                "@type": "EntryPoint",
                "urlTemplate": "https://example.com/mobile/borrowpurchase?bookId=170",
                "actionPlatform": [
                  "https://schema.org/AndroidPlatform",
                  "https://schema.org/IOSPlatform"
                ]
              }
            ]
          }
        }
      ]
    }
  ],
  "dateModified": "2018-09-10T13:58:26.892Z"
}

ReadAction (potentialAction)

ReadAction 實體會用於 potentialAction 屬性。 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

這個深層連結適用的所有平台。請使用下列其中一個值:

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

這個屬性可以重複使用。

target.urlTemplate

URL

這個連結能將使用者直接導向書籍到達網頁的內容。

建議屬性
expectsAcceptanceOf.availabilityEnds

DateTime

供應期間的結束時間。此屬性可用來控制不再對使用者顯示這本書的確切時間。

expectsAcceptanceOf.availabilityStarts

DateTime

供應期間的開始時間。此屬性可用來控制可以開始向使用者顯示這本書的確切時間。

expectsAcceptanceOf.price

Number

書籍的購買價格。當 Offer 屬性的 category 設為 purchaserental 時,此屬性為必要屬性。

expectsAcceptanceOf.priceCurrency

Text

價格的幣別,採用三個英文字母組成的 ISO 4217 格式。

ReadAction 範例:

"potentialAction": {
  "@type": "ReadAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://example.com/purchase?bookId=170",
    "actionPlatform": [
      "https://schema.org/DesktopWebPlatform",
      "https://schema.org/AndroidPlatform",
      "https://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": "https://example.com/purchase?bookId=170",
      "actionPlatform": [
        "https://schema.org/DesktopWebPlatform"
      ]
    },
    {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/mobile/purchase?bookId=170",
      "actionPlatform": [
        "https://schema.org/AndroidPlatform",
        "https://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"
      }
    }
  ]
}

BorrowAction (potentialAction)

BorrowAction 實體會用於 potentialAction 屬性。 BorrowAction 負責定義存取書籍的深層連結、擁有書籍的圖書館,以及使用者必須符合的條件。這些條件可能包括會員狀態、登入狀態、位置,或存取該書籍所須的任何其他資訊。

必要屬性
@type

Text

請設為 BorrowAction

lender

LibrarySystem

提供此版本存取權的圖書館系統。

lender.@id

URL

LibrarySystem 的 ID 參照,必須獨立在圖書館動態饋給中完整定義。

lender.@type

Text

請設為 LibrarySystem

target

EntryPoint

您的深層連結規格,包括支援的平台資訊。如要定義不同平台集的深層連結,請指定 EntryPoint 陣列。

這個屬性可以重複使用。

target.@type

Text

請設為 EntryPoint

target.actionPlatform

Text

這個深層連結適用的所有平台。請使用下列其中一個值:

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

這個屬性可以重複使用。

target.urlTemplate

URL

這個連結能將使用者直接導向書籍到達網頁的內容。

BorrowAction 範例:

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

含有多個 EntryPoint 屬性的 BorrowAction 範例:

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

Library 實體

schema.org/Library 內已提供 Library 的完整定義,您只需要考慮下列屬性即可。請務必為加入動態饋給的每間圖書館定義必要屬性。 您也可以定義建議的屬性,為內容新增更多相關資訊,提供更優質的使用者體驗。

這種 Library 實體是頂層的 Library 實體類型,這是一種抽象結構,包含一個 LibrarySystem 實體以及該 LibrarySystem 中每一個「較低層級」的 Library (member) 實體。

Library 動態饋給與 Book 動態饋給是不同的項目,因此,您導入的任何 Library 動態饋給都必須獨立於 Book 動態饋給之外。 詳情請參閱建立動態饋給一節的說明。

LibrarySystem

LibrarySystem 實體代表由圖書館「成員」組成的合作網絡。

必要屬性
@context Text

請設為 https://schema.org

@id URL

圖書館系統的全域唯一識別碼,採網址格式。這個 ID 應固定,不會隨著時間而改變。系統會將這個值視為不透明字串,且不一定要是有效連結。用於 @id 值的網域必須由貴機構所擁有。

@type Text

請設為 LibrarySystem

additionalProperty PropertyValue

用來識別圖書館類型的額外屬性。

additionalProperty.@type Text

請設為 PropertyValue

additionalProperty.name Text

請設為 librarytype

additionalProperty.value Text

圖書館的類型。請使用下列其中一個值:

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

圖書館系統的成員。

name Text

圖書館系統的名稱。例如 The Southwestern League of Libraries

url URL

介紹或描述圖書館系統的網址。Google 搜尋會使用這個連結來比對動態饋給中的內容與 Google 資料庫中的內容,並使用 workExample.target.urlTemplate 中提供的網址做為實際的到達網頁。

Library (member)

Library (member) 實體會用於 LibrarySystem 實體的 member 屬性。 Library (member) 代表的是特定圖書館「系統」的單一圖書館「成員」

必要屬性
@id URL

圖書館分館的全域唯一識別碼,採網址格式。這個 ID 應固定,不會隨著時間而改變。系統會將這個值視為不透明字串,且不一定要是有效連結。用於 @id 值的網域必須由貴機構所擁有。

@type Text

請設為 Library

location PostalAddress

圖書館分館的街道地址。並非所有屬性都適用於所有國家/地區,請盡可能加入所有適用於您圖書館地址的屬性。

美國地區 location 範例:

{
  "@type": "Library",
  "@id": "https://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": "https://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": "https://schema.org",
   "@type":"LibrarySystem",
   "@id":"https://example.com/library-systems/100",
   "name":"Santa Clara County Library District",
   "additionalProperty":[
      {
         "@type":"PropertyValue",
         "name":"librarytype",
         "value":"public"
      }
   ],
   "member":[
      {
         "@type":"Library",
         "@id":"https://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":"https://example.com/library-branches/1002",
         "name":"Gilroy Library",
         "location":{
            "@type":"PostalAddress",
            "streetAddress":"350 W 6th St",
            "addressLocality":"Gilroy",
            "addressRegion":"CA",
            "postalCode":"95020",
            "addressCountry":"US"
         }
      }
   ]
}