Strukturierte Daten für Buchaktionen (Book)

Durch Buchaktionen können Nutzer in der Google Suche Bücher und Autoren entdecken. Sie können die gefundenen Bücher direkt über die Suchergebnisse kaufen oder ausleihen. Ein Nutzer kann beispielsweise Charlotte's Web recherchieren und würde Ergebnisse erhalten, über die sich das Buch kaufen oder ausleihen lässt. Als Anbieter von Büchern kannst du Google mithilfe des hier angebotenen Schemas für strukturierte Daten einen Datenfeed zur Verfügung stellen. Unsere Spezifikation ermöglicht Nutzern, über ReadAction ein Buch zu kaufen und über BorrowAction eines auszuleihen.

Eine Buchaktion in den Suchergebnissen

Lese- und Ausleihaktionen, die in solchen Panel-Bereichen enthalten sind, bieten Optionen zum Kaufen oder Ausleihen des Buches. Über die von dir zur Verfügung gestellten Links gelangen Nutzer von den Lese- und Ausleihaktionen des Knowledge Panels und anderer Google-Oberflächen direkt zu einer Buchseite auf deiner Website bzw. in deiner App.

Die Reihenfolge der Anbieter im Knowledge Panel ist für den einzelnen Nutzer personalisiert, kann sich aber wiederum auch ändern. Die Reihenfolge kann also je nach Nutzer unterschiedlich sein. Aber auch derselbe Nutzer sieht zu unterschiedlichen Zeiten möglicherweise unterschiedliche Reihenfolgen. Die jeweilige Reihenfolge hängt von einer Vielzahl von Faktoren ab. Wenn ein Nutzer beispielsweise im Knowledge Panel häufig auf einen bestimmten Anbieterlink klickt, rückt dieser Anbieter dadurch wahrscheinlich in der Reihenfolge nach oben. Es ist nicht möglich, die Reihenfolge direkt anzupassen.

Einführung

Für die erfolgreiche Implementierung von Buchaktionen musst du deinen Feed gemäß den Definitionen für strukturierte Datentypen für Buchaktionen erstellen. Sieh dir aber zuerst die folgenden Abschnitte an:

Richtlinien

Damit deine Bücher zuverlässig in der Google Suche angezeigt werden, solltest du mit einigen wichtigen Details und Konzepten vertraut sein. Außerdem muss dein Feed einige standardisierte Formatspezifikationen erfüllen.

Beachte dafür die hier beschriebenen Richtlinien sowie die allgemeinen Richtlinien für strukturierte Daten und die Grundlagen der Google Suche. Die Richtlinien betreffen Folgendes:

Werke und Ausgaben

In dieser Dokumentation werden zwei unterschiedliche Begriffe verwendet, wenn es um ein Buch geht:

  • Werk: das abstrakte Konzept eines Buches. Attribute für ein Werk sind insbesondere Metadaten wie Titel, Autor und Originalsprache.
  • Ausgabe: eine bestimmte Form, in der ein Buch veröffentlicht wurde. Attribute für die Ausgabe sind insbesondere Metadaten wie das Erscheinungsjahr, der Name der Ausgabe und die Internationale Standardbuchnummer (ISBN).

Zum Beispiel ist Charlotte's Web ein Werk, aber jede veröffentlichte Variante davon ist eine Ausgabe. Es könnte für das Werk Charlotte's Web beispielsweise eine erste Ausgabe, eine zweite Ausgabe, eine gekürzte Ausgabe oder eine Ausgabe mit französischer Übersetzung geben.

Diese Unterscheidung ist besonders im Feed wichtig, wo sie möglicherweise nicht sofort offensichtlich ist. Es gibt zwei Book-Entitäten:

  • Book (Work) ist die „übergeordnete“ Book-Entität:
    • workExample ist eine Property von Work und gibt nur eine Instanz von Book (Edition) an.
    • Für jede Work-Entität muss es mindestens ein workExample geben.
  • Book (Edition) ist die „untergeordnete“ Book-Entität.

Denke daran, dass es mehrere Ausgaben eines Werks geben kann. Es empfiehlt sich, diese Ausgaben so gut wie möglich zu gruppieren. So können die Google-Systeme leichter alle relevanten Informationen zu einem Buch erfassen und in der Google Suche anzeigen. Bei Bedarf kannst du sie in mehrere Werkdatensätze unterteilen. Allerdings muss jeder Werkdatensatz Folgendes enthalten:

  • Eine eindeutige @id
  • Mindestens eine Ausgabe mit einer ISBN oder einer anderen unterstützten ID

Bibliotheksverbünde und Bibliotheksmitglieder

Die Library entity ist der „übergeordnete“ Library-Entitätstyp. Sie ist ein abstraktes Konstrukt, das aus einer LibrarySystem-Entität und den einzelnen untergeordneten Library (member)-Entitäten dieses Bibliotheksverbunds besteht.

Die LibrarySystem-Entität ist eine Abstraktion und stellt einen Zusammenschluss von Bibliotheksmitgliedern dar. Zum Beispiel kann die Austin Public Library als LibrarySystem-Entität angegeben werden. Auf der Website der Austin Public Library wird sie als öffentliches Bibliothekssystem für Austin (Texas) beschrieben. Sie besteht aus ihren 20 miteinander verbundenen Bibliotheken bzw. Bibliotheksmitgliedern.

Für jede LibrarySystem-Entität muss es mindestens eine Library (member)-Entität geben, selbst wenn die Bibliothek in Wirklichkeit nicht zu einem Bibliotheksverbund gehört. In diesem Szenario ist die Bibliothek zum Zweck der Implementierung der Buchaktion das einzige Bibliotheksmitglied ihres eigenen Bibliothekssystems. Im Unterschied zum Bibliothekssystem ist das Bibliothekmitglied dabei keine Abstraktion und hat daher eine Adresse.

Umgekehrt muss jede Library (member)-Entität zu mindestens einer LibrarySystem-Entität gehören.

ISBN und andere unterstützte IDs

Die ISBN ist die wichtigste Information, wenn die Google Suche deine Feeddaten mit den Daten von Google abgleicht. Für alle Bücher, die in den Suchergebnissen angezeigt werden sollen, musst du eine ISBN oder eine andere unterstützte ID angeben. Andernfalls können deine Bücher wahrscheinlich nicht abgeglichen und somit auch nicht angezeigt werden.

Für die Google Suche wird ISBN-13 bevorzugt. Du kannst aber auch Folgendes angeben:

  • Die OCLC-Nummer (Online Computer Library Center)
  • Die LCCN (Library of Congress Control Number)
  • JP E-Code

Damit die Suche nach deinen Büchern optimal funktioniert, sollten Links in deinem Feed den folgenden Richtlinien entsprechen:

  • Falls du Seitenduplikate mit identischem Inhalt hast, muss der Link die kanonische URL sein, die den Buchtitel und weitere Informationen zum Buch enthält.
  • Wenn ein Nutzer auf den Link für eine Lese- oder Ausleihaktion klickt, muss er zu einer Seite weitergeleitet werden, auf der das Buch direkt gekauft oder ausgeliehen werden kann. Insbesondere sollten Aktionslinks nicht zu Seiten führen, auf denen auf weitere Links geklickt werden muss, um den gewünschten Inhalt zu kaufen oder auszuleihen. Leite Nutzer beispielsweise nicht zu einer Suchergebnisseite oder einer Seite mit Produktzusammenfassungen weiter.

Feed erstellen

Wenn du auf deiner Website Bücher zum Kauf anbietest, musst du deinen Book-Feed hochladen. Lass dir von deinem Google-Ansprechpartner bestätigen, wie und wo der Feed hochgeladen werden muss.

Wenn du auf deiner Website Bücher ausleihst, musst du zwei separate Feeds hochladen: den Book-Feed und den Library-Feed. Lass dir von deinem Google-Ansprechpartner bestätigen, wie und wo die Feeds hochgeladen werden müssen.

Anforderungen in Bezug auf Feeddateigröße, Menge und Format erfüllen

Es gelten die folgenden Anforderungen:

  • Anforderungen an die Feeddateigröße:
    • Eine unkomprimierte Feeddatei muss kleiner als 1 GB sein.
    • Eine Feeddatei, die komprimiert werden soll, muss kleiner als 1 GB sein. Wenn die unkomprimierte Feeddatei 1 GB überschreitet, musst du sie in mehrere Dateien aufteilen.
  • Du kannst Feeddateien komprimieren, und zwar als zip-, gz-, tar-, tar.gz-, JAR-, ar-, arj-, cpio- oder Dump-Archivdatei.
  • Wenn du mehrere Feeddateien hast, kannst du sie unverändert hochladen oder als Teil einer Sitemap-Indexdatei einschließen.
  • Einzelne Feeddateien müssen die Dateiendung .json haben.

Anforderungen für Feedinhalte erfüllen

Beachte insbesondere die folgenden Anforderungen an Feedinhalte:

  • Der Feed darf keine veralteten Entitäten enthalten. Das sind Entitäten, bei denen availabilityEnds auf ein Datum gesetzt ist, das in der Vergangenheit liegt, oder Entitäten, die auf deiner Website nicht mehr verfügbar sind.
  • Alle Deeplinks, z. B. urlTemplate, und alle URLs, wie url, die du in deinen Feed aufnimmst, müssen Produktions-URLs sein. Verwende also z. B. keine URLs, die nur QA- oder Entwicklungszwecken dienen.
  • Alle URLs, z. B. url, müssen kanonisch sein.
  • Für jede Entität in deinem Feed musst du die folgenden Properties angeben:
    • Eine eindeutige ID: @id
    • Eine eindeutige URL: url
    • Einen eindeutigen Deeplink: urlTemplate

Feed mit dem Datenfeed-Validierungstool testen

Zur Behebung häufig auftretender Fehler und Warnungen im Datenfeed-Validierungstool empfehlen wir folgende Schritte:

  • Prüfe, ob du im Feld Validieren für die richtige Option ausgewählt hast. Wähle für die Book-Entität die Option Bücher-Aktion aus.

  • Prüfe, ob der Wert von @type richtig geschrieben ist.
  • Achte darauf, dass der Wert von @context korrekt ist. Lege für ReadAction und BorrowAction jeweils "@context": "https://schema.org" fest.

Feeddatei hosten

Wenn deine Feeddatei bereit ist, hoste sie an einem sicheren Speicherort. Google ruft den Feed regelmäßig ab, um deine Inhalte immer aktuell zu halten.

Hosting-Methoden

Die folgenden Feed-Hosting-Methoden werden unterstützt:

Hosting Authentifizierungsunterstützung
Google Cloud Storage Berechtigung Storage-Objekt-Betrachter
HTTPS Nutzername + Passwort oder HTTP-Clientzertifikate
SFTP Passwort, Schlüssel + Passphrase oder beides
AWS S3 Schlüssel-ID + Zugriffsschlüssel

Feeddatei zur Überprüfung einreichen

Damit deine Inhalte in der Google Suche verfügbar sind, überprüft ein Google-Supportteam die Qualität der Deeplinks in deinem Feed. Wir empfehlen dir dringend, einige der Deeplinks manuell daraufhin zu prüfen, ob sich damit die Seite öffnen lässt, auf der Nutzer die Bücher kaufen bzw. ausleihen können.

Wenn du eine Überprüfung deines Feeds beantragen möchtest, gib Folgendes an:

  • Hostspeicherort: die URL deiner Feeddatei
  • Hostauthentifizierung, falls zutreffend: die Anmeldedaten für die Authentifizierung, damit Google die Feeddatei vom Hostspeicherort abrufen kann

Feed nach Bedarf aktualisieren

Es empfiehlt sich, deinen Feed täglich zu aktualisieren. Das hängt aber auch davon ab, wie oft sich dein Katalog ändert. Beachte Folgendes:

  • Die Google Suche unterstützt keine Echtzeit-Aktualisierungen.
  • Die Google Suche ruft deinen Feed einmal täglich ab und indexiert die Inhalte in der Regel innerhalb von zwei Tagen.
  • Wenn eine vorhersehbare Änderung der Verfügbarkeit einer Ausgabe ansteht, kannst du mit availabilityStarts und availabilityEnds die genauen Zeiten festlegen. Wenn die Entität nicht mehr verfügbar ist, entferne sie vollständig.

Definitionen strukturierter Datentypen

Du musst die hier aufgeführten erforderlichen Properties angeben, damit deine Inhalte in den strukturierten Suchergebnissen angezeigt werden können. Du kannst auch die empfohlenen Properties hinzufügen, um weitere Informationen zu deinen Inhalten anzugeben und so die Nutzerfreundlichkeit zu erhöhen.

DataFeed-Entität

Jede an Google übermittelte schema.org-Datenfeed-Datei muss auf Stammebene eine einzelne DataFeed-Entität enthalten. Alle Book- und Library-Entitäten müssen im Feld dataFeedElement der DataFeed-Entität aufgeführt sein.

Die von Google unterstützten Properties sind folgende:

Erforderliche Properties
@context

Text

Setze diese Property auf https://schema.org.

@type

Text

Setze diese Property auf DataFeed.

dataFeedElement

Book oder LibrarySystem

Setze diese Property entweder auf eine einzelne Book- oder eine einzelne LibrarySystem-Entität. Oder setze die Property auf ein Array, das entweder nur Book- oder nur LibrarySystem-Entitäten umfasst. Lege für die Property kein Array fest, das sowohl Book- als auch LibrarySystem-Entitäten enthält.

Beispiel für die Verwendung in einem Book-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"
}

Beispiel für die Verwendung in einem LibrarySystem-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

DateTime

Hiermit werden das Datum und die Uhrzeit der letzten Aktualisierung des Feeds im ISO 8601-Format angegeben.

Book-Entität

Die vollständige Definition von Book findest du unter schema.org/Book. Für dich sind jedoch nur die unten stehenden Properties relevant. Du musst die erforderlichen Properties für jedes Buch definieren, das du in deinen Feed aufnimmst. Du kannst auch empfohlene Properties festlegen, um weitere Informationen zu deinen Inhalten anzugeben und so die Nutzerfreundlichkeit zu erhöhen.

Book (Work)

Diese Book-Entität ist der übergeordnete Entitätstyp. Sie steht für ein Werk.

Die von Google unterstützten Properties sind folgende:

Erforderliche Properties
@context

Text

Setze diese Property auf https://schema.org.

@id

Text

Eine global eindeutige ID für das Buch im URL-Format. Sie muss für deine Organisation eindeutig sein. Die ID muss immer gleich bleiben. Die Verwendung des URL-Formats wird empfohlen, ist aber nicht erforderlich. Es muss sich nicht um einen funktionierenden Link handeln. Die für den @id-Wert verwendete Domain muss deiner Organisation gehören.

@type

Text

Setze diese Property auf Book.

author

Person oder Organization

Der Autor oder die Autoren des Buches.

name

Text

Der Titel des Buches.

url

URL

Die URL deiner Website, auf der das Buch vorgestellt oder beschrieben wird. Über diesen Link kannst du die Inhalte in deinem Feed genau mit den Inhalten in den Google-Datenbanken abgleichen. Er kann mit workExample.target.urlTemplate identisch sein.

Für die tatsächliche Landingpage verwendet die Google Suche die in workExample.target.urlTemplate angegebene URL.

workExample

Book (Edition)

Hiermit werden die Ausgaben des Werks angegeben.

Empfohlene Properties
sameAs

URL

Die URL einer Referenzseite, auf der die Identität des Werks erkennbar ist. Das kann z. B. eine Wikipedia-, Wikidata-, VIAF- oder Library of Congress-Seite für das Buch sein.

Book (Edition)

Für die workExample-Property wird diese Book-Entität verwendet. Sie steht für eine Ausgabe eines Werks.

Die von Google unterstützten Properties sind folgende:

Erforderliche Properties
@id

Text

Eine global eindeutige ID für das Buch im URL-Format. Sie muss für deine Organisation eindeutig sein. Die ID muss immer gleich bleiben. Die Verwendung des URL-Formats wird empfohlen, ist aber nicht erforderlich. Es muss sich nicht um einen funktionierenden Link handeln. Die für den @id-Wert verwendete Domain muss deiner Organisation gehören.

@type

Text

Setze diese Property auf Book.

bookFormat

Enum

Das Format der Ausgabe. Folgende Werte sind zulässig:

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

Text

Die Hauptsprache des Inhalts in der Ausgabe. Verwende einen der aus zwei Buchstaben bestehenden Codes aus der Liste von ISO 639-1-alpha-2-Codes.

isbn

Text

Die ISBN-13 der Ausgabe. Wenn du eine ISBN-10 hast, wandle die Nummer in ISBN-13 um.

potentialAction

ReadAction oder BorrowAction

Die Aktion, die für Nutzer zum Kaufen oder Herunterladen des Buches ausgelöst werden soll. Weitere Informationen findest du unter ReadAction oder BorrowAction.

Empfohlene Properties
author

Person oder Organization

Hiermit werden der Autor oder die Autoren der Ausgabe angegeben.

bookEdition

Text

Die Ausgabeinformationen des Buches. Beispiel: 2nd Edition

datePublished

Date

Das Erscheinungsdatum der Ausgabe im Format YYYY-MM-DD oder YYYY. Das kann entweder ein bestimmtes Datum oder nur ein bestimmtes Jahr sein.

identifier

PropertyValue

Die externe oder sonstige ID, durch die diese Ausgabe eindeutig identifiziert wird. Es sind mehrere IDs zulässig. Weitere Informationen findest du unter PropertyValue (identifier).

Diese Property kann wiederholt werden.

name

Text

Der Titel der Ausgabe. Verwende diese Property nur, wenn sich der Titel der Ausgabe vom Titel des Werks unterscheidet.

sameAs

URL

Die URL einer Referenzwebseite, auf der die Ausgabe eindeutig angegeben ist. Das kann z. B. eine Wikipedia-Seite zu dieser konkreten Ausgabe sein. Wiederhole nicht die sameAs-Property der Work-Entität.

url

URL

Die URL deiner Website, auf der die Ausgabe vorgestellt oder beschrieben wird. Sie kann mit workExample.target.urlTemplate identisch sein.

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

Beispiel für Book (Edition) mit mehreren workExample Properties:

"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 oder Organization (author)

Für die author-Property des Buches wird die Person- oder Organization-Entität verwendet.

Erforderliche Properties
@type

Text

Lege dafür Person oder Organization fest.

name

Text

Name der Person oder Organisation.

Empfohlene Properties
sameAs

URL

Die URL einer Referenzwebseite, auf der eindeutig die Identität der Person oder Organisation erkennbar ist. Das kann z. B. eine Wikipedia-Seite zu dieser Person oder Organisation sein.

Beispiel für author:

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

Beispiel mit mehreren author-Properties:

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

PropertyValue (identifier)

Für die identifier-Property von Edition wird die PropertyValue-Entität verwendet.

Erforderliche Properties
@type

Text

Setze diese Property auf PropertyValue.

propertyID

Text

Der Typ der ID. Wie unter ISBN und andere unterstützte IDs beschrieben, muss es sich um eine der folgenden Angaben handeln:

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
value

Text

Der ID-Wert. Die externe ID, durch die diese Ausgabe eindeutig identifiziert wird. Entferne alle nicht numerischen Präfixe der externen ID.

Beispiel für identifier:

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

Beispiel mit mehreren identifier-Properties:

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

Beispiel für eine ReadAction Book-Feeddatei im JSON-Format

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

Beispiel für eine BorrowAction Book-Feeddatei im JSON-Format

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

Für die potentialAction-Property wird die ReadAction-Entität verwendet. ReadAction gibt deine Deeplinks für den Zugriff auf das Buch, den Einzelhändler, der das Buch anbietet, sowie die von den Nutzern zu erfüllenden Kriterien an. Bei den Kriterien kann es sich um den Mitgliedschaftsstatus, den Anmeldestatus, den Standort oder sonstige Informationen handeln, die für den Zugriff auf das Buch erforderlich sind.

Erforderliche Properties
@type

Text

Setze diese Property auf ReadAction.

expectsAcceptanceOf

Offer

Die Definition der Nutzeranforderungen für den Zugriff auf diese Entität. Wenn mehrere Offer-Properties vorhanden sind, muss ein Nutzer möglicherweise nur eines der Offer-Kriterien erfüllen, um auf den Inhalt zuzugreifen.

Diese Property kann wiederholt werden.

expectsAcceptanceOf.@type

Text

Setze diese Property auf Offer.

expectsAcceptanceOf.category

Text

Der Typ von Offer. Dies muss einer der folgenden Werte sein:

  • nologinrequired: Die Aktion ist für den Nutzer für den Zugriff auf Inhalte verfügbar, ohne dass er etwas kaufen oder sich anmelden muss.
  • free: Die Aktion ist für den Nutzer verfügbar, ohne dass er einen Kauf oder ein kostenpflichtiges Abo abschließen muss. Für die Aktion muss sich der Nutzer jedoch anmelden.
  • subscription: Das Buch ist in Verbindung mit einem kostenpflichtigen Abo für deinen Dienst verfügbar.
  • purchase: Das Buch muss gekauft werden, um für den Nutzer verfügbar zu sein.
  • rental: Das Buch ist nach dem Kauf für einen begrenzten Zeitraum verfügbar.
expectsAcceptanceOf.eligibleRegion

Country

Hiermit können das Land und die Region angegeben werden, in denen die zur Offer-Entität gehörenden Inhalte verfügbar sein sollen.

Diese Property kann wiederholt werden.

expectsAcceptanceOf.eligibleRegion.@type

Text

Setze diese Property auf Country.

expectsAcceptanceOf.eligibleRegion.name

Text

Hiermit wird der Ländercode gemäß ISO 3166-1 alpha-2 angegeben.

target

EntryPoint

Die Spezifikationen deines Deeplinks, einschließlich der Informationen zu unterstützten Plattformen. Es können mehrere EntryPoint-Properties angegeben werden, um verschiedene Deeplinks für verschiedene Plattformgruppen zu definieren.

Diese Property kann wiederholt werden.

target.@type

Text

Setze diese Property auf EntryPoint.

target.actionPlatform

Text

Die Plattform(en), für die dieser Deeplink gültig ist. Verwende einen der folgenden Werte:

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

Diese Property kann wiederholt werden.

target.urlTemplate

URL

Der Link, über den Nutzer direkt zum Inhalt der Landingpage deines Buchs gelangen.

Empfohlene Properties
expectsAcceptanceOf.availabilityEnds

DateTime

Das Ende des Verfügbarkeitszeitraums. Hiermit kannst du genau festlegen, ab wann das Buch nicht mehr für Nutzer zugänglich sein soll.

expectsAcceptanceOf.availabilityStarts

DateTime

Der Beginn des Verfügbarkeitszeitraums. Hiermit kannst du genau festlegen, ab wann das Buch für Nutzer zugänglich sein soll.

expectsAcceptanceOf.price

Number

Der Kaufpreis des Buches. Diese Angabe ist erforderlich, wenn category für die Offer-Property auf purchase oder rental festgelegt ist.

expectsAcceptanceOf.priceCurrency

Text

Hiermit wird die Währung des Preises im dreistelligen ISO 4217-Format angegeben.

Beispiel für 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"
    }
  }
}

Beispiel für ReadAction mit mehreren EntryPoint-Properties:

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

Für die potentialAction-Property wird die BorrowAction-Entität verwendet. BorrowAction gibt deine Deeplinks für den Zugriff auf das Buch, die Bibliothek, in der das Buch verfügbar ist, sowie die von den Nutzern zu erfüllenden Kriterien an. Bei den Kriterien kann es sich um den Mitgliedschaftsstatus, den Anmeldestatus, den Standort oder sonstige Informationen handeln, die für den Zugriff auf das Buch erforderlich sind.

Erforderliche Properties
@type

Text

Setze diese Property auf BorrowAction.

lender

LibrarySystem

Hiermit wird der Bibliotheksverbund angegeben, der den Zugriff auf diese Ausgabe ermöglicht.

lender.@id

URL

Hiermit werden die ID-Referenzen der LibrarySystem-Entität angegeben, die im separaten Bibliotheksfeed vollständig beschrieben werden muss.

lender.@type

Text

Setze diese Property auf LibrarySystem.

target

EntryPoint

Die Spezifikationen deines Deeplinks, einschließlich der Informationen zu unterstützten Plattformen. Wenn du Deeplinks für verschiedene Plattformgruppen definieren möchtest, gib ein EntryPoint-Array an.

Diese Property kann wiederholt werden.

target.@type

Text

Setze diese Property auf EntryPoint.

target.actionPlatform

Text

Die Plattform(en), für die dieser Deeplink gültig ist. Verwende einen der folgenden Werte:

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

Diese Property kann wiederholt werden.

target.urlTemplate

URL

Der Link, über den Nutzer direkt zum Inhalt der Landingpage deines Buchs gelangen.

Beispiel für 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"
    ]
  }
}

Beispiel für BorrowAction mit mehreren EntryPoint-Properties:

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

Library-Entität

Die vollständige Definition von Library findest du unter schema.org/Library. Für dich sind jedoch nur die unten stehenden Properties relevant. Du musst die erforderlichen Properties für jede Bibliothek definieren, die du in deinen Feed aufnimmst. Du kannst auch empfohlene Properties festlegen, um weitere Informationen zu deinen Inhalten anzugeben und so die Nutzerfreundlichkeit zu erhöhen.

Diese Library-Entität ist der übergeordnete Library-Entitätstyp. Sie ist ein abstraktes Konstrukt, das aus einer LibrarySystem-Entität und den einzelnen untergeordneten Library (member)-Entitäten dieser LibrarySystem-Entität besteht.

Der Library-Feed unterscheidet sich vom Book-Feed. Daher muss jeder Library-Feed, den du implementierst, vollständig getrennt von deinem Book-Feed sein. Weitere Informationen findest du unter Feed erstellen.

LibrarySystem

Die LibrarySystem-Entität stellt einen Zusammenschluss von Bibliotheksmitgliedern dar.

Erforderliche Properties
@context Text

Setze diese Property auf https://schema.org.

@id URL

Eine global eindeutige ID für den Bibliotheksverbund im URL-Format. Die ID muss immer gleich bleiben. Sie wird als opaker String behandelt und muss kein funktionierender Link sein. Die für den @id-Wert verwendete Domain muss deiner Organisation gehören.

@type Text

Setze diese Property auf LibrarySystem.

additionalProperty PropertyValue

Das ist die zusätzliche Property, mit der der Typ der Bibliothek angegeben wird.

additionalProperty.@type Text

Setze diese Property auf PropertyValue.

additionalProperty.name Text

Setze diese Property auf librarytype.

additionalProperty.value Text

Der Typ der Bibliothek. Verwende einen der folgenden Werte:

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

Hiermit werden die Mitglieder des Bibliotheksverbunds angegeben.

name Text

Der Name des Bibliotheksverbunds. Beispiel: The Southwestern League of Libraries

url URL

Die URL, unter der der Bibliotheksverbund vorgestellt oder beschrieben wird. Die Google Suche verwendet diesen Link, um die Inhalte in deinem Feed mit den Inhalten in den Google-Datenbanken abzugleichen. Für die tatsächliche Landingpage verwendet die Google Suche die in workExample.target.urlTemplate angegebene URL.

Library (member)

Für die member-Property der LibrarySystem-Entität wird die Library (member)-Entität verwendet. Library (member) stellt ein einzelnes Bibliotheksmitglied eines bestimmten Bibliothekssystems dar.

Erforderliche Properties
@id URL

Eine global eindeutige ID für die Zweigbibliothek im URL-Format. Die ID muss immer gleich bleiben. Sie wird als opaker String behandelt und muss kein funktionierender Link sein. Die für den @id-Wert verwendete Domain muss deiner Organisation gehören.

@type Text

Setze diese Property auf Library.

location PostalAddress

Die Adresse der Zweigbibliothek. Nicht alle Properties gelten für jedes Land. Du musst so viele verwenden, wie zum Angeben der Adressen deiner Bibliotheken erforderlich sind.

location-Beispiel für die USA:


{
  "@type": "Library",
  "@id": "https://example.com/library-branches/1001",
  "name": "Campbell Library",
  "location": {
    "@type": "PostalAddress",
    "streetAddress": "77 Harrison Ave",
    "addressLocality": "Campbell",
    "addressRegion": "CA",
    "postalCode": "95008",
    "addressCountry": "US"
  }
}

location-Beispiel für Japan:


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

Setze diese Property auf PostalAddress.

location.addressCountry Text

Der Ländercode im ISO 3166-1-Format. Beispiel: US

location.addressLocality Text

Der Ort. Beispiel: Mountain View

location.addressRegion Text

Die Region. Beispiel: CA

location.postalCode Text

Die Postleitzahl. Beispiel: 94043

location.streetAddress Text

Die Adresse. Beispiel: 1600 Amphitheatre Pkwy

name Text

Der Name der Zweigbibliothek

Beispiel für eine LibrarySystem-Feeddatei im JSON-Format

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