Datos estructurados de acciones de libros (Book
)
Las acciones de libros hacen que la Búsqueda de Google se convierta en un lugar donde los usuarios pueden descubrir libros y autores, así como comprar o tomar prestados con rapidez esos libros directamente desde los resultados de búsqueda.
Por ejemplo, un usuario busca La sombra del viento y se le muestran resultados que le permiten comprar o tomar prestado el libro. Si eres proveedor de libros, puedes proporcionar un feed de datos a Google con el esquema de datos estructurados que se indica en este artículo. En nuestra especificación, se incluyen ReadAction
y BorrowAction
para que los usuarios puedan comprar o tomar prestados libros, respectivamente.
![Una acción de libro en los resultados de búsqueda](https://developers.google.com/static/search/docs/images/books01.png?hl=es)
Las acciones de lectura y de préstamo, que están integradas en los paneles, muestran opciones para comprar o tomar prestados libros. Con los enlaces que proporcionas, las acciones de lectura y de préstamo redirigen a los usuarios directamente del panel de información u otras funciones de Google a páginas de libros de tu sitio web o aplicación.
El orden en el que aparecen los proveedores en el panel de información es dinámico y se adapta a cada usuario. Es decir, cada usuario ve los proveedores en un orden diferente, y es posible que un mismo usuario los vea ordenados de forma distinta en diferentes momentos. Hay varios factores que determinan este orden. Por ejemplo, si un usuario hace clic a menudo en el enlace de un proveedor concreto en el panel de información, es probable que ese proveedor aparezca en una posición más alta. No es posible controlar el orden de las posiciones.
Primeros pasos
Para implementar acciones de libros correctamente, crea tu feed siguiendo las definiciones de tipos de datos estructurados de este tipo de acciones. Sin embargo, antes de empezar, consulta las siguientes secciones:
- Directrices
- Crear un feed
- Probar el feed con la herramienta de validación de feeds de datos
- Alojar el archivo del feed
- Enviar a revisión el archivo del feed
- Actualizar el feed según sea necesario
Directrices
Para asegurarte de que tus libros aparezcan a menudo en la Búsqueda, es importante que conozcas algunos conceptos clave y detalles importantes. Además, tu feed debe cumplir algunas especificaciones de formato estándar.
Para cumplir todos estos requisitos, te ayudará seguir las directrices que se indican a continuación, además de las directrices generales de datos estructurados y las Directrices básicas de la Búsqueda. Estas son las directrices:
- Obras y ediciones
- Sistemas de bibliotecas y sus miembros
- ISBN y otros identificadores admitidos
- Enlaces
Obras y ediciones
En esta documentación, nos referimos a los libros con dos términos distintos:
- Obra: es el concepto abstracto de un libro. En concreto, el título, el autor y el idioma original son atributos de una obra.
- Edición: se trata de una copia concreta de un libro. En particular, el año de publicación, el nombre de la edición y el número internacional normalizado del libro (ISBN) son atributos de una edición.
Por ejemplo, La sombra del viento es una obra, pero cada variación concreta de ella es una edición. Así, esta novela puede tener una primera edición, una segunda edición, una edición abreviada y una edición traducida al francés, entre otras.
Esta distinción es especialmente importante en el feed, donde puede que no resulte tan obvia. Hay dos entidades Book
:
Book
(Work
) es la entidadBook
de nivel superior:workExample
es una propiedad deWork
e indica una única instancia deBook
(Edition
).- Debe haber al menos una propiedad
workExample
en cada objetoWork
.
Book
(Edition
) es la entidadBook
de nivel inferior.
Es útil recordar que puede haber varias ediciones de una misma obra. Te recomendamos que agrupes estas ediciones en la medida de lo posible. De esta forma, ayudas a los sistemas de Google a reunir toda la información importante sobre un libro y a mostrarlo en la Búsqueda. Si es necesario, puedes separar las diferentes ediciones en varias entradas de una obra, pero ten en cuenta que cada una de ellas debe tener lo siguiente:
- Un valor
@id
distinto - Al menos una edición con un ISBN u otro identificador admitido
Sistemas de bibliotecas y sus miembros
Library entity
es el tipo de entidad Library
de nivel superior. Se trata de una abstracción que está formada por una entidad LibrarySystem
, que representa un sistema de bibliotecas, y de entidades Library (member)
de nivel inferior, que representan las diferentes bibliotecas de ese sistema.
La entidad LibrarySystem
también es una abstracción que representa una red de bibliotecas que colaboran; cada una es miembro del sistema. Por ejemplo, se puede representar a la red de bibliotecas de Austin como una entidad LibrarySystem
. El sitio web de la biblioteca pública de Austin la describe como un sistema de bibliotecas públicas que presta servicio en Austin, Texas, y en el que se incluyen las 20 bibliotecas públicas del estado, que serían los miembros del sistema.
Todas las entidades LibrarySystem
necesitan al menos una entidad Library (member)
, aunque en realidad se trate de una biblioteca que no forme parte de ningún sistema de bibliotecas. En este caso, en lo que respecta a la implementación de acciones de libros, esa biblioteca sería el único miembro de su propio sistema de bibliotecas. A diferencia de los sistemas de bibliotecas, las diferentes bibliotecas no son abstracciones y tienen dirección física.
Del mismo modo, toda entidad Library (member)
debe pertenecer como mínimo a una entidad LibrarySystem
.
ISBN y otros identificadores admitidos
El ISBN es el identificador principal en el que se basa la Búsqueda de Google para buscar correspondencias entre los datos de tu feed y los datos de Google. Debes indicar el ISBN u otro identificador admitido de todos los libros que quieras que aparezcan en los resultados de la Búsqueda. Si no proporcionas ninguno, es probable que no se encuentre ninguna correspondencia y, por tanto, tus libros no se muestren en los resultados.
La Búsqueda de Google prefiere el ISBN-13, pero hay otras alternativas:
- Número del Online Computer Library Center (OCLC)
- Número de control de la Biblioteca del Congreso (LCCN)
- Código electrónico para libros en Japón
Enlaces
Para que los usuarios tengan la mejor experiencia posible cuando busquen tus libros, los enlaces que incluyas en tu feed deben cumplir las siguientes directrices:
- Si tienes páginas duplicadas de un mismo contenido, debes incluir la URL canónica que contiene el título y otros datos del libro.
- Cuando los usuarios hagan clic en un enlace de acción de lectura o de préstamo, se les debe redirigir a una página donde puedan comprar o tomar prestado el libro directamente. Es decir, no utilices enlaces que lleven a los usuarios a una página con enlaces en los que deban hacer clic para comprar o tomar prestado el contenido. Por ejemplo, no envíes a los usuarios a una página de resultados de búsqueda o a una página de resumen del producto.
Crear un feed
Si en tu sitio se venden libros, debes subir un feed de tipo Book
. Ponte en contacto con tu representante de Google y consulta los detalles sobre cómo y dónde subir el feed.
Si en tu sitio se prestan libros, debes subir dos feeds distintos: un feed de tipo Book
y otro de tipo Library
. Ponte en contacto con tu representante de Google y consulta los detalles sobre cómo y dónde subir tus feeds.
Cumplir los requisitos de tamaño, cantidad y formato de feeds
Estos son los requisitos:
- Requisitos de tamaño de feeds:
- El archivo sin comprimir de un feed debe tener un tamaño inferior a 1 GB.
- El archivo de un feed también debe ser inferior a 1 GB si vas a comprimirlo. Si el archivo de tu feed supera ese tamaño antes de comprimirlo, tienes que dividirlo en varios archivos.
- Los archivos de un feed se pueden comprimir. En ese caso, deben tener el formato zip, gz, tar, tar.gz, JAR, ar, arj o cpio, o deben ser un archivo de volcado.
- Si tu feed tiene varios archivos, puedes subirlos tal cual o, si lo prefieres, incluirlos en un archivo de índice de sitemaps.
- Los archivos de feed únicos deben tener la extensión
.json
en el nombre de archivo.
Cumplir los requisitos de contenido de feeds
Presta especial atención a los siguientes requisitos de contenido de feeds:
- El feed no debe contener entidades obsoletas; es decir, entidades cuyo valor
availabilityEnds
sea una fecha que ya ha pasado o entidades que ya no están disponibles en tu sitio. - Todos los enlaces profundos, como los incluidos con
urlTemplate
, y todas las URLs, como las indicadas conurl
, que añadas a tu feed deben ser URLs de producción. No incluyas URLs de control de calidad, de desarrollo ni de ningún otro tipo que no sea de producción. - Todas las URLs, como las especificadas con
url
, deben ser canónicas. - En cada entidad de tu feed deben indicarse las siguientes propiedades:
- Un ID único:
@id
- Una URL única:
url
- Un enlace profundo único:
urlTemplate
- Un ID único:
Probar el feed con la herramienta de validación de feeds de datos
Para solucionar errores y advertencias que se indican habitualmente en la herramienta de validación de feeds de datos, te recomendamos que sigas estos pasos:
-
Asegúrate de haber seleccionado la opción correcta en el campo Validar en. Para validar entidades
Book
, selecciona Acción de libros. - Comprueba que el valor de
@type
esté bien escrito. - Asegúrate de que el valor de
@context
sea correcto. Debes incluir"@context": "https://schema.org"
tanto enReadAction
como enBorrowAction
.
Alojar el archivo del feed
Cuando el archivo de tu feed esté listo, alójalo en un lugar seguro. Google consulta el feed con regularidad para asegurarse de que tu contenido esté actualizado.
Métodos de alojamiento
Se admiten los siguientes métodos de alojamiento de feeds:
Alojamiento | Métodos de autenticación admitidos | |
---|---|---|
Google Cloud Storage | Permiso Lector de objetos de Storage | |
HTTPS | Nombre de usuario y contraseña o certificados de cliente HTTP | |
SFTP | Contraseña, clave y frase, o ambas | |
AWS S3 | ID de clave y clave de acceso |
Enviar a revisión el archivo del feed
Para que tu contenido esté disponible en la Búsqueda de Google, un equipo de asistencia de Google revisa la calidad de los enlaces profundos que hay en tu feed. Te recomendamos que pruebes manualmente algunos enlaces profundos para comprobar que lleven a páginas en las que los usuarios puedan comprar o tomar prestados los libros.
Para solicitar que se revise tu feed, facilita la siguiente información:
- Ubicación del host: la URL del archivo del feed.
- Autenticación del host (si procede): credenciales de autenticación que permitan que Google obtenga el archivo del feed de donde está alojado.
Actualizar el feed según sea necesario
Te recomendamos que actualices tu feed cada día, pero en realidad basta con que lo hagas siempre que cambie tu catálogo. Ten en cuenta las siguientes condiciones y consejos:
- La Búsqueda de Google no admite actualizaciones en tiempo real.
- La Búsqueda de Google obtiene tu feed una vez al día y suele indexar el contenido en dos días.
- Si prevés algún cambio en la disponibilidad de una edición, indica las fechas exactas con
availabilityStarts
yavailabilityEnds
. Si esa entidad ya no está disponible, quítala por completo.
Definiciones de tipos de datos estructurados
Para que tu contenido se pueda mostrar en los resultados de búsqueda estructurados, debes incluir las propiedades obligatorias que se indican en esta sección. Si quieres, puedes incluir también las propiedades recomendadas para proporcionar más información sobre tu contenido y, así, ofrecer una mejor experiencia a tus usuarios.
Entidad DataFeed
Todos los archivos de feeds de datos de schema.org que se envían a Google deben contener una única entidad DataFeed
en el nivel raíz. Todas las entidades Book
y Library
deben estar incluidas en el campo dataFeedElement
de la entidad DataFeed
.
Las propiedades que admite Google son las siguientes:
Propiedades obligatorias | |
---|---|
@context |
Su valor debe ser |
@type |
Su valor debe ser |
dataFeedElement |
Su valor debe ser una única entidad Ejemplo de uso en un feed { "@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 { "@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 |
Indica la fecha y la hora de la actualización más reciente del feed en formato ISO 8601. |
Entidad Book
Puedes consultar la definición completa de Book
en schema.org/Book, pero basta con que tengas en cuenta las propiedades que se indican a continuación. Debes definir las propiedades obligatorias de todos los libros que decidas incluir en tu feed. También puedes especificar propiedades recomendadas para proporcionar más información sobre tu contenido y, así, ofrecer una mejor experiencia a tus usuarios.
Book
(Work
)
La entidad Book
es la de nivel superior y representa una obra.
Las propiedades que admite Google son las siguientes:
Propiedades obligatorias | |
---|---|
@context |
Su valor debe ser |
@id |
Indica un ID único a nivel mundial del libro en formato de URL. Debe ser exclusivo de tu organización. El ID debe ser permanente y no cambiar con el tiempo. Se sugiere emplear el formato de URL, aunque no es obligatorio. Tampoco tiene por qué ser un enlace que funcione. El dominio que utilices en el valor de |
@type |
Su valor debe ser |
author |
Indica los autores del libro. |
name |
Indica el título del libro. |
url |
Especifica la URL de tu sitio web en la que se presenta o se describe el libro. Este enlace ayuda a relacionar de forma precisa el contenido de tu feed con el contenido de las bases de datos de Google. Puede ser la misma URL que la que se indica en Como página de destino real, la Búsqueda de Google utiliza la URL proporcionada en |
workExample |
Indica las ediciones de la obra. |
Propiedades recomendadas | |
---|---|
sameAs |
Indica la URL de una página de referencia en la que se identifica la obra. Por ejemplo, una página sobre el libro en Wikipedia, Wikidata, VIAF o en la Biblioteca Nacional. |
Book
(Edition
)
En la propiedad workExample
se utiliza esta entidad Book
. Representa una edición de una obra.
Las propiedades que admite Google son las siguientes:
Propiedades obligatorias | |
---|---|
@id |
Indica un ID único a nivel mundial del libro en formato de URL. Debe ser exclusivo de tu organización. El ID debe ser permanente y no cambiar con el tiempo. Se sugiere emplear el formato de URL, aunque no es obligatorio. Tampoco tiene por qué ser un enlace que funcione. El dominio que utilices en el valor de |
@type |
Su valor debe ser |
bookFormat |
Indica el formato de la edición. Debe tener uno de los siguientes valores:
|
inLanguage |
Especifica el idioma principal del contenido de la edición. Utiliza uno de los códigos de dos letras de la lista de códigos ISO 639‑1 alfa‑2. |
isbn |
Indica el ISBN-13 de la edición. Si solo tienes el ISBN-10, conviértelo a ISBN-13. |
potentialAction |
La acción que se activará para que los usuarios compren o descarguen el libro. Puedes consultar más información en las secciones |
Propiedades recomendadas | |
---|---|
author |
Indica los autores de la edición. |
bookEdition |
La información sobre la edición del libro. Por ejemplo, |
datePublished |
Indica la fecha de publicación de la edición en formato YYYY-MM-DD o YYYY. Puede ser una fecha concreta, pero también puedes especificar solo el año. |
identifier |
Indica el ID externo o de otro tipo que identifica de forma inequívoca esta edición. Se permiten varios identificadores. Puedes consultar más información en la sección Esta propiedad se puede repetir. |
name |
Indica el título de la edición. Incluye esta propiedad solo cuando el título de la edición sea diferente del título de la obra. |
sameAs |
Indica la URL de una página web de referencia en la que se identifica de manera inequívoca la edición. Por ejemplo, puede ser una página de Wikipedia sobre esa edición concreta. No reutilices la propiedad |
url |
Especifica la URL de tu sitio web en la que se presenta o se describe la edición. Puede ser la misma URL que la que se indica en |
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": {...} } ]
Organization
o Person
(author
)
La propiedad author
del libro utiliza la entidad Person
o Organization
.
Propiedades obligatorias | |
---|---|
@type |
Su valor debe ser |
name |
Indica el nombre de la persona o de la organización. |
Propiedades recomendadas | |
---|---|
sameAs |
Especifica la URL de una página web de referencia donde se identifica de manera inequívoca a la persona o a la organización; por ejemplo, puede ser una página de Wikipedia. |
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 (identifier)
En la propiedad identifier
de Edition
se utiliza la entidad PropertyValue
.
Propiedades obligatorias | |
---|---|
@type |
Su valor debe ser |
propertyID |
Indica el tipo de ID. Tal como se describe en la sección ISBN y otros identificadores admitidos, debe ser uno de los siguientes:
|
value |
El valor del ID. Indica el ID externo que identifica de forma inequívoca esta edición. Quita todos los prefijos no numéricos de este ID. |
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 feed ReadAction
Book
en formato de archivo 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" }
Ejemplo de un feed BorrowAction
Book
en formato de archivo 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
)
En la propiedad potentialAction
se utiliza la entidad ReadAction
.
En la entidad ReadAction
se incluyen los enlaces profundos para acceder a los libros, las tiendas que los venden y los criterios que deben cumplir los usuarios para tener acceso a los libros. Entre los criterios se pueden incluir el estado de suscripción, de inicio de sesión, la ubicación o cualquier otro elemento necesario.
Propiedades obligatorias | |
---|---|
@type |
Su valor debe ser |
expectsAcceptanceOf |
Define los requisitos que deben cumplir los usuarios para acceder a esta entidad. Si hay varias propiedades Esta propiedad se puede repetir. |
expectsAcceptanceOf.@type |
Su valor debe ser |
expectsAcceptanceOf.category |
Indica el tipo de
|
expectsAcceptanceOf.eligibleRegion |
Especifica el país en el que es válida la oferta de la propiedad Esta propiedad se puede repetir. |
expectsAcceptanceOf.eligibleRegion.@type |
Su valor debe ser |
expectsAcceptanceOf.eligibleRegion.name |
Indica el código de país según la norma ISO 3166-1 alfa-2. |
target |
Indica las especificaciones del enlace profundo, en las que se incluye información sobre la plataforma admitida. Se pueden usar varias propiedades Esta propiedad se puede repetir. |
target.@type |
Su valor debe ser |
target.actionPlatform |
Especifica las plataformas en las que este enlace profundo es válido. Debe tener uno de los siguientes valores:
Esta propiedad se puede repetir. |
target.urlTemplate |
Indica el enlace con el que los usuarios acceden directamente al contenido de la página de destino que incluye tu libro. |
Propiedades recomendadas | |
---|---|
expectsAcceptanceOf.availabilityEnds |
Indica la hora de finalización del periodo de disponibilidad. Con esta propiedad, puedes controlar el momento exacto en el que el libro se debe dejar de mostrar a los usuarios. |
expectsAcceptanceOf.availabilityStarts |
Especifica la hora de inicio del periodo de disponibilidad. Te permite controlar el momento exacto en el que el libro se puede empezar a mostrar a los usuarios. |
expectsAcceptanceOf.price |
Indica el precio de compra del libro. Es obligatorio cuando se asigna el valor |
expectsAcceptanceOf.priceCurrency |
Especifica la moneda del precio en el formato estándar 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
)
En la propiedad potentialAction
se utiliza la entidad BorrowAction
.
En la entidad BorrowAction
se incluyen enlaces profundos para acceder a los libros, las bibliotecas en las que están y los criterios que deben cumplir los usuarios para tener acceso a los libros. Entre los criterios se pueden incluir el estado de suscripción, de inicio de sesión, la ubicación o cualquier otro elemento necesario.
Propiedades obligatorias | |
---|---|
@type |
Su valor debe ser |
lender |
Indica el sistema de bibliotecas que da acceso a esta edición. |
lender.@id |
Especifica las referencias de ID de la entidad |
lender.@type |
Su valor debe ser |
target |
Indica las especificaciones del enlace profundo, en las que se incluye información sobre la plataforma admitida. Para definir enlaces profundos de diferentes conjuntos de plataformas, utiliza una matriz de Esta propiedad se puede repetir. |
target.@type |
Su valor debe ser |
target.actionPlatform |
Especifica las plataformas en las que este enlace profundo es válido. Debe tener uno de los siguientes valores:
Esta propiedad se puede repetir. |
target.urlTemplate |
Indica el enlace con el que los usuarios acceden directamente al contenido de la página de destino que incluye 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
Puedes consultar la definición completa de Library
en schema.org/Library, pero basta con que tengas en cuenta las propiedades que se indican a continuación. Debes definir las propiedades obligatorias de todas las bibliotecas que incluyas en tu feed.
También puedes especificar propiedades recomendadas para proporcionar más información sobre tu contenido y, así, ofrecer una mejor experiencia a tus usuarios.
Esta entidad Library
es el tipo de entidad Library
de nivel superior. Se trata de una abstracción, que está formada por una entidad LibrarySystem
y todas las entidades Library (member)
de nivel inferior de esa entidad LibrarySystem
.
El feed Library
es distinto del feed Book
; por lo tanto, si implementas un feed Library
, debe ser completamente independiente de tu feed Book
.
Consulta más información en la sección Crear un feed.
LibrarySystem
La entidad LibrarySystem
representa una red de bibliotecas que colaboran, cada una es miembro del sistema.
Propiedades obligatorias | |
---|---|
@context
|
Text
Su valor debe ser |
@id
|
URL
Indica un ID único a nivel mundial del sistema de bibliotecas en formato de URL. El ID debe ser permanente y no cambiar con el tiempo. La URL se trata como una cadena opaca y no tiene por qué ser un enlace que funcione. El dominio que incluyas en el valor |
@type
|
Text
Su valor debe ser |
additionalProperty
|
PropertyValue
Es la propiedad adicional con la que se indica el tipo de biblioteca. |
additionalProperty.@type
|
Text
Su valor debe ser |
additionalProperty.name
|
Text
Su valor debe ser |
additionalProperty.value
|
Text
Indica el tipo de biblioteca. Debe tener uno de los siguientes valores:
|
member
|
Library
Especifica los miembros del sistema de bibliotecas. |
name
|
Text
Indica el nombre del sistema de bibliotecas. Por ejemplo, |
url
|
URL
Especifica la URL donde se presenta o se describe el sistema de bibliotecas. Con este enlace, la Búsqueda de Google relaciona el contenido de tu feed con el contenido de las bases de datos de Google. Como página de destino real, la Búsqueda de Google utiliza la URL proporcionada en |
Library
(member
)
En la propiedad member
de la entidad LibrarySystem
se utiliza la entidad Library (member)
.
Library (member)
representa una única biblioteca que es miembro de un sistema de bibliotecas determinado.
Propiedades obligatorias | |
---|---|
@id
|
URL
Indica un ID único a nivel mundial de la biblioteca miembro en formato de URL. El ID debe ser permanente y no cambiar con el tiempo. La URL se trata como una cadena opaca y no tiene por qué ser un enlace que funcione. El dominio que incluyas en el valor |
@type
|
Text
Su valor debe ser |
location
|
PostalAddress
Indica la dirección postal de la biblioteca miembro. No todas las propiedades son pertinentes en todos los países, pero debes incluir todas las que correspondan a las direcciones de tus bibliotecas. Ejemplo de { "@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 { "@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
Su valor debe ser |
location.addressCountry
|
Text
Indica el código de país con el formato ISO 3166-1. Por ejemplo, |
location.addressLocality
|
Text
Indica el municipio. Por ejemplo, |
location.addressRegion
|
Text
Especifica la región. Por ejemplo, |
location.postalCode
|
Text
Indica el código postal. Por ejemplo, |
location.streetAddress
|
Text
Especifica la dirección postal. Por ejemplo, |
name
|
Text
Indica el nombre de la biblioteca miembro. |
Ejemplo de un feed LibrarySystem
en formato de archivo 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" } } ] }