Структурированные данные для действий, связанных с книгами (Book)

Пользователи могут искать в Google Поиске книги и их авторов. Благодаря этому типу данных они смогут сразу же купить нужную книгу (например, роман Война и мир) или взять ее напрокат. Если вы продаете книги, загрузите в Google фид с описанными здесь структурированными данными. В нашей спецификации есть действия ReadAction (купить книгу) и BorrowAction (взять напрокат).

Действия с книгой в результатах поиска

Действия ReadAction и BorrowAction преобразуются в блоках знаний и других панелях Google в ссылки "Купить" и "В библиотеке". Нажав на такую ссылку, пользователь переходит на страницу книги на вашем сайте или в вашем приложении.

Порядок поставщиков в блоке знаний определяется индивидуально для каждого пользователя. То есть у каждого из них поставщики будут расположены по-разному, и даже для одного и того же пользователя в разных случаях блок знаний может быть разным. Это зависит от нескольких факторов. Например, если пользователь часто нажимает на ссылки одного из поставщиков, то этот поставщик, скорее всего, будет располагаться выше других в блоке знаний. Изменить этот порядок вручную нельзя.

Начало работы

Чтобы реализовать действия, связанные с книгами, создайте фид в соответствии со спецификацией структурированных данных Book. Но предварительно изучите следующие разделы:

Правила

Если вы хотите, чтобы ваши книги появлялись в результатах в Поиске, ознакомьтесь с важной информацией и основными понятиями. Также не забывайте, что ваш фид должен соответствовать стандартизованным требованиям к этому формату.

Чтобы выполнить эти требования, изучите информацию, приведенную в этой статье, а также общие рекомендации по использованию структурированных данных и Главное о Поиске. Эти требования разделены на следующие категории:

Произведения и издания

В этой документации используются два термина, связанных с книгами:

  • Произведение. Абстрактная книга, которая характеризуется такими атрибутами, как название, автор и язык оригинала.
  • Издание. Определенный набор экземпляров книги, который характеризуется такими атрибутами, как год издания, название издания и номер ISBN.

Например, Война и мир – это произведение, которое может иметь несколько изданий: первое, второе, сокращенное, перевод на английский язык и т. д.

Об этом отличии (не всегда очевидном) особенно важно помнить при создании фида. Есть два элемента Book:

  • Book (Work) – произведение. Это элемент Book верхнего уровня:
    • workExample – это свойство элемента Work, которое обозначает один единственный экземпляр элемента Book (Edition).
    • У каждого элемента Work должно быть хотя бы одно свойство workExample.
  • Book (Edition) – издание. Это элемент Book нижнего уровня.

У каждого произведения может быть несколько изданий. Издания рекомендуется объединять в как можно более крупные группы. Так алгоритмам Google будет проще обработать всю информацию о книге и представить ее в Поиске. При необходимости можно разбить их на несколько записей с произведениями, но тогда каждая запись должна иметь:

  • уникальный идентификатор @id;
  • хотя бы одно издание с номером ISBN или другим поддерживаемым идентификатором.

Библиотечные сети и филиалы

Library entity – элемент Library верхнего уровня. Это обобщенное понятие, в которое входит элемент LibrarySystem (библиотечная сеть) и элементы Library (member) (филиал библиотеки), относящиеся к этой сети.

Элемент LibrarySystem – это абстрактное понятие, обозначающее библиотечную сеть, которая состоит из филиалов библиотеки. Например, Публичную библиотеку Остина (штат Техас) можно представить элементом LibrarySystem. На ее сайте указано, что это сеть публичных библиотек, обслуживающих город Остин в штате Техас. Она состоит из 20 аффилированных библиотек, или филиалов.

Каждый элемент LibrarySystem должен иметь хотя бы один элемент Library (member), даже если в реальности библиотека не входит в библиотечную сеть. В таком случае просто считается, что она является единственным филиалом в сети. В отличие от библиотечной сети, филиал библиотеки не является абстракцией и имеет физический адрес.

Каждый филиал (элемент Library (member)) должен принадлежать хотя бы к одной библиотечной сети (элемент LibrarySystem).

Номер ISBN и другие поддерживаемые идентификаторы

Номер ISBN – это основной признак, который используется, когда Поиск сопоставляет данные фида с данными Google. Для всех книг, которые вы хотите сделать доступными в результатах поиска, нужно указать номер ISBN или другой поддерживаемый идентификатор. В противном случае ваши книги могут не сопоставляться с запросами пользователей и не показываться на странице результатов.

Для Google Поиска желательно использовать номера в формате ISBN-13, но также допускаются следующие идентификаторы:

  • номер OCLC (система Компьютерного библиотечного онлайн-центра);
  • номер LCCN (система Библиотеки Конгресса);
  • номер JP e-code (система японского Комитета по изучению и управлению кодами электронных изданий).

Чтобы пользователям было удобно находить ваши книги, ссылки в фиде должны соответствовать следующим правилам:

  • Если контент дублируется, используйте в качестве ссылки канонический URL, который содержит название и другую информацию о книге.
  • Когда пользователь нажимает на ссылку, чтобы прочитать книгу, он должен переходить на страницу, где он может купить ее или взять напрокат. Не настраивайте переадресацию на страницы, где понадобится снова нажимать на ссылки, чтобы выполнить эти действия, например на страницу с результатами поиска или описанием книги.

Создание фида

Если на вашем сайте продаются книги, отправьте нам фид Book. Узнайте у своего представителя Google, как и куда его загружать.

Если на вашем сайте пользователи могут брать книги напрокат, вам нужно отправить нам два фида: Book и Library. Узнайте у своего представителя Google, как и куда их загружать.

Требования к размеру файла, количеству и формату

Учитывайте перечисленные ниже требования.

  • Размер файла:
    • Размер несжатого файла с фидом не должен превышать 1 ГБ.
    • Перед сжатием размер файла не должен превышать 1 ГБ. В противном случае его нужно разбить на несколько файлов.
  • Файлы с фидами можно сжимать, используя следующие форматы: ZIP, GZ, TAR, TAR.GZ, JAR, AR, ARJ, CPIO или DUMP.
  • Если у вас несколько файлов с фидами, их можно загрузить отдельно или включить в файл индекса Sitemap.
  • Отдельные файлы с фидами должны иметь расширение .json.

Требования к содержанию фида

Соблюдайте перечисленные ниже требования к содержанию фида.

  • В фиде не должно быть неактивных элементов. Неактивными считаются элементы, у которых в свойстве availabilityEnds задана прошедшая дата, и те, которых больше нет на вашем сайте.
  • Все ссылки на контент (например, urlTemplate) и все URL (например, url) в фиде должны быть рабочими. URL, которые используются для тестирования, разработки или других целей, отличных от рабочих, не допускаются.
  • Все URL (например, url) должны быть каноническими.
  • Для каждого элемента в фиде должны быть заданы следующие свойства:
    • уникальный идентификатор @id;
    • уникальный URL url;
    • уникальная ссылка на контент urlTemplate.

Проверка фида с помощью инструмента валидации

Если проверка фида с помощью инструмента валидации показала наличие ошибок или предупреждений, рекомендуем выполнить следующие действия, чтобы устранить их:

  • Выберите нужный вариант в поле Проверить. Для элемента Book это должно быть Действие с книгами.

  • Убедитесь, что в значении параметра @type нет ошибок.
  • Проверьте, правильно ли указано значение параметра @context. Установите значение "@context": "https://schema.org" и для ReadAction, и для BorrowAction.

Размещение фида

Завершив создание фида, поместите его в надежное хранилище так, чтобы у Google был к нему доступ для периодического обновления информации о ваших книгах.

Где можно размещать фиды

Поддерживаются следующие варианты размещения:

Хостинг Поддерживаемые методы аутентификации
Google Cloud Storage Разрешение для Наблюдателя объектов в хранилище
HTTPS Имя пользователя и пароль или сертификат клиента для HTTP-соединения
SFTP Пароль или ключ с кодовой фразой (или оба этих варианта)
AWS S3 Идентификатор ключа и ключ доступа

Отправка фида на проверку

Прежде чем ваши книги появятся в Google Поиске, наши специалисты должны проверить качество используемых в фиде ссылок на контент. Мы настоятельно рекомендуем вам вручную проверить хотя бы некоторые из них и убедиться, что они ведут на страницы, на которых можно купить книгу или получить временный доступ к ней.

Чтобы запросить проверку фида, укажите следующую информацию:

  • где находится фид – URL файла с фидом;
  • способ аутентификации – учетные данные для доступа Google к фиду.

Обновление фида

Мы рекомендуем обновлять фид ежедневно, но в конечном итоге периодичность обновления зависит от того, как часто изменяется ваш каталог. Также учитывайте следующее:

  • В Google Поиске не поддерживаются обновления в режиме реального времени.
  • Google Поиск считывает фид один раз в сутки и индексирует контент (как правило) в течение двух дней.
  • Если срок доступности издания в ближайшем будущем будет изменен, укажите точные даты с помощью свойств availabilityStarts и availabilityEnds. Если элемент недоступен, его необходимо удалить.

Типы структурированных данных

Чтобы контент мог появиться в структурированных результатах поиска, необходимо задать все указанные здесь обязательные свойства. Вы также можете добавить рекомендуемые свойства, чтобы пользователи получали больше полезной информации.

Элемент DataFeed

Каждый файл с фидом данных schema.org, переданный в Google, должен содержать единственный элемент DataFeed на корневом уровне. Все элементы Book и Library должны быть перечислены в поле dataFeedElement элемента DataFeed.

Google поддерживает следующие свойства:

Обязательные свойства
@context

Text

Должно иметь значение https://schema.org.

@type

Text

Должно иметь значение DataFeed.

dataFeedElement

Book или LibrarySystem

Должны иметь в качестве значения один элемент 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

Полное определение элемента Book приведено на странице schema.org/Book. Однако вам достаточно ознакомиться с описанными ниже свойствами. Для каждой книги, включенной в фид, необходимо указать обязательные свойства. Вы также можете задать рекомендуемые свойства, чтобы пользователи получали больше полезной информации.

Элемент Book (Work)

Этот элемент Book относится к верхнему уровню разметки и соответствует произведению.

Google поддерживает следующие свойства:

Обязательные свойства
@context

Text

Должно иметь значение https://schema.org.

@id

Text

Уникальный идентификатор книги в формате URL. Этот идентификатор не должен повторяться в пределах вашей организации. Его нельзя изменять. Использование формата URL – рекомендация, а не требование. Это не обязательно должна быть рабочая ссылка, но домен, указанный в идентификаторе @id, должен принадлежать вашей организации.

@type

Text

Должно иметь значение Book.

author

Person или Organization

Авторы книги.

name

Text

Название книги.

url

URL

URL страницы с презентацией или описанием книги на вашем сайте. Эта ссылка помогает точно сопоставить контент в фиде с контентом в базах данных Google. Значение этого свойства может совпадать со значением свойства workExample.target.urlTemplate.

Для фактических целевых страниц в Google Поиске используется URL, указанный в свойстве workExample.target.urlTemplate.

workExample

Book (Edition)

Издания произведения.

Рекомендуемые свойства
sameAs

URL

URL страницы с информацией, идентифицирующей произведение. Это может быть страница книги в Википедии, Викиданных, Виртуальном каталоге международного нормативного контроля информации о произведениях и их авторах (VIAF) или на сайте Библиотеки Конгресса.

Элемент Book (Edition)

Этот элемент Book используется в свойстве workExample и обозначает издание произведения.

Google поддерживает следующие свойства:

Обязательные свойства
@id

Text

Уникальный идентификатор книги в формате URL. Этот идентификатор не должен повторяться в пределах вашей организации. Его нельзя изменять. Использование формата URL – рекомендация, а не требование. Это не обязательно должна быть рабочая ссылка, но домен, указанный в идентификаторе @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

ReadAction или BorrowAction

Действие, которое пользователи выполняют с книгой, – покупка или скачивание. Подробнее: ReadAction, BorrowAction.

Рекомендуемые свойства
author

Person или Organization

Авторы издания.

bookEdition

Text

Информация об издании книги в свободном формате, например 2nd Edition (2-е издание).

datePublished

Date

Дата публикации издания в формате YYYY-MM-DD (ГГГГ-ММ-ДД) или YYYY (ГГГГ). Можно указать точную дату или только год.

identifier

PropertyValue

Внешний или другой идентификатор, позволяющий точно идентифицировать издание. Идентификаторов может быть несколько. Подробнее: PropertyValue (identifier).

Это свойство может повторяться.

name

Text

Название издания. Используйте это свойство, только если название издания отличается от названия произведения.

sameAs

URL

URL веб-страницы с подробной информацией, которая позволяет однозначно идентифицировать издание. Например, страница с описанием этого издания в Википедии. Не используйте повторно свойство sameAs элемента Work.

url

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": {...}
        }

Пример Book (Edition) с несколькими свойствами workExample:

"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": {...}
      }
 ]

Элемент Person или Organization (author)

С использованием элемента Person или Organization задается свойство author.

Обязательные свойства
@type

Text

Должно иметь значение Person или Organization.

name

Text

Имя человека или название организации.

Рекомендуемые свойства
sameAs

URL

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 используется в свойстве identifier элемента Edition.

Обязательные свойства
@type

Text

Должно иметь значение PropertyValue.

propertyID

Text

Тип идентификатора. Может принимать следующие значения (см. раздел Номер ISBN и другие поддерживаемые идентификаторы):

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
value

Text

Значение идентификатора. Внешний идентификатор, позволяющий точно идентифицировать издание. Из внешнего идентификатора следует удалить все начальные нецифровые символы.

Пример 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

Покупная цена книги. Это свойство является обязательным, если категории (category) элемента Offer присвоено значение purchase или rental.

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"
    }
  }
}

Пример ReadAction с несколькими свойствами EntryPoint:

"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 (ее полное описание должно быть приведено отдельно, в фиде библиотеки).

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"
    ]
  }
}

Пример BorrowAction с несколькими свойствами EntryPoint:

"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

Полное определение элемента Library приведено на странице schema.org/Library. Однако вам достаточно ознакомиться с описанными ниже свойствами. Для каждой библиотеки, включенной в фид, необходимо указать обязательные свойства. Кроме того, вы можете задать рекомендуемые свойства, чтобы добавить больше информации о своем контенте и повысить удобство использования.

Этот элемент Library является элементом Library верхнего уровня. Это абстрактный конструкт, состоящий из элемента LibrarySystem (библиотечная сеть), который включает элементы Library (member) нижнего уровня, относящиеся к LibrarySystem.

Library и Book – это разные фиды. И если вы создаете фид Library, его не следует смешивать с фидом Book. Подробнее о создании фидов

Элемент LibrarySystem

Элемент LibrarySystem обозначает сеть библиотечных филиалов.

Обязательные свойства
@context Text

Должно иметь значение https://schema.org.

@id URL

Уникальный идентификатор библиотечной системы в формате URL. Его нельзя изменять. Он интерпретируется как непрозрачная строка, поэтому рабочую ссылку указывать необязательно. Домен, указанный в идентификаторе @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

URL страницы с презентацией или описанием библиотечной сети. Эта ссылка помогает Поиску точно сопоставить контент в фиде с контентом в базах данных Google. Для фактических целевых страниц в Google Поиске используется URL, указанный в свойстве workExample.target.urlTemplate.

Элемент Library (member)

Элемент Library (member) используется в свойстве member элемента LibrarySystem. Элемент Library (member) обозначает один филиал библиотечной сети.

Обязательные свойства
@id URL

Уникальный идентификатор библиотечного филиала в формате URL. Его нельзя изменять. Он интерпретируется как непрозрачная строка, поэтому рабочую ссылку указывать необязательно. Домен, указанный в идентификаторе @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

Название филиала библиотеки.

Пример JSON-файла с фидом LibrarySystem

{
   "@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"
         }
      }
   ]
}