Données structurées des actions de livre (Book)

Grâce aux actions liées aux livres, la recherche Google devient une plate-forme contribuant à la découverte d'ouvrages et d'auteurs. Elles permettent aux internautes d'acheter ou d'emprunter rapidement les livres qu'ils trouvent directement à partir des résultats de recherche. Par exemple, un utilisateur peut rechercher Le Petit Monde de Charlotte et recevoir des résultats qui lui permettront d'acheter ou d'emprunter ce livre. Si vous êtes fournisseur de livres, vous pouvez transmettre à Google un flux de données avec le schéma de données structurées indiqué ici. Notre spécification utilise ReadAction pour permettre aux utilisateurs d'acheter un livre et BorrowAction pour l'emprunter.

Action de livre dans les résultats de recherche

Les actions de lecture et d'emprunt, qui sont intégrées dans les fiches info, affichent les options permettant d'acheter ou d'emprunter le livre. Grâce aux liens que vous fournissez, les actions de lecture et d'emprunt renvoient directement les utilisateurs vers une page du livre sur votre site Web ou votre application à partir de la fiche info ou d'autres plates-formes Google.

L'ordre des fournisseurs dans la fiche info est personnalisé et dynamique pour chaque utilisateur. Autrement dit, tous les internautes ne voient pas les fournisseurs dans le même ordre, et l'ordre peut changer en fonction du moment où la fiche info est consultée. Divers facteurs sont à l'origine de ce comportement. Par exemple, si un utilisateur clique souvent sur le lien d'un fournisseur donné dans la fiche info, ce dernier est plus susceptible d'être placé en tête de liste. Notez toutefois qu'il n'est pas possible de contrôler l'ordre dans lequel apparaissent les fournisseurs.

Commencer

Pour optimiser la mise en œuvre des actions de livre, vous devez créer un flux conformément aux définitions des types de données structurées spécifiques à ces actions. Cependant, veillez à consulter les sections suivantes au préalable :

Consignes

Pour que vos livres puissent s'afficher de manière fiable dans la recherche, il est important de connaître certains concepts clés. Le flux doit également respecter certaines spécifications de format standardisées.

Nous vous conseillons donc de suivre les directives décrites ici, en plus des consignes générales pour les données structurées et des Essentiels de la recherche. Voici les principales directives à respecter :

Ouvrages et éditions

Dans cette documentation, nous utilisons deux termes distincts pour faire référence à un livre :

  • Ouvrage : concept abstrait représentant un livre. Plus précisément, les métadonnées telles que le titre, l'auteur et la langue d'origine sont quelques-uns des attributs d'un ouvrage.
  • Édition : version concrète du livre. Plus précisément, les métadonnées telles que l'année de publication, le nom de l'édition et le numéro ISBN (International Standard Book Number) sont quelques-uns des attributs de l'édition.

Par exemple, Le Petit Monde de Charlotte est un ouvrage, mais chaque variété dans laquelle il est proposé est une édition. Dans ce cas, l'ouvrage Le Petit Monde de Charlotte peut avoir une première édition, une deuxième édition, une édition abrégée, une édition anglophone, etc.

Cette distinction est particulièrement importante dans le flux, car cela n'est pas évident au premier abord. Il existe deux entités Book :

  • Book (Work) est l'entité Book de "niveau supérieur" :
    • workExample est une propriété de Work et spécifie une seule instance d'une propriété Book (Edition).
    • Vous devez utiliser au moins une propriété workExample pour chaque entité Work.
  • Book (Edition) est l'entité Book de "niveau inférieur".

N'oubliez pas qu'un ouvrage peut être proposé en plusieurs éditions. Nous vous recommandons de regrouper ces éditions dans la mesure du possible. Cette pratique aide les systèmes Google à exploiter toutes les informations pertinentes liées à un livre et à les afficher dans la recherche. Si nécessaire, vous pouvez les diviser en plusieurs enregistrements d'ouvrage, mais chacun d'entre eux doit contenir les éléments suivants :

  • Un @id différent
  • Au moins une édition avec un numéro ISBN ou un autre identifiant compatible

Systèmes de bibliothèques et membres

Library entity correspond au type d'entité Library de "niveau supérieur". Il s'agit d'une construction abstraite composée d'une entité LibrarySystem et de chaque entité Library (member) de "niveau inférieur" pour ce système de bibliothèque.

L'entité LibrarySystem est une abstraction et représente un réseau collaboratif de membres de la bibliothèque. Par exemple, la bibliothèque publique d'Austin peut être spécifiée en tant qu'entité LibrarySystem. Le site Web de la bibliothèque publique d'Austin se décrit lui-même comme un système de bibliothèques publiques desservant la ville d'Austin, au Texas. Ce système se compose de ses 20 bibliothèques affiliées, également appelées membres.

Chaque entité LibrarySystem nécessite au moins une entité Library (member), même si la bibliothèque ne fait partie d'aucun système de bibliothèques en réalité. Dans le cadre de la mise en œuvre des actions de livre pour ce scénario, la bibliothèque est le seul membre de son propre système de bibliothèques. Aux fins de mise en œuvre des actions de livre, contrairement à un système de bibliothèques, un membre de la bibliothèque n'est pas une abstraction et possède donc une adresse physique.

Inversement, chaque entité Library (member) doit appartenir à au moins une entité LibrarySystem.

ISBN et autres identifiants compatibles

L'ISBN est le principal indicateur qui permet à la recherche Google de faire le rapprochement entre les données de votre flux et les données de Google. Vous devez fournir un numéro ISBN ou tout autre identifiant compatible pour tous les livres que vous souhaitez faire apparaître dans les résultats de recherche. Sans identifiant, vos livres risquent de ne pas être reconnus par Google et ne seront donc pas proposés en tant que tels.

Bien que la recherche Google privilégie l'ISBN-13, vous pouvez également fournir les informations suivantes :

  • Numéro OCLC (Online Computer Library Center)
  • Numéro LCCN (Library of Congress Control Number)
  • E-code JP

Pour vous assurer que les internautes trouvent vos livres le plus facilement possible, les liens que vous ajoutez dans votre flux doivent respecter les consignes suivantes :

  • Si vous avez des pages en double pour un contenu identique, le lien doit correspondre à l'URL canonique qui contient le titre du livre et les autres informations le concernant.
  • Lorsqu'un internaute clique sur le lien d'une action de lecture ou d'emprunt, il doit être redirigé vers une page qui permet d'acheter ou d'emprunter directement le livre. Plus précisément, ne renvoyez pas les liens d'action vers des pages contenant d'autres liens sur lesquels l'utilisateur doit cliquer pour acheter le livre ou l'emprunter. Par exemple, ne redirigez pas les internautes vers une page de résultats de recherche ou de description de produit.

Créer un flux

Si votre site vend des livres, vous devez importer le flux Book. Contactez votre représentant Google et vérifiez les modalités d'importation de ce flux.

Si votre site propose le prêt de livres, vous devez importer deux flux distincts : Book et Library. Contactez votre représentant Google pour en savoir plus sur les modalités d'importation de ce flux.

Respecter les exigences relatives à la taille, à la quantité et au format des fichiers de flux

Les exigences sont les suivantes :

  • Exigences relatives à la taille du fichier de flux :
    • La taille d'un fichier de flux non compressé doit être inférieure à 1 Go.
    • La taille d'un fichier de flux à compresser doit être inférieure à 1 Go. Si le fichier de flux non compressé dépasse 1 Go, vous devez le diviser en plusieurs fichiers.
  • Vous pouvez compresser les fichiers de flux. Ils doivent être convertis au format ZIP, GZ, TAR, TAR.gz, JAR, AR, ARJ, Cpio ou fichier de vidage.
  • Si vous disposez de plusieurs fichiers de flux, vous pouvez les importer tels quels ou les inclure dans un fichier d'index de sitemaps.
  • Les fichiers de flux uniques doivent comporter l'extension de nom de fichier .json.

Respecter les exigences relatives au contenu des flux

Tenez compte des exigences suivantes concernant le contenu des flux :

  • Le flux ne doit pas contenir d'entités obsolètes. Les entités obsolètes sont des entités dont le champ availabilityEnds est défini sur une date passée ou les entités qui ne sont plus disponibles sur votre site.
  • Tous les liens profonds (comme urlTemplate) et toutes les URL (comme url) que vous incluez dans un flux doivent être des URL de production. N'utilisez pas d'URL qui n'en sont qu'au stade de contrôle qualité, de développement ou autre.
  • Toutes les URL, comme url, doivent être canoniques.
  • Chaque entité d'un flux doit spécifier les propriétés suivantes :
    • Un identifiant unique : @id
    • Une URL unique : url
    • Un lien profond unique : urlTemplate

Tester votre flux avec l'outil de validation de flux de données

Nous vous recommandons de suivre les étapes de dépannage suivantes pour résoudre les erreurs et les avertissements courants dans l'outil de validation de flux de données :

  • Assurez-vous d'avoir sélectionné l'option appropriée dans le champ Valider pour. Sélectionnez Action Livres pour l'entité Book.

  • Vérifiez que la valeur pour @type est correctement orthographiée.
  • Assurez-vous que la valeur pour @context est correctement définie. Définissez "@context": "https://schema.org" pour ReadAction et BorrowAction.

Héberger le fichier de flux

Lorsque votre fichier de flux est prêt, hébergez-le à un emplacement sécurisé. Nous explorons régulièrement le flux pour nous assurer que votre contenu est à jour.

Méthodes d'hébergement

Les méthodes d'hébergement de flux suivantes sont acceptées :

Hébergement Authentification acceptée
Google Cloud Storage Autorisation Lecteur des objets de l'espace de stockage
HTTPS Nom d'utilisateur + mot de passe ou certificats client HTTP
SFTP Mot de passe, clé + expression ou les deux
AWS S3 ID de clé + clé d'accès

Envoyer le fichier de flux pour examen

Pour que votre contenu soit disponible dans la recherche Google, une équipe d'assistance Google vérifie la qualité des liens profonds de votre flux. Nous vous recommandons vivement de tester manuellement certains des liens profonds pour confirmer qu'ils ouvrent bien la page sur laquelle les utilisateurs peuvent acheter ou emprunter les livres.

Pour demander un examen de votre flux, fournissez les informations suivantes :

  • Emplacement d'hébergement du fichier : URL du fichier de flux.
  • Authentification de l'hôte, le cas échéant : identifiants permettant à Google d'accéder au fichier de flux à partir de l'emplacement sur lequel il est hébergé.

Mettre à jour le flux si nécessaire

Nous vous recommandons de mettre à jour votre flux quotidiennement, bien que cela dépende fondamentalement de la fréquence de modification de votre catalogue. Tenez compte des conditions et conseils suivants :

  • La recherche Google ne suit pas les mises à jour en temps réel.
  • La recherche Google explore votre flux une fois par jour et indexe généralement le contenu dans un délai de deux jours.
  • En cas de changement prévisible de la disponibilité d'une édition, utilisez availabilityStarts et availabilityEnds pour définir les dates précises. Si l'entité n'est plus disponible, supprimez-la complètement.

Définitions des types de données structurées

Vous devez inclure les propriétés obligatoires répertoriées dans ce document pour que votre contenu puisse s'afficher dans les résultats de recherche structurés. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations spécifiques à votre contenu et ainsi offrir une meilleure expérience utilisateur.

Entité DataFeed

Chaque fichier de flux schema.org envoyé à Google doit contenir une seule entité DataFeed au niveau racine. Toutes les entités Book et Library doivent être répertoriées dans le champ dataFeedElement de l'entité DataFeed.

Les propriétés prises en charge par Google sont les suivantes :

Propriétés obligatoires
@context

Text

Définissez cet élément sur https://schema.org.

@type

Text

Définissez cet élément sur DataFeed.

dataFeedElement

Book ou LibrarySystem

Définissez cet élément sur une seule entité Book ou LibrarySystem. Sinon, définissez un tableau composé uniquement d'entités Book ou LibrarySystem. N'utilisez pas de tableau comprenant à la fois des entités Book et LibrarySystem.

Exemple d'utilisation dans un flux 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"
}

Exemple d'utilisation dans un flux 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

Date et heure de la dernière mise à jour du flux au format ISO 8601.

Entité Book

Bien que la définition complète de Book soit disponible sur schema.org/Book, il vous suffit de spécifier les propriétés suivantes. Vous devez définir les propriétés obligatoires pour chaque livre que vous choisissez d'inclure dans votre flux. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations spécifiques à votre contenu et ainsi offrir une meilleure expérience utilisateur.

Book (Work)

Cette entité Book est le type d'entité de niveau supérieur. Elle représente un ouvrage.

Les propriétés prises en charge par Google sont les suivantes :

Propriétés obligatoires
@context

Text

Définissez cet élément sur https://schema.org.

@id

Text

Identifiant global unique du livre, au format d'URL. Il doit être propre à votre organisation. Cet identifiant doit être stable et immuable dans le temps. Le format d'URL est recommandé, mais pas obligatoire. Il ne doit pas nécessairement s'agir d'un lien fonctionnel. Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

@type

Text

Définissez cet élément sur Book.

author

Person ou Organization

Auteur(s) du livre.

name

Text

Titre du livre.

url

URL

URL de votre site Web sur laquelle le livre est présenté ou décrit. Ce lien permet à Google de faire le rapprochement entre le contenu de votre flux et celui de ses bases de données. Il peut être identique à workExample.target.urlTemplate.

Pour la page de destination réelle, la recherche Google utilise l'URL fournie dans workExample.target.urlTemplate.

workExample

Book (Edition)

Édition(s) de l'ouvrage.

Propriétés recommandées
sameAs

URL

URL d'une page de référence qui identifie l'ouvrage (page Wikipédia, Wikidata, VIAF ou Bibliothèque du Congrès américain, par exemple).

Book (Edition)

La propriété workExample utilise cette entité Book. Elle représente l'édition d'un ouvrage.

Les propriétés prises en charge par Google sont les suivantes :

Propriétés obligatoires
@id

Text

Identifiant global unique du livre, au format d'URL. Il doit être propre à votre organisation. Cet identifiant doit être stable et immuable dans le temps. Le format d'URL est recommandé, mais pas obligatoire. Il ne doit pas nécessairement s'agir d'un lien fonctionnel. Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

@type

Text

Définissez cet élément sur Book.

bookFormat

Enum

Format de l'édition. Cette valeur doit correspondre à l'une des suivantes :

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

Text

Langue principale du contenu de l'édition. Utilisez l'un des codes à deux lettres de la liste des codes ISO 639-1 alpha-2.

isbn

Text

Numéro ISBN-13 de l'édition. Si vous possédez un code ISBN-10, convertissez-le en code ISBN-13.

potentialAction

ReadAction ou BorrowAction

Action à déclencher pour que les utilisateurs puissent acheter ou télécharger le livre. Pour en savoir plus, consultez ReadAction ou BorrowAction.

Propriétés recommandées
author

Person ou Organization

Auteur(s) de l'édition.

bookEdition

Text

Informations relatives à l'édition du livre. Exemple : 2nd Edition.

datePublished

Date

Date de publication de l'édition au format YYYY-MM-DD ou YYYY. Il peut s'agir d'une date ou d'une année spécifique.

identifier

PropertyValue

ID externe ou autre qui identifie clairement cette édition. Plusieurs identifiants sont autorisés. Pour en savoir plus, consultez la page sur PropertyValue (identifier).

Cette propriété peut être utilisée plusieurs fois.

name

Text

Titre de l'édition. Utilisez cette option uniquement lorsque le titre de l'édition est différent du titre de l'ouvrage.

sameAs

URL

URL d'une page Web de référence qui indique sans ambiguïté l'édition (par exemple, une page Wikipédia pour cette édition spécifique). Ne réutilisez pas l'identifiant sameAs de Work.

url

URL

URL de votre site Web sur laquelle l'édition est présentée ou décrite. Elle peut être identique à workExample.target.urlTemplate.

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

Exemple d'élément Book (Edition) avec plusieurs propriétés 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 ou Organization (author)

La propriété author du livre utilise l'entité Person ou Organization.

Propriétés obligatoires
@type

Text

Définissez-la sur Person ou Organization.

name

Text

Nom de la personne ou de l'organisation.

Propriétés recommandées
sameAs

URL

URL d'une page Web de référence qui indique clairement l'identité de la personne ou de l'organisation (par exemple, une page Wikipédia correspondant à cette personne ou à cette organisation).

Exemple de propriété author :

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

Exemple avec plusieurs propriétés author :

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

PropertyValue (identifier)

La propriété identifier de Edition utilise l'entité PropertyValue.

Propriétés obligatoires
@type

Text

Définissez cet élément sur PropertyValue.

propertyID

Text

Type d'identifiant. Comme indiqué dans la section ISBN et autres identifiants compatibles, il doit s'agir de l'un des éléments suivants :

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
value

Text

Valeur de l'ID. ID externe qui identifie clairement cette édition. Supprimez tous les préfixes non numériques de l'ID externe.

Exemple de propriété identifier :

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

Exemple avec plusieurs propriétés identifier :

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

Exemple de fichier de flux JSON 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"
}

Exemple de fichier de flux JSON 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 propriété potentialAction utilise l'entité ReadAction. ReadAction définit vos liens profonds pour accéder au livre, au revendeur qui le stocke et aux critères auxquels les utilisateurs doivent répondre. Ces critères peuvent comprendre le statut de l'abonnement ou des identifiants de connexion, ainsi que le lieu ou tout autre élément nécessaire pour accéder au livre.

Propriétés obligatoires
@type

Text

Définissez cet élément sur ReadAction.

expectsAcceptanceOf

Offer

Définition des conditions requises pour accéder à cette entité. Si plusieurs propriétés Offer sont présentes, un utilisateur qui remplit l'un ou l'autre des critères Offer est susceptible de pouvoir accéder au contenu.

Cette propriété peut être utilisée plusieurs fois.

expectsAcceptanceOf.@type

Text

Définissez cet élément sur Offer.

expectsAcceptanceOf.category

Text

Type de propriété Offer. Il doit s'agir de l'une des valeurs suivantes :

  • nologinrequired : l'action est disponible sans nécessiter aucun achat ni aucun identifiant de connexion de la part de l'utilisateur pour pouvoir accéder au contenu.
  • free : l'action est disponible sans nécessiter aucun achat ni aucun abonnement payant de la part de l'utilisateur. L'action nécessite toutefois que l'utilisateur se connecte.
  • subscription : le livre est proposé dans le cadre d'un abonnement payant à votre service.
  • purchase : le livre est accessible par le biais d'un achat.
  • rental : le livre est accessible pendant une durée limitée après l'achat.
expectsAcceptanceOf.eligibleRegion

Country

Pays éligible à cette propriété Offer. Celle-ci permet de déterminer le pays et la région où ce contenu est disponible ou non.

Cette propriété peut être utilisée plusieurs fois.

expectsAcceptanceOf.eligibleRegion.@type

Text

Définissez cet élément sur Country.

expectsAcceptanceOf.eligibleRegion.name

Text

Code pays ISO 3166-1 alpha-2.

target

EntryPoint

Spécifications de votre lien profond, qui incluent les informations relatives aux plates-formes compatibles. Plusieurs propriétés EntryPoint peuvent être utilisées pour définir différents liens profonds pour différents ensembles de plates-formes.

Cette propriété peut être utilisée plusieurs fois.

target.@type

Text

Définissez cet élément sur EntryPoint.

target.actionPlatform

Text

Plates-formes pour lesquelles ce lien profond est valide. Utilisez l'une des valeurs suivantes :

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

Cette propriété peut être utilisée plusieurs fois.

target.urlTemplate

URL

Lien qui redirige directement les utilisateurs vers le contenu de la page de destination de votre livre.

Propriétés recommandées
expectsAcceptanceOf.availabilityEnds

DateTime

Heure de fin de la période de disponibilité. Cette propriété permet de contrôler l'heure exacte à laquelle le livre ne doit plus être présenté aux utilisateurs.

expectsAcceptanceOf.availabilityStarts

DateTime

Heure de début de la période de disponibilité. Cette propriété permet de contrôler l'heure exacte à partir de laquelle ce livre est présenté aux utilisateurs.

expectsAcceptanceOf.price

Number

Prix de vente du livre. Cet élément est obligatoire lorsque la propriété category de Offer est définie sur purchase ou rental.

expectsAcceptanceOf.priceCurrency

Text

Devise du prix au format ISO 4217 à trois lettres.

Exemple de propriété 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"
    }
  }
}

Exemple d'élément ReadAction avec plusieurs propriétés 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 propriété potentialAction utilise l'entité BorrowAction. BorrowAction définit vos liens profonds pour accéder au livre, à la bibliothèque qui le stocke et aux critères auxquels les utilisateurs doivent répondre. Ces critères peuvent comprendre le statut de l'abonnement ou des identifiants de connexion, ainsi que le lieu ou tout autre élément nécessaire pour accéder au livre.

Propriétés obligatoires
@type

Text

Définissez cet élément sur BorrowAction.

lender

LibrarySystem

Système de bibliothèques qui permet d'accéder à cette édition.

lender.@id

URL

Références d'ID de la propriété LibrarySystem, qui doivent être décrites entièrement et séparément dans le flux de la bibliothèque.

lender.@type

Text

Définissez cet élément sur LibrarySystem.

target

EntryPoint

Spécifications de votre lien profond, qui incluent les informations relatives aux plates-formes compatibles. Afin de définir des liens profonds pour différents ensembles de plates-formes, spécifiez un tableau EntryPoint.

Cette propriété peut être utilisée plusieurs fois.

target.@type

Text

Définissez cet élément sur EntryPoint.

target.actionPlatform

Text

Plates-formes pour lesquelles ce lien profond est valide. Utilisez l'une des valeurs suivantes :

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

Cette propriété peut être utilisée plusieurs fois.

target.urlTemplate

URL

Lien qui redirige directement les utilisateurs vers le contenu de la page de destination de votre livre.

Exemple de propriété 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"
    ]
  }
}

Exemple d'élément BorrowAction avec plusieurs propriétés 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"
      ]
    }
  ]
}

Entité Library

Bien que la définition complète de Library soit disponible sur schema.org/Library, il vous suffit de spécifier les propriétés suivantes. Vous devez définir les propriétés obligatoires pour chaque bibliothèque que vous choisissez d'inclure dans votre flux. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations spécifiques à votre contenu et ainsi offrir une meilleure expérience utilisateur.

Cette entité Library est le type d'entité Library de niveau supérieur. Il s'agit d'une construction abstraite composée d'une entité LibrarySystem et de chaque entité Library (member) de niveau inférieur pour cette propriété LibrarySystem.

Le flux Library est différent du flux Book. Par conséquent, tout flux Library que vous pouvez mettre en œuvre doit être complètement distinct du flux Book. Pour en savoir plus, consultez la section Créer un flux.

LibrarySystem

L'entité LibrarySystem représente un réseau collaboratif de membres de la bibliothèque.

Propriétés obligatoires
@context Text

Définissez cet élément sur https://schema.org.

@id URL

ID unique global du système de bibliothèques au format d'URL. Cet identifiant doit être stable et immuable dans le temps. Comme il est traité comme une chaîne opaque, il ne doit pas nécessairement s'agir d'un lien fonctionnel. Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

@type Text

Définissez cet élément sur LibrarySystem.

additionalProperty PropertyValue

Propriété supplémentaire utilisée pour indiquer le type de bibliothèque.

additionalProperty.@type Text

Définissez cet élément sur PropertyValue.

additionalProperty.name Text

Définissez cet élément sur librarytype.

additionalProperty.value Text

Type de bibliothèque. Utilisez l'une des valeurs suivantes :

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

Membres du système de bibliothèques.

name Text

Nom du système de bibliothèques. Exemple : The Southwestern League of Libraries.

url URL

URL dans laquelle le système de bibliothèques est présenté ou décrit. La recherche Google utilise ce lien pour faire le rapprochement entre le contenu de votre flux et celui des bases de données de Google. Pour la page de destination réelle, la recherche Google utilise l'URL fournie dans workExample.target.urlTemplate.

Library (member)

La propriété member de LibrarySystem utilise l'entité Library (member). Library (member) représente le membre d'un système de bibliothèques donné.

Propriétés obligatoires
@id URL

ID unique global de la bibliothèque affiliée au format URL. Cet identifiant doit être stable et immuable dans le temps. Comme il est traité comme une chaîne opaque, il ne doit pas nécessairement s'agir d'un lien fonctionnel. Le domaine utilisé pour la valeur @id doit appartenir à votre organisation.

@type Text

Définissez cet élément sur Library.

location PostalAddress

Adresse postale de la bibliothèque affiliée. Toutes les propriétés ne s'appliquent pas à tous les pays. Vous devez en inclure autant que possible dans les adresses de vos bibliothèques.

Exemple pour les États-Unis 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"
  }
}

Exemple pour le Japon 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

Définissez cet élément sur PostalAddress.

location.addressCountry Text

Code pays au format ISO 3166-1. Exemple : US.

location.addressLocality Text

Localité. Exemple : Mountain View.

location.addressRegion Text

Région. Exemple : CA.

location.postalCode Text

Code postal. Exemple : 94043.

location.streetAddress Text

Adresse postale. Exemple : 1600 Amphitheatre Pkwy.

name Text

Nom de la bibliothèque affiliée.

Exemple de fichier de flux 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"
         }
      }
   ]
}