Datos estructurados de acciones de Book (Book)

Las acciones de Book convierten a la Búsqueda de Google en un canal de entrada para descubrir libros y autores. Permiten a los usuarios comprar o pedir prestados los libros que encuentran directamente desde los resultados de la Búsqueda. Por ejemplo, un usuario puede buscar La telaraña de Charlotte y desde los resultados comprar el libro o pedirlo prestado. Como proveedor de libros, puedes brindar una fuente de datos a Google usando el esquema de datos estructurados que se describe aquí. Nuestra especificación proporciona ReadAction a fin de permitir que los usuarios compren un libro y BorrowAction para que lo pidan prestado.

Una acción de Book en los resultados de la búsqueda

Las acciones Read y Borrow, que están incorporadas en los paneles, muestran opciones para comprar el libro o pedirlo prestado. Mediante los vínculos que incluyas, las acciones Read y Borrow enviarán a los usuarios directamente desde el panel de conocimiento y otras plataformas de Google a una página de libro en tu sitio o app.

El orden de los proveedores en el panel de conocimiento es dinámico y personalizado para cada usuario. Por ende, todos los usuarios ven un orden distinto, y este puede cambiar en diferentes momentos para un mismo usuario. Existe una variedad de factores que incide en un determinado orden. Por ejemplo, si un usuario suele hacer clic en un vínculo de un proveedor determinado en el panel de conocimiento, es probable que ese proveedor aparezca más arriba. No hay forma de controlar el orden.

Cómo comenzar

A fin de implementar correctamente las acciones de Book, debes compilar el feed de acuerdo con las definiciones de tipos de datos estructurados de las acciones de Book, pero primero revisa las siguientes secciones:

Lineamientos

A fin de asegurarte de que tus libros se destaquen en la Búsqueda de manera confiable, debes conocer algunos detalles y conceptos importantes. Además, el feed debe cumplir con algunas especificaciones de formato estandarizado.

Si quieres hacerlo, sigue los lineamientos que se describen aquí, además de los lineamientos generales de datos estructurados y los conceptos básicos sobre la Búsqueda. Los lineamientos son los siguientes:

Obras y ediciones

En esta documentación, usaremos dos términos distintos cuando hablamos sobre un libro:

  • Obra: es el concepto abstracto de un libro. En específico, los atributos de una obra son los metadatos, como el título, el autor y el idioma original.
  • Edición: es una copia específica del libro. Los atributos característicos de una edición son los metadatos, como el año de publicación, el nombre de la edición y el código normalizado internacional para libros (ISBN).

Por ejemplo, La telaraña de Charlotte es una obra, pero cada versión corresponde a una edición. En este caso, la obra La telaraña de Charlotte podría tener una primera edición, una segunda edición, una edición abreviada, una edición traducida al francés, etcétera.

Esta distinción es especialmente importante en el feed, donde quizás no sea tan evidente. Existen dos entidades Book:

  • Book (Work) es la entidad Book de "nivel superior":
    • workExample es una propiedad de Work y especifica una única instancia de Book (Edition).
    • Debe haber al menos un workExample por cada Work.
  • Book (Edition) es la entidad Book de "nivel inferior".

Es importante tener en cuenta que puede haber varias ediciones de una obra. Te recomendamos que agrupes las ediciones tanto como sea posible. De esta manera, los sistemas de Google aprovechan toda la información relevante sobre un libro y la muestran en la Búsqueda. Si fuera necesario, puedes dividirlas en varios registros de obras, pero cada registro debe tener lo siguiente:

  • Otro @id
  • Una edición, como mínimo, con un ISBN o algún otro identificador admitido

Sistemas y miembros de las bibliotecas

Library entity es el tipo de entidad Library de "nivel superior". Es una estructura abstracta, compuesta por una entidad LibrarySystem y varias entidades Library (member) de "nivel inferior" del mismo sistema de bibliotecas.

La entidad LibrarySystem es una abstracción que representa una red colaborativa de miembros de la biblioteca. Por ejemplo, se puede especificar la Biblioteca Pública de Austin como una entidad LibrarySystem. En el sitio web de la Biblioteca Pública de Austin se la describe como un sistema de bibliotecas públicas en Austin, Texas. Está formada por 20 bibliotecas asociadas o miembros de biblioteca.

Cada entidad LibrarySystem requiere al menos una entidad Library (member), incluso si en la vida real la biblioteca no pertenece a ningún sistema de bibliotecas. En este caso, a los efectos de la implementación de la acción de libros, la biblioteca es el único miembro de su propio sistema de bibliotecas. Asimismo, a diferencia de un sistema, un miembro de la biblioteca no es abstracto y, por lo tanto, tiene una dirección física.

En cambio, cada entidad Library (member) debe pertenecer, como mínimo, a una de LibrarySystem.

ISBN y otros identificadores admitidos

El ISBN es el indicador principal de conciliación cuando la Búsqueda de Google compagina los datos de tu feed con los datos de Google. Debes proporcionar un ISBN o algún otro identificador admitido para cada libro que quieres que aparezca en los resultados de la búsqueda. De otra forma, es probable que no se pueda encontrar el libro y, por ende, no se mostrará.

La Búsqueda de Google prefiere ISBN-13, pero puedes usar los siguientes identificadores:

  • Número de la Online Computer Library Center (OCLC)
  • Número de control de la Biblioteca del Congreso (LCCN)
  • Código electrónico JP

A fin de garantizar una buena experiencia para la búsqueda de tus libros, los vínculos de tu feed deben cumplir con los siguientes lineamientos:

  • Si tienes páginas duplicadas para el mismo contenido, el vínculo debe ser la URL canónica con el título del libro y la información relacionada.
  • Una vez que el usuario haga clic en el vínculo de una acción Read o Borrow, se lo debería enviar a una página que permita adquirir o pedir prestado el libro de forma directa. Más concretamente, el vínculo no debe redireccionar a páginas en las que sea necesario hacer clic en más vínculos para adquirir o pedir prestado el contenido, como una página de resultados de búsqueda o resumen de un producto.

Crea un feed

Si tu sitio vende libros, debes subir tu feed Book. Comunícate con tu representante de Google y consulta los detalles sobre cómo y dónde subir tu feed.

Si tu sitio presta libros a los usuarios, debes subir dos feeds separados: el feed Book y el Library. Comunícate con tu representante de Google y consulta los detalles sobre cómo y dónde subir tu feed.

Cumple con los requisitos de tamaño, cantidad y formato del archivo de feed.

Los requisitos son los siguientes:

  • Requisitos de tamaño del archivo de feed:
    • El tamaño de un archivo de feed sin comprimir debe ser de 1 GB como máximo.
    • El tamaño comprimido debe ser inferior a 1 GB. Si el archivo de feed sin comprimir supera 1 GB, tendrás que dividirlo en varios archivos.
  • Puedes comprimir los archivos de feed. Deben estar en formato ZIP, GZ, TAR, TAR.GZ, JAR, AR, ARJ, CPIO o archivo de volcado.
  • Cuando tienes varios archivos de feed, puedes subirlos tal como están o, si lo prefieres, incluirlos en un archivo del índice de mapas de sitios.
  • Los archivos de un solo feed deben tener la extensión del nombre del archivo .json.

Cumple con los requisitos de contenido del feed

En especial, ten en cuenta los siguientes requisitos de contenido del feed:

  • El feed no debe tener entidades inactivas. Son aquellas que tienen availabilityEnds establecido en una fecha pasada o que ya no están disponibles en tu sitio.
  • Todos los vínculos directos, como urlTemplate, y las URL, como url, que incluyas en tu feed deben ser URL de producción. No uses URL en etapa de prueba, en desarrollo ni ningún otro tipo de URL que no sea de producción.
  • Todas las URL, como url, deben ser canónicas.
  • Cada entidad en tu feed debe especificar las siguientes propiedades:
    • Un ID único: @id
    • Una URL única: url
    • Un vínculo directo único: urlTemplate

Prueba tu feed con la Herramienta de validación de feed de datos

Te recomendamos que sigas estos pasos para solucionar errores y advertencias frecuentes en la Herramienta de validación de feed de datos:

  • Asegúrate de haber seleccionado la opción correcta en el campo Validar en:. Selecciona Acción de libro para la entidad Book.

  • Verifica que el valor de @type esté bien escrito.
  • Revisa que el valor de @context esté establecido correctamente. Defina "@context": "https://schema.org" para ReadAction y BorrowAction.

Aloja el archivo de tu feed

Una vez que tu archivo de feed está listo, debes alojarlo en una ubicación segura. Google recupera el feed de manera regular para garantizar que tu contenido esté actualizado.

Métodos de host

Se admiten los siguientes métodos de hosting de feeds:

Hosting Asistencia para la autenticación
Google Cloud Storage Permiso del Visualizador de objetos de almacenamiento
HTTPS Nombre de usuario + contraseña o certificados de cliente HTTP
SFTP Contraseña, frase de acceso o ambas
AWS S3 ID de clave + clave de acceso

Envía tu archivo de feed para revisión

A fin de que tu contenido esté disponible en la Búsqueda de Google, el equipo de atención al cliente de Google revisa la calidad de los vínculos directos en tu feed. Te recomendamos que pruebes manualmente algunos de los vínculos directos y confirmes si la página que se abre permite a los usuarios comprar o pedir prestado el libro.

Para solicitar una revisión de tu feed, debes brindar la siguiente información:

  • Ubicación del host: Es la URL de tu archivo de feed.
  • Autenticación del host, si corresponde: Son las credenciales de autenticación que le permiten a Google obtener el archivo de feed desde la ubicación de tu host.

Actualiza el feed según sea necesario

Te recomendamos que actualices tu feed a diario, pero en definitiva, dependerá de la frecuencia con la que cambia el catálogo. Ten en cuenta las siguientes condiciones y sugerencias:

  • La Búsqueda de Google no admite actualizaciones en tiempo real.
  • La Búsqueda de Google recupera tu feed una vez al día y suele indexar el contenido en un plazo de dos días.
  • Si hay un cambio previsible en la disponibilidad de una edición, usa availabilityStarts y availabilityEnds para establecer las fechas exactas. Si la entidad ya no está disponible, quítala por completo.

Definiciones de tipos de datos estructurados

Debes incluir las propiedades obligatorias mencionadas aquí a fin de que tu contenido sea apto para mostrarse en los resultados estructurados de la búsqueda. También puedes incluir las propiedades recomendadas y agregar más información sobre tu contenido, lo cual brindará una mejor experiencia del usuario.

Entidad DataFeed

Cada archivo de feed de schema.org que se entrega a Google debe contener una única entidad DataFeed en el nivel de raíz. Todas las entidades Book y Library deben incluirse en el campo dataFeedElement de la entidad DataFeed.

Las propiedades compatibles con Google son las siguientes:

Propiedades obligatorias
@context

Text

Debes establecerlo en https://schema.org.

@type

Text

Debes establecerlo en DataFeed.

dataFeedElement

Book o LibrarySystem

Debes establecerlo como una entidad única de Book o LibrarySystem. De lo contrario, configúralo como un arreglo de solo entidades Book o LibrarySystem. No definas esto en un arreglo que incluya ambas entidades, Book y LibrarySystem.

Ejemplo de uso en un feed 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"
}

Ejemplo de uso en un feed 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

Corresponde a la fecha y hora de la última actualización del feed en formato ISO 8601.

Entidad Book

Si bien la definición completa de Book se encuentra disponible en schema.org/Book, solo debes considerar las propiedades que se indican a continuación. Debes definir las propiedades obligatorias para cada libro que decidas incluir en tu feed. También puedes definir las propiedades recomendadas para agregar más información sobre tu contenido, lo que podría brindar una mejor experiencia del usuario.

Book (Work)

Book es el tipo de entidad de nivel superior. Representa una obra.

Las propiedades compatibles con Google son las siguientes:

Propiedades obligatorias
@context

Text

Debes establecerlo en https://schema.org.

@id

Text

Corresponde al ID único global del libro en formato de URL. Debe ser exclusivo de tu organización. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se sugiere usar el formato de URL, pero no es obligatorio. No es necesario que sea un vínculo activo. El dominio para el valor @id debe ser propiedad de tu organización.

@type

Text

Debes establecerlo en Book.

author

Person o Organization

Corresponde al autor del libro.

name

Text

Corresponde al título del libro.

url

URL

Corresponde a la URL de tu sitio web en la que se presenta o se describe el libro. Este vínculo permite compaginar con precisión el contenido de tu feed con las bases de datos de Google. Puede ser igual a la de workExample.target.urlTemplate.

Para la verdadera página de destino, la Búsqueda de Google usa la URL que se proporciona en workExample.target.urlTemplate.

workExample

Book (Edition)

Corresponde a las ediciones de la obra.

Propiedades recomendadas
sameAs

URL

Corresponde a la URL de una página de referencia que identifica la obra. Por ejemplo, una página sobre el libro en Wikipedia, Wikidata, FAVI o la Biblioteca del Congreso.

Book (Edition)

La propiedad workExample usa la entidad Book. Representa la edición de una obra.

Las propiedades compatibles con Google son las siguientes:

Propiedades obligatorias
@id

Text

Corresponde al ID único global del libro en formato de URL. Debe ser exclusivo de tu organización. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se sugiere usar el formato de URL, pero no es obligatorio. No es necesario que sea un vínculo activo. El dominio para el valor @id debe ser propiedad de tu organización.

@type

Text

Debes establecerlo en Book.

bookFormat

Enum

Corresponde al formato de la edición. El valor debe ser uno de los siguientes:

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

Text

Corresponde al idioma principal de la edición. Usa uno de los códigos de dos letras de la lista de códigos ISO 639-1 alpha-2.

isbn

Text

Corresponde al número ISBN-13 de la edición. Si en su lugar tienes un ISBN-10, conviértelo en ISBN-13.

potentialAction

ReadAction o BorrowAction

Corresponde a la acción que se activará para que los usuarios compren o descarguen el libro. Si quieres obtener más detalles, consulta ReadAction o BorrowAction.

Propiedades recomendadas
author

Person o Organization

Corresponde a los autores de la edición.

bookEdition

Text

Corresponde a los datos de la edición del libro. 2nd Edition.

datePublished

Date

Corresponde a la fecha de publicación de la edición en formato YYYY-MM-DD o YYYY. Puede ser una fecha específica o solo un año determinado.

identifier

PropertyValue

Es el ID externo o algún otro ID que identifica esta edición inequívocamente. Se permiten varios identificadores. Si quieres obtener más información, consulta PropertyValue (identifier).

Se puede repetir esta propiedad.

name

Text

Corresponde al título de la edición. Solo se debe usar cuando el título de la edición no coincide con el título de la obra.

sameAs

URL

Es la URL de una página web de referencia que indica la edición inequívocamente. Por ejemplo, una página de Wikipedia para esta edición específica. No se debe reutilizar el sameAs de Work.

url

URL

Corresponde a la URL de tu sitio web en la que se presenta o se describe la edición. Puede ser igual a la de workExample.target.urlTemplate.

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

Ejemplo de Book (Edition) con varias propiedades 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 o Organization (author)

La propiedad author del libro utiliza la entidad Person o Organization.

Propiedades obligatorias
@type

Text

Establecido en Person o Organization.

name

Text

Corresponde al nombre de la organización o persona.

Propiedades recomendadas
sameAs

URL

Corresponde a la URL de una página web de referencia que indica inequívocamente la identidad de la persona o de la organización. Por ejemplo, una página de Wikipedia para la persona o la organización.

Ejemplo de author:

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

Ejemplo con varias propiedades author:

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

PropertyValue (identificador)

La propiedad identifier de Edition usa la entidad PropertyValue.

Propiedades obligatorias
@type

Text

Debes establecerlo en PropertyValue.

propertyID

Text

Corresponde al tipo de ID. Como se describe en ISBN y otros identificadores admitidos, debe ser una de las siguientes opciones:

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
value

Text

Corresponde al valor de ID. Es el ID externo que identifica la edición de manera clara. Quita todos los prefijos no numéricos del ID externo.

Ejemplo de identifier:

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

Ejemplo con varias propiedades identifier:

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

Ejemplo de un archivo JSON de un feed con ReadAction 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",
          "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"
}

Ejemplo de un archivo JSON de un feed con BorrowAction 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",
          "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)

La propiedad potentialAction usa la entidad ReadAction. ReadAction define los vínculos directos para acceder al libro, el minorista que lo vende y los criterios que deben cumplir los usuarios. Los criterios pueden incluir el estado de la membresía o del acceso, la ubicación o cualquier otro aspecto necesario para acceder al libro.

Propiedades obligatorias
@type

Text

Debes establecerlo en ReadAction.

expectsAcceptanceOf

Offer

Son los requisitos del usuario que se definen para acceder a esta entidad. Cuando hay varias propiedades Offer y un usuario coincide con uno de los criterios de Offer, puede acceder al contenido.

Se puede repetir esta propiedad.

expectsAcceptanceOf.@type

Text

Debes establecerlo en Offer.

expectsAcceptanceOf.category

Text

Corresponde al tipo de Offer. Usa uno de los siguientes valores:

  • nologinrequired: La acción está disponible para el usuario sin necesidad de comprar ni ingresar a fin de acceder al contenido.
  • free: La acción está disponible para el usuario sin necesidad de comprar ni tener una suscripción paga. Sin embargo, la acción requiere que el usuario acceda a su cuenta.
  • subscription: Se incluye el libro cuando hay una suscripción pagada a tu servicio.
  • purchase: Se puede acceder al libro mediante su compra.
  • rental: Se puede acceder al libro durante un tiempo limitado después de la compra.
expectsAcceptanceOf.eligibleRegion

Country

Corresponde al país apto para el Offer. Se puede usar para especificar el país y la región donde este contenido estará o no disponible.

Se puede repetir esta propiedad.

expectsAcceptanceOf.eligibleRegion.@type

Text

Debes establecerlo en Country.

expectsAcceptanceOf.eligibleRegion.name

Text

Es el código de país ISO 3166-1 alpha-2.

target

EntryPoint

Corresponde a las especificaciones del vínculo directo, que incluyen la información de la plataforma compatible. Puede haber varias propiedades EntryPoint con el objetivo de definir vínculos directos diferentes para distintos conjuntos de plataformas.

Se puede repetir esta propiedad.

target.@type

Text

Debes establecerlo en EntryPoint.

target.actionPlatform

Text

Corresponde a las plataformas en las que funciona el vínculo directo. Usa uno de los siguientes valores:

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

Se puede repetir esta propiedad.

target.urlTemplate

URL

Corresponde al vínculo que lleva a los usuarios directamente al contenido de la página de destino de tu libro.

Propiedades recomendadas
expectsAcceptanceOf.availabilityEnds

DateTime

Indica la hora de finalización del período de disponibilidad. Se puede usar para establecer el tiempo exacto en que el libro se debe dejar de mostrar a los usuarios.

expectsAcceptanceOf.availabilityStarts

DateTime

Indica la hora de inicio del período de disponibilidad. Se puede usar para establecer el tiempo exacto en el que el libro puede mostrarse a los usuarios.

expectsAcceptanceOf.price

Number

Indica el precio de compra del libro. Se requiere cuando el category de la propiedad Offer se configura como purchase o rental.

expectsAcceptanceOf.priceCurrency

Text

Corresponde a la moneda del precio con el formato ISO 4217 de tres letras.

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

Ejemplo de ReadAction con varias propiedades 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)

La propiedad potentialAction usa la entidad BorrowAction. BorrowAction define tus vínculos directos al libro, la biblioteca que lo vende y los criterios que deben cumplir los usuarios. Los criterios pueden incluir el estado de la membresía o del acceso, la ubicación o cualquier otro aspecto necesario para acceder al libro.

Propiedades obligatorias
@type

Text

Debes establecerlo en BorrowAction.

lender

LibrarySystem

Corresponde al sistema de bibliotecas que brinda acceso a esta edición.

lender.@id

URL

Indican las referencias de ID de LibrarySystem, que se deben describir separados por completo en el feed de la biblioteca.

lender.@type

Text

Debes establecerlo en LibrarySystem.

target

EntryPoint

Corresponde a las especificaciones del vínculo directo, que incluyen la información de la plataforma compatible. Si quieres definir vínculos directos para diferentes conjuntos de plataformas, especifica un arreglo EntryPoint.

Se puede repetir esta propiedad.

target.@type

Text

Debes establecerlo en EntryPoint.

target.actionPlatform

Text

Corresponde a las plataformas en las que funciona el vínculo directo. Usa uno de los siguientes valores:

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

Se puede repetir esta propiedad.

target.urlTemplate

URL

Corresponde al vínculo que lleva a los usuarios directamente al contenido de la página de destino de tu libro.

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

Ejemplo de BorrowAction con varias propiedades 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"
      ]
    }
  ]
}

Entidad Library

Si bien la definición completa de Library se encuentra disponible en schema.org/Library, solo debes considerar las siguientes propiedades. Debes definir las propiedades obligatorias para cada biblioteca que decidas incluir en tu feed. También puedes definir algunas propiedades recomendadas a fin de agregar más información acerca de tu contenido, lo que podría brindar una mejor experiencia del usuario.

Library es el tipo de entidad Library de nivel superior. Se trata de una estructura abstracta, compuesta por la entidad LibrarySystem y cada Library (member) de nivel inferior de dicha LibrarySystem.

El feed Library es distinto del feed Book. Por lo tanto, todo feed Library que implementes debe estar separado por completo de Book. Si quieres obtener más información, consulta Crea un feed.

LibrarySystem

La entidad LibrarySystem representa una red colaborativa de miembros de la biblioteca.

Propiedades obligatorias
@context Text

Debes establecerlo en https://schema.org.

@id URL

Corresponde al ID único global del sistema de bibliotecas en forma de URL. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una string opaca que no necesariamente debe ser un vínculo activo. El dominio para el valor @id debe ser propiedad de tu organización.

@type Text

Debes establecerlo en LibrarySystem.

additionalProperty PropertyValue

Es la propiedad adicional que se usa para indicar el tipo de biblioteca.

additionalProperty.@type Text

Debes establecerlo en PropertyValue.

additionalProperty.name Text

Debes establecerlo como librarytype.

additionalProperty.value Text

Corresponde al tipo de biblioteca. Usa uno de los siguientes valores:

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

Corresponde a los miembros del sistema de bibliotecas.

name Text

Es el nombre del sistema de biblioteca, como The Southwestern League of Libraries.

url URL

Corresponde a la URL en la que se presenta o se describe el sistema de biblioteca. La Búsqueda de Google usa este vínculo a fin de compaginar el contenido de tu feed con el contenido de las bases de datos de Google. Para la verdadera página de destino, la Búsqueda de Google usa la URL que se proporciona en workExample.target.urlTemplate.

Library (member)

La propiedad member de la entidad LibrarySystem utiliza Library (member). Library (member) representa un miembro de un determinado sistema de bibliotecas.

Propiedades obligatorias
@id URL

Corresponde al ID único global de la sede de la biblioteca en forma de URL. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una string opaca que no necesariamente debe ser un vínculo activo. El dominio para el valor @id debe ser propiedad de tu organización.

@type Text

Debes definirlo como Library.

location PostalAddress

Indica la dirección de la sede de la biblioteca. No todas las propiedades se aplican a todos los países. Debes incluir todas las que correspondan a las direcciones de tus bibliotecas.

Ejemplo de location en Estados Unidos:

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

Ejemplo de location en Japón:

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

Debes establecerlo en PostalAddress.

location.addressCountry Text

Corresponde al código de país con el formato ISO 3166-1, como US.

location.addressLocality Text

Corresponde a la localidad, por ejemplo, Mountain View.

location.addressRegion Text

Indica la región, como CA.

location.postalCode Text

Corresponde al código postal, por ejemplo, 94043

location.streetAddress Text

Indica la dirección, como 1600 Amphitheatre Pkwy.

name Text

Corresponde al nombre de la sede de la biblioteca.

Ejemplo de un archivo JSON de un feed con 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"
         }
      }
   ]
}