Referenz für strukturierte Daten für Hotelpreise

Auf dieser Seite finden Sie eine Referenz zum Hinzufügen von Markups für strukturierte Daten zu den Preisdaten Ihrer Hotels.

Übersicht

Strukturierte Daten für Hotelpreise werden verwendet, um die auf Ihrer Website aufgeführten Hotelpreise unabhängig von der Benutzeroberfläche im Detail zu erläutern, zu validieren und anzuzeigen. Dazu gehören auch Felder für Basispreis, Preise, Zimmer, Gebühren und Steuern sowie preisbezogene Felder.

Google empfiehlt Partnern, ihre Webseiten mit standardisierten strukturierten Daten zu kennzeichnen, die für Crawler maschinenlesbar sind. Diese Daten werden von schema.org bereitgestellt und ermöglichen es, Preise genau von Ihren Webseiten zu erfassen.

So lässt sich die Prüfung der Preisrichtigkeit skalieren, da die Zuverlässigkeit von Crawlern verbessert wird. Sie profitieren von einer höheren Anzahl von Preisgenauigkeitsprüfungen, der Möglichkeit, Probleme mit der Preisgenauigkeit direkt zu beheben, und einer einheitlichen Preisgenauigkeitsquote.

Falls Sie mit strukturierten Daten noch nicht vertraut sind, finden Sie hier weitere Informationen zum Vokabular und Format von strukturierten Daten.

Google Hotels empfiehlt das JSON-LD-Format zum Annotieren Ihrer Webseiten. Weitere Informationen zu anderen zulässigen Formaten finden Sie unter Unterstützte Formate. In dieser Dokumentation finden Sie detaillierte Referenzinhalte zur Implementierung strukturierter Daten in Hotels.

Mit strukturierten Hotel-Daten werden hotelspezifische Felder auf Ihrer Webseite annotiert. Hotel-strukturierte Daten haben die folgenden Eigenschaften:

HotelRoom-strukturierte Daten werden verwendet, um raumspezifische Felder auf Ihrer Webseite zu kennzeichnen.

HotelRoom-strukturierte Daten haben die folgenden Eigenschaften:

Strukturierte Daten für Hotels

name- und address-Properties

Die Attribute name und address werden verwendet, um den Namen und den Standort des Hotels zu kennzeichnen. Die Properties name und address:

  "@type": "Hotel",
    "name": "hotel-name",
    "identifier": "hotel-id-1234",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "XX",
      "addressLocality": "City Name",
      "addressRegion": "State Name",
      "postalCode": "01234",
      "streetAddress": "1234 Main St."
    },

Syntax

Für die Attribute name und address wird die folgende Syntax verwendet:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "XX",
    "addressLocality": "City Name",
    "addressRegion": "State Name",
    "postalCode": "01234",
    "streetAddress": "1234 Main St."
  },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"]
    ...
  }
}

Attribute

Die Properties name und address:

Attribut Erforderlich? Typ Beschreibung
Hotel.name Required string Der Name des Hotels
Hotel.identifier Required string

Die Hotel-ID des Partners.

Die Kennung muss ein eindeutiger String pro Hotel sein und genau mit dem String im Preisfeed übereinstimmen.

Hotel.address Optional PostalAddress Die Adresse oder der Standort des Hotels.

Beispiele

Name und Adresse

Im Folgenden finden Sie ein einfaches Beispiel für das Hinzufügen von name- und address-Anmerkungen:

{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mountain Hotel",
"identifier": "hotel-id-1234",
"address": {
  "@type": "PostalAddress",
  "addressCountry": "AT",
  "addressLocality": "Innsbruck",
  "addressRegion": "Tyrol",
  "postalCode": "6020",
  "streetAddress": "Technikerstrasse 21"
},
"makesOffer": {
  "@type": ["Offer", "LodgingReservation"],
  "checkinTime": "2023-03-10 15:00:00",
  "checkoutTime": "2023-03-16 10:00:00",
  "priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": 1222.74,
    "priceCurrency": "USD"
  }
}
}

makesOffer Unterkunft

makesOffer-Anmerkungen werden verwendet, um Ihre Hotelreisepläne zu kennzeichnen.

  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    ...
  }

Syntax

Die Property makesOffer verwendet die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    "priceSpecification": { ... }
  }
}

Attribute

Im Folgenden sind die makesOffer-Properties aufgeführt:

Attribut Erforderlich? Typ Beschreibung
makesOffer Required Offer and LodgingReservation

Das/die Hotelangebot(e) für den angegebenen Reiseplan.

Das Attribut makesOffer kann ein Array mit Angeboten enthalten.

LodgingReservation.checkinTime Required DateTime

Die Check-in-Zeit in der Zeitzone des Nutzers. Wenn Ihre Zeitzone nicht angegeben ist, wird die Zeitzone des Hotels berücksichtigt.

LodgingReservation.checkoutTime Required DateTime

Die Check-out-Zeit in der Zeitzone des Nutzers. Wenn Ihre Zeitzone nicht angegeben ist, wird die Zeitzone des Hotels berücksichtigt.

Beispiel

makesOffer

Im Folgenden finden Sie ein einfaches Beispiel für die Anmerkung von Hotelangeboten. Sie können mehrere Angebote für eine Route angeben. Der von Google angezeigte Preis sollte jedoch zuerst angegeben werden, gefolgt von anderen Preisen. Der angegebene Preisbetrag enthält alle anfallenden Steuern.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Mountain Hotel",
  "identifier": "hotel-id-1234",
  "address": { ... },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    }
  ]
}

Hotel priceSpecification Unterkunft

Mit dieser Eigenschaft werden Preisinformationen für Ihr Hotel oder Ihre Hotelzimmer angegeben. Es sind zwei zusätzliche Properties erforderlich, um Ihre Preise und Steuern zu kennzeichnen. Verwenden Sie CompoundPriceSpecification, um die gesamten Preisinformationen wie Grundpreis, Steuern und Rabatte anzugeben. Verwenden Sie UnitPriceSpecification, um zusätzliche Steuern oder spezielle Gebühren wie ResortFee, GenericTax und ServiceFee anzugeben. Das Attribut priceSpecification ist im Attribut Offer enthalten.

  {
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      ]
    }
  }

Syntax

Die Property Hotel priceSpecification verwendet die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "name-of-the-business"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Mikrodaten

  <div itemscope itemtype="https://schema.org/Hotel">
    <meta itemprop="name" content="hotel-name"/>
    ...
    <div itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation" itemprop="makesOffer">
      ...
      <div itemscope itemtype="https://schema.org/CompoundPriceSpecification" itemprop="priceSpecification">
        <meta itemprop="price" content="float"/>
        <meta itemprop="priceCurrency" content="currency"/>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content=""/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="GenericTax" />
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="GenericTax"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="Discount"/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="Discount"/>
        </div>
      </div>
    </div>
  </div>

Attribute

Im Folgenden sind die hotel priceSpecification-Properties aufgeführt:

Attribut Erforderlich? Typ Beschreibung
Hotel.Offer.priceSpecification.price Required float

Der Gesamtpreis für das Hotel, einschließlich Steuern und Gebühren.

Der Google-Preis sollte immer auf Ihrer Landingpage zusammen mit Ihren vollständigen Preisdetails angegeben werden. Wenn Sie Rateninformationen mit Anmerkungen versehen, können Sie die Preisgenauigkeit prüfen. Google akzeptiert sowohl Preise auf Hotelebene als auch auf Zimmerebene.

Hotel.Offer.priceSpecification.priceCurrency Required currency Ein Code aus drei Buchstaben für die Währung des angegebenen Preises. Beispiel: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Die Aufschlüsselung des Gesamtpreises einschließlich Steuern und Gebühren für das Hotel. Es gibt zwei Arten von strukturierten Preisdaten:

  • CompoundPriceSpecification bietet Preisaufschlüsselungen, die Folgendes enthalten:

    • Basispreis: Der Grundpreis pro Nacht

    • Steuern pro Aufenthalt: Der Preis pro Nacht mit Steuern.

    • Gebühren pro Person: Der Preis pro Nacht und Belegung.

    • Rabatt: Der Abzugsbetrag.

  • Mit UnitPriceSpecification wird der Typ der Gebühren angegeben. Sie sollten PriceComponentTypeEnumeration -Werte angeben, um zusätzliche Gebühren festzulegen.

    Die Werte für PriceComponentTypeEnumeration sind:

    • Discount: Der generische Rabatt auf den Preis.

    • ResortFee: Dies ist eine zusätzliche Gebühr, die im Hotel bezahlt werden muss. Das kann je nach Art der Unterkunft variieren.

    • GenericTax: Es handelt sich um eine zusätzliche sonstige Steuer.

    • ServiceFee: Dies ist eine zusätzliche Gebühr, die vom Buchungskanal erhoben wird.

    • TransferFee: Dies ist eine de facto obligatorische Gebühr für den Transport zum Hotel, die entweder vom Hotel oder vom Buchungskanal erhoben wird.

Sie müssen die Werte im Attribut priceComponentType festlegen. Alle Werte sind erforderlich, wenn Sie UnitPriceSpecification einfügen möchten. Sie müssen in der Property UnitPriceSpecification angegeben werden.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Die Zahlungsstelle des Hotels.Die Zahlungsabläufe des Hotels umfassen Preise, die beim Check-out auf der Buchungswebsite und beim Check-in im Hotel berechnet werden.

Verwenden Sie das Attribut potentialAction , das im Feld „recipient“ des PayAction enthalten ist, um den Zahlungsort anzugeben. Weitere Informationen zur Property recipient findest du unter PayAction.

Google unterstützt die folgenden beiden Einstellungen für den Empfänger von PayAction:

  • recipient.@type = "OnlineBusiness" bezieht sich auf die Zahlung, die vom Onlinehändler zum Zeitpunkt der Buchung eingezogen wird. Dies ist die Standardeinstellung, wenn potentialAction nicht angegeben ist.

  • recipient.@type = "Hotel" bezieht sich auf die Zahlung, die im Hotel erhoben wird.

Beispiele

JSON-LD-Beispiele

Preis

Im Folgenden finden Sie ein einfaches Beispiel für das Hinzufügen von strukturierten Preisdaten zu Ihrer Webseite. Die Property makesOffer kann mehrere Angebote auf Hotelebene enthalten.

PostalAddress-Typen wie addressCountry, postalCode, streetAddress und andere Felder sind erforderlich, wenn Sie das Attribut address angeben. Der von Google angezeigte Preis sollte zuerst in der Eigenschaft makesOffer aufgeführt werden. Der angegebene Preisbetrag enthält alle anfallenden Steuern.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "AT",
    "addressLocality": "Innsbruck",
    "addressRegion": "Tyrol",
    "postalCode": "6020",
    "streetAddress": "Technikerstrasse 21"
  },
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1200.74,
        "priceCurrency": "USD"
      }
    },
    ...
  ]
}

Preisinformationen

Hier ein Beispiel für die priceSpecification-Property mit der Aufschlüsselung des Preises. Der Basistarif, Steuern wie die allgemeine Steuer und der Rabatt werden mit der UnitPriceSpecification-Komponente definiert. Denken Sie daran, das Feld priceComponentType mit den Werten festzulegen, die der Komponente UnitPriceSpecification entsprechen.

Der Gesamtpreis für den Aufenthalt sollte in der Property CompoundPriceSpecification angegeben werden. Die Aufschlüsselung des Preises sollte im Attribut priceComponent angegeben werden.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Zahlungsstelle

Im Folgenden finden Sie ein Beispiel für die potentialAction-Spezifikation bei Verwendung des Empfängertyps von PayAction.

Der Gesamtpreis des Pakets beträgt 1.170 $. Auf der Online-Website wird bei der Buchung ein Teil des Gesamtpreises in Höhe von 1.150 $berechnet, der mit "@type": "OnlineBusiness" angegeben ist. Die restlichen 20 $muss der Nutzer beim Check-in im Hotel bezahlen, was mit @type": "Hotel" angegeben ist.

Sie müssen die Komponente potentialAction angeben, um die Zahlung bei der Buchung und im Hotel aufzuschlüsseln. Wenn sie nicht angegeben ist, interpretiert payAction die Zahlung zum Zeitpunkt der Buchung als Standardzahlungsmethode.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1170,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "price": 1150,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "OnlineBusiness",
              "name": "myonlinebusiness"
            }
          }
        },
        {
          "@type": "UnitPriceSpecification",
          "price": 20,
          "priceCurrency": "USD",
          "potentialAction": {
            "@type": "https://schema.org/PayAction",
            "recipient": {
              "@type": "Hotel",
              "name": "The Langham, Boston",
              "address": { ... }
            }
          }
        }
      ]
    }
  }
}

Beispiel für Mikrodaten

Preisinformationen

Hier ein Beispiel für die priceSpecification-Property mit der Aufschlüsselung des Preises. Der Basistarif, Steuern wie die allgemeine Steuer und der Rabatt werden mit der UnitPriceSpecification-Komponente definiert. Legen Sie das Attribut name mit den Werten fest, die der Komponente UnitPriceSpecification entsprechen.

Der Gesamtpreis für den Aufenthalt sollte in der Property CompoundPriceSpecification angegeben werden. Die Aufschlüsselung des Preises sollte im Attribut priceComponent angegeben werden.

<div itemscope itemtype="https://schema.org/Hotel">
  <meta itemprop="name" content="ACME Hotel"/>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemscope itemtype="https://schema.org/PostalAddress" itemprop="address">
    <meta itemprop="addressCountry" content="US" />
    <meta itemprop="addressLocality" content="Mountain View" />
    <meta itemprop="addressRegion" content="Santa Clara" />
    <meta itemprop="postalCode" content="94040" />
    <meta itemprop="streetAddress" content="123 Main street" />
  </div>
  <div itemscope itemtype="https://schema.org/Offer   https://schema.org/LodgingReservation"  itemprop="makesOffer">
    <meta itemprop="checkinTime" content="2023-03-10 15:00:00" />
    <meta itemprop="checkoutTime" content="2023-03-16 10:00:00"/>
    <div itemscope itemtype="https://schema.org/CompoundPriceSpecification"   itemprop="priceSpecification">
    <meta itemprop="price" content="1222.74" />
    <meta itemprop="priceCurrency" content="USD" />
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"    itemprop="priceComponent">
        <meta itemprop="name" content="" />
        <meta itemprop="price" content="1150" />
        <meta itemprop="priceCurrency" content="USD" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"  itemprop="priceComponent">
        <meta itemprop="name" content="GenericTax" />
        <meta itemprop="price" content="172.74" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="GenericTax" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"   itemprop="priceComponent">
        <meta itemprop="name" content="Discount" />
        <meta itemprop="price" content="-100" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="Discount" />
      </div>
    </div>
  </div>
</div>

hasMerchantReturnPolicy Unterkunft

Mit dieser Property werden die Erstattungsrichtlinien des Händlers in den Reiseplänen angegeben.

    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }

Syntax

hasMerchantReturnPolicy hat die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": { ... },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }
  }
}

Attribut

Die hasMerchantReturnPolicy-Eigenschaft sieht so aus:

Attribut Erforderlich? Typ Beschreibung
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

Die Erstattungsrichtlinien des Händlers. Partner sollten MerchantReturnPolicy.restockingFee verwenden, um Stornierungsbedingungen anzugeben, bei denen der volle Betrag für den Aufenthalt nicht erstattet wird.

Wenn hasMerchantReturnPolicy nicht angegeben oder leer gelassen wird, wird davon ausgegangen, dass der Betrag nicht erstattungsfähig ist. Sie können die Richtlinie für nicht erstattungsfähige Gebühren mit der Property returnPolicyCategory: MerchantReturnNotPermitted angeben.

Beispiel

Rückgabebedingungen

Das folgende Beispiel zeigt strukturierte Daten für ein Hotel mit Zimmerdetails und Gesamtpreis mit Steuern und Gebühren. In diesem Beispiel wird ein Aufenthalt angegeben, der bis zum 18. Dezember 2023 um 23:00 Uhr (UTC) kostenlos storniert werden kann. Partner sollten "MerchantReturnPolicy.restockingFee" verwenden, um Stornierungsbedingungen anzugeben, bei denen nicht der volle Betrag des Aufenthalts erstattet wird. Der Standardwert für restockingFee ist 0 $.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "description": "Beautiful resort in the outskirts of the city",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "priceSpecification": {...},
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "2023-12-18 23:00:00",
      "restockingFee": 0
    }
  }
}

eligibleCustomerType Unterkunft

Mit dieser Eigenschaft können Sie die Prämienprogramme für Kunden mit Hotelmitgliedschaften annotieren.

"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": "float",
    "priceCurrency": "currency"
 }

Syntax

Die eligibleCustomerType-Eigenschaft hat die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": { ... }
  }
}

Attribut

Die eligibleCustomerType-Eigenschaft sieht so aus:

Attribut Erforderlich? Typ Beschreibung
Offer.eligibleCustomerType Optional BusinessEntityType

Die Treuepunkteprogramme oder die Mitgliedervorteile, die Kunden angeboten werden.

Auf vielen Hotelseiten werden Mitgliedspreise zusammen mit öffentlichen Preisen angezeigt, um Nutzer zur Registrierung für Treuepunkteprogramme zu animieren. Preise, die auf bestimmte Zielgruppen beschränkt sind, z. B. Mitgliedspreise, können durch Festlegen der Offer.eligibleCustomerType-Property angegeben werden.

Beispiele

Vorzugspreise für Mitglieder

Im Folgenden finden Sie ein einfaches Beispiel für die Angabe von Mitgliedspreisen oder Tarifen mit Einschränkungen für Treuepunkteprogramme. Der Kunde ist Mitglied des Prämienprogramms des Hotels.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "name": "RewardsMember",
    "checkinTime": "2023-12-15 16:00:00",
    "checkoutTime": "2023-12-20 11:00:00",
    "eligibleCustomerType": "RewardsMember",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1342.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1069.98,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "ResortFee",
          "price": 100,
          "priceCurrency": "USD"
        }
      ]
    }
  }
}

Vorzugspreise für Mitglieder und reguläre Preise

Hier sehen Sie ein Beispiel für Anmerkungen zu regulären Preisen und Mitgliedspreisen. Die Mitgliedspreise werden zuerst aufgeführt, gefolgt von den regulären Preisen.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "identifier": "hotel-id-1234",
  "address": {...},
  "makesOffer": [
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "RewardsMember",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "eligibleCustomerType": "RewardsMember",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1342.74,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1069.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 172.74,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    },
    {
      "@type": ["Offer", "LodgingReservation"],
      "name": "regularRate",
      "checkinTime": "2023-12-15 16:00:00",
      "checkoutTime": "2023-12-20 11:00:00",
      "priceSpecification": {
        "price": 1572.24,
        "priceCurrency": "USD",
        "priceComponent": [
          {
            "@type": "UnitPriceSpecification",
            "name": "Base rate",
            "price": 1369.98,
            "priceCurrency": "USD"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "GenericTax",
            "price": 202.26,
            "priceCurrency": "currency"
          },
          {
            "@type": "UnitPriceSpecification",
            "name": "ResortFee",
            "price": 100,
            "priceCurrency": "USD"
          }
        ]
      }
    }
  ]
}

Strukturierte Daten vom Typ „HotelRoom“

offers Unterkunft

offers-Anmerkungen werden verwendet, um Ihre Zimmerrouten zu kennzeichnen. Verwenden Sie das Attribut offers für die Angabe von HotelRoom.

"offers": {
  "@type": ["Offer", "LodgingReservation"],
  "identifier": "hotel-room-id-1234",
  "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
  "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
  "priceSpecification": {...}
}

Syntax

Die offers-Eigenschaft hat die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      ...
    }
  }
}

Attribute

Im Folgenden sind die offers-Properties aufgeführt:

Attribut Erforderlich? Typ Beschreibung
offers Required Offer and LodgingReservation

Die Spezifikation des Zimmerpreises für den angegebenen Reiseplan.

Das Attribut offers kann ein Array mit Angeboten enthalten.

LodgingReservation.checkinTime Required DateTime

Die Check-in-Zeit in der Zeitzone des Nutzers. Wenn Ihre Zeitzone nicht angegeben ist, wird die Zeitzone des Hotels berücksichtigt.

LodgingReservation.checkoutTime Required DateTime

Die Check-out-Zeit in der Zeitzone des Nutzers. Wenn Ihre Zeitzone nicht angegeben ist, wird die Zeitzone des Hotels berücksichtigt.

Beispiel

Angebote

Im Folgenden finden Sie ein einfaches Beispiel für die Angabe von offers in der Property HotelRoom.

{
  "@context": "https://schema.org",
  "@type": "HotelRoom",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

Attribut bed und occupancy

Mit der Property bed wird der Betttyp und die Anzahl der im Zimmer verfügbaren Betten angegeben. Mit der occupancy-Property wird die Anzahl der Gäste im Zimmer angegeben. Die Properties bed und occupancy können mit der Property HotelRoom angegeben werden.

"@type": "Hotel",
"identifier": "hotel-id-1234",
"containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "identifier": "hotel-room-id",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  }
}

Syntax

Die Attribute bed und occupancy haben die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "room-name",
    "identifier": "hotel-room-id-1234",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": "integer",
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": "integer"
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
      "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": "float",
        "priceCurrency": "currency",
        "priceComponent": {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      }
    }
  }
}

Die Properties bed und occupancy können nur mit der Property HotelRoom festgelegt werden. Zimmerspezifische Informationen, einschließlich der Preise auf Zimmerebene, können über die containsPlace-Property in die Hotel-Property aufgenommen werden. Weitere Informationen finden Sie im Beispiel für die Hotel- und HotelRoom-Spezifikation.

Attribute

Die Properties bed und occupancy:

Attribut Erforderlich? Typ Beschreibung
HotelRoom.bed Optional (Recommended) bed

Die Art der Betten in der Unterkunft und die Anzahl der Personen im Zimmer.

Folgende Werte werden unterstützt:

  • CALIFORNIA_KING
  • KING
  • QUEEN
  • FULL
  • DOUBLE
  • SEMI_DOUBLE
  • SINGLE
HotelRoom.occupancy Optional (Recommended) QuantitativeValue

Die Anzahl der Gäste im Hotelzimmer. Der Typ für die Belegung ist QuantitativeValue.

Die Belegung ist eine explizite Property von HotelRoom, nicht von einem bestimmten Offer. Preise sollten nur für die angeforderte Belegung getaggt werden.

containsPlace Optional (Recommended) LocationFeatureSpecification

Damit werden die Raten auf Zimmerniveau, die bestimmten Zimmern zugeordnet sind, mit Anmerkungen versehen. Sie können auch die Ausstattung des Zimmers angeben.

containsPlaceWeitere Informationen zur Verwendung von containsPlace in der Eigenschaft amenityFeature.

Beispiele

HotelRoom

Im Folgenden finden Sie ein einfaches Beispiel für Betten und Belegungen für eine Zimmerbeschreibung.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    }
  }
}

Hotel und HotelRoom

Im Folgenden sehen Sie ein Beispiel für die Annotation der Attribute Hotel und HotelRoom zusammen mit bed, occupancy und priceSpecification.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "hotel-name",
  "identifier": "hotel-id-1234",
  "containsPlace": {
    "@type": ["HotelRoom", "Product"],
    "name": "Deluxe Room, 1 King Bed",
    "identifier": "hotel-room-id",
    "bed": {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": true
    },
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}

HotelRoom priceSpecification Unterkunft

Die Preisspezifikation für Hotelzimmer ähnelt der Preisspezifikation für Hotels.Der Unterschied besteht darin, dass Zimmerpreise mit der Property Product.offers anstelle der Property Hotel.makesOffer angegeben werden.

"priceSpecification": {
  "@type": "CompoundPriceSpecification",
  "price": "float",
  "priceCurrency": "currency",
  "priceComponent": {
    "@type": "UnitPriceSpecification",
    "name": "GenericTax",
    "price": "float",
    "priceCurrency": "currency"
  }
  ...
}

Syntax

Das Attribut priceSpecification für Hotelzimmer hat die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  ...
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "",
          "price": "float",
          "priceCurrency": "currency"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": "float",
          "priceCurrency": "currency",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

Attribute

Im Folgenden sind die HotelRoom priceSpecification-Properties aufgeführt:

Attribut Erforderlich? Typ Beschreibung
Hotel.Offer.priceSpecification.price Required float

Der Preis pro Zimmer einschließlich der Steuern und Gebühren für die Product.

Der Google-Preis sollte immer auf Ihrer Landingpage zusammen mit Ihren vollständigen Preisdetails angegeben werden. Wenn Sie Rateninformationen mit Anmerkungen versehen, können Sie die Preisgenauigkeit prüfen. Google akzeptiert sowohl Preise auf Hotelebene als auch auf Zimmerebene.

Hotel.Offer.priceSpecification.priceCurrency Required currency Ein Code aus drei Buchstaben für die Währung des angegebenen Preises. Beispiel: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Die Aufschlüsselung des Gesamtpreises einschließlich Steuern und Gebühren für das Hotelzimmer und die Belegung mit Angeboten, die mit HotelRoom und Product verknüpft sind. Es gibt zwei Arten von strukturierten Preisdaten:

  • CompoundPriceSpecification bietet Preisaufschlüsselungen, die Folgendes enthalten:

    • Basispreis: Der Grundpreis pro Nacht

    • Steuern pro Aufenthalt: Der Preis pro Nacht mit Steuern.

    • Gebühren pro Person: Der Preis pro Nacht und Belegung.

      occupancy ist eine explizite Property von HotelRoom, nicht für ein bestimmtes Offer. Preise sollten nur für die angeforderte Belegung getaggt werden.

    • Rabatt: Der Abzugsbetrag.

  • Mit UnitPriceSpecification wird der Typ der Gebühren angegeben. Sie sollten PriceComponentTypeEnumeration -Werte angeben, um zusätzliche Gebühren festzulegen.

    Die Werte für PriceComponentTypeEnumeration sind:

    • Discount: Der generische Rabatt auf den Preis.

    • ResortFee: Dies ist eine zusätzliche Gebühr, die im Hotel bezahlt werden muss. Das kann je nach Art der Unterkunft variieren.

    • GenericTax: Es handelt sich um eine zusätzliche sonstige Steuer.

    • ServiceFee: Dies ist eine zusätzliche Gebühr, die vom Buchungskanal erhoben wird.

    Sie müssen die Werte im Attribut name von UnitPriceSpecification festlegen. Alle Werte sind erforderlich, wenn Sie die Aufschlüsselung des Preises einfügen möchten. Sie müssen in der Komponente UnitPriceSpecification angegeben werden.

Beispiele

Gesamtzimmerpreis

Im Folgenden finden Sie ein einfaches Beispiel für die Definition des Gesamtpreises für die Aufenthaltsdauer und des Preises pro Belegung.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1232.74,
      "priceCurrency": "USD"
    }
  },
  ...
}

Aufschlüsselung des Zimmerpreises

Hier ein Beispiel für den Preis pro Zimmer oder Plan. Die Preisaufschlüsselung wird für den Zimmertyp wie Deluxe-Zimmer und den Typ bed und occupancy wie KING- und SINGLE-Betten und eine Belegung von 2 Gästen definiert.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room King, 1 Single Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "bed": [
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "KING"
      },
      {
        "@type": "BedDetails",
        "numberOfBeds": 1,
        "typeOfBed": "SINGLE"
      }
    ],
    "occupancy": {
      "@type": "QuantitativeValue",
      "value": 2
    },
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "Base rate",
          "price": 1150,
          "priceCurrency": "USD"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": 172.74,
          "priceCurrency": "USD",
          "priceComponentType": "GenericTax"
        },
        {
          "@type": "UnitPriceSpecification",
          "name": "Discount",
          "price": -100,
          "priceCurrency": "USD",
          "priceComponentType": "Discount"
        }
      ]
    }
  }
}

includesObject Unterkunft

Mit dieser Eigenschaft werden ratenspezifische Dienstleistungen angegeben, die im Hotel oder Zimmer angeboten werden, z. B. Mahlzeitenoptionen und Parkservice. Sie können includesObject entweder im Attribut Hotel oder im Attribut HotelRoom angeben.

{
  "includesObject": [
    {
      "@type": "TypeAndQuantityNode",
      "typeOfGood": {
        "@type": "Service",
        "name": "Valet"
      }
    },
    {
      "@type": "TypeAndQuantityNode",
      "amountOfThisGood": "float",
      "unitText": "currency",
      "typeOfGood": {
        "@type": "FoodService",
        "name": "MealCredit"
      }
    }
  ]
}

Syntax

Das includesObject hat die folgende Syntax für ratenspezifische Dienste, die im Zimmer verfügbar sind:

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  ...
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": "float",
        "unitText": "currency",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

Attribut

Das includesObject hat die folgende Eigenschaft:

Attribut Erforderlich? Typ Beschreibung
Offer.includesObject Optional TypeAndQuantityNode

Die im Hotel oder Zimmer angebotenen Dienstleistungen.

Ratenbezogene Funktionen sind im Attribut includesObject enthalten. Im Namensfeld auf "TypeAndQuantityNode.typeOfGood" sollte die Art der Dienstleistung angegeben werden, z. B. Parkservice oder Mahlzeitenservice.

Ratenbezogene Funktionen können auch in Angeboten auf Basisebene enthalten sein oder als Add-ons gegen Aufpreis angegeben werden.

Für includesObject ist ein Wert vom Typ TypeAndQuantityNode erforderlich:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Beispiel

Dienste

Im Folgenden finden Sie ein einfaches Beispiel für ratenspezifische Funktionen für Parkservice und Gastronomie. Ratenbezogene Funktionen sollten mit der Property "Offer.includesObject" angegeben werden. Im Feld „name“ in "TypeAndQuantityNode.typeOfGood" sollte der Diensttyp angegeben werden.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "identifier": "rate-plan-id-of-member-rate",
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": 1222.74,
      "priceCurrency": "USD"
    },
    "includesObject": [
      {
        "@type": "TypeAndQuantityNode",
        "typeOfGood": {
          "@type": "Service",
          "name": "Valet"
        }
      },
      {
        "@type": "TypeAndQuantityNode",
        "amountOfThisGood": 50,
        "unitText": "USD",
        "typeOfGood": {
          "@type": "FoodService",
          "name": "MealCredit"
        }
      }
    ]
  }
}

availability Unterkunft

Die Property offer.availability wird verwendet, um die ausverkauften Routen für die Hotelzimmer zu kennzeichnen.

"offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
}

Syntax

Die availability-Eigenschaft hat die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  ...
  "@type": ["HotelRoom", "Product"],
  "name": "room-type",
  "identifier": "hotel-room-id-1234",
  "bed": {
    "@type": "BedDetails",
    "numberOfBeds": "integer",
    "typeOfBed": "KING"
  },
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": "integer"
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
  }
}

Attribut

Die availability-Property:

Attribut Erforderlich? Typ Beschreibung
Offer.availability Optional ItemAvailability

Die Verfügbarkeit des Hotels oder Zimmers.

Die Raten werden aus schema.org/Offer extrahiert und die Rateninformationen werden nicht mit schema.org/Hotel oder schema.org/HotelRoom erstellt. Das bedeutet, dass auch für ausverkaufte Reisepläne ein Angebot vorhanden sein muss.

Ein Angebot ohne priceSpecification gilt als nicht verfügbar. Nicht verfügbare Angebote sollten als "Offer.availability= https://schema.org/SoldOut" angegeben werden.

Offer.availability muss nicht angegeben werden, wenn das Angebot mit einem gültigen priceSpecification. versehen ist.

Beispiel

Verfügbarkeit

Das folgende Beispiel zeigt, wie die Nichtverfügbarkeit von Hotelzimmern angegeben wird. Geben Sie den Betttyp, die Anzahl der Betten und die Belegungsdetails für das angegebene Zimmer an.

{
  "@context": "https://schema.org",
  "@type": ["HotelRoom", "Product"],
  "name": "Deluxe Room, 1 King Bed",
  "identifier": "hotel-room-id-1234",
  "bed": [
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "KING"
    },
    {
      "@type": "BedDetails",
      "numberOfBeds": 1,
      "typeOfBed": "SINGLE"
    }
  ],
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 2
  },
  "offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "2023-03-10 15:00:00",
    "checkoutTime": "2023-03-16 10:00:00",
    "availability": "https://schema.org/SoldOut",
    "priceSpecification": {...}
  }
}

amenityFeature Unterkunft

Ausstattungsmerkmale können entweder im Typ Hotel oder HotelRoom mit der Property amenityFeature angegeben werden. Verwenden Sie die Property containsPlace, um die im Zimmer verfügbaren Annehmlichkeiten anzugeben.

{
  "@type": "Hotel",
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "HH:mm:ss",
        "closes": "HH:mm:ss"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": "boolean"
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ]
  }
}

Syntax

Die Eigenschaften amenityFeature und containsPlace haben die folgende Syntax:

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  ...
  "amenityFeature": {
    "@type": "LocationFeatureSpecification",
    "name": "HotTub",
    "hoursAvailable": {
      "@type": "OpeningHoursSpecification",
      "opens": "HH:mm:ss",
      "closes": "HH:mm:ss"
    }
  },
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": {
      "@type": "LocationFeatureSpecification",
      "name": "Minibar",
      "value": "boolean"
    }
  }
}

Ausstattung

Die folgenden Ausstattungsmerkmale sind in der Property name zulässig und definiert.

Attribut Erforderlich? Typ Beschreibung
amenityFeature.AC Optional boolean Ob die Unterkunft über eine Klimaanlage verfügt.
amenityFeature.AirportShuttle Optional boolean Gibt an, ob der Anbieter den Transport zum und vom Flughafen oder zu anderen Terminals organisiert.
amenityFeature.Balcony Optional boolean Ob die Unterkunft einen Balkon hat.
amenityFeature.BeachAccess Optional boolean Ob die Unterkunft Zugang zu einem öffentlichen Strand in der Nähe hat.
amenityFeature.ChildFriendly Optional boolean Ob die Unterkunft für Kinder geeignet ist.
amenityFeature.Crib Optional boolean Ob die Unterkunft ein Kinderbett bereitstellt.
amenityFeature.Elevator Optional boolean Ob die Unterkunft über einen Fahrstuhl verfügt.
amenityFeature.FirePlace Optional boolean Ob die Unterkunft einen Kamin hat.
amenityFeature.FreeBreakfast Optional boolean Ob das Frühstück für alle Gäste im Preis inbegriffen ist. Verwenden Sie Ratenfunktionen, um anzugeben, ob das Frühstück nur für bestimmte Tarife inbegriffen ist.
amenityFeature.GymFitnessEquipment Optional boolean Ob die Unterkunft einen Fitnessraum oder Fitnessgeräte hat.
amenityFeature.Heating Optional boolean Ob die Unterkunft eine Heizung hat.
amenityFeature.HotTub Optional boolean Ob die Unterkunft einen Whirlpool hat.
amenityFeature.InstantBookable Optional boolean Gibt an, ob die Unterkunft während des Bezahlvorgangs sofort gebucht werden kann. Alternativ muss auf eine Bestätigung gewartet werden.
amenityFeature.IroningBoard Optional boolean Ob die Unterkunft Bügelbretter hat.
amenityFeature.Kitchen Optional boolean Ob die Unterkunft eine Küche hat.
amenityFeature.Microwave Optional boolean Ob in der Unterkunft eine Mikrowelle verfügbar ist.
amenityFeature.OpenAirBath(Hotels only) Optional boolean Ob die Unterkunft über ein Bad im Freien verfügt. Wenn das Bad auf Zimmerebene angegeben wird, sollte es nur für die Zimmerbewohner zugänglich sein.
amenityFeature.OutdoorGrill Optional boolean Ob die Unterkunft einen Grill hat.
amenityFeature.OvenStove Optional boolean Ob die Unterkunft einen Herd hat.
amenityFeature.Patio Optional boolean Ob die Unterkunft eine Terrasse hat.
amenityFeature.Pool Optional boolean Ob die Unterkunft einen Pool hat.
amenityFeature.PrivateBeachAccess Optional boolean Ob die Unterkunft einen eigenen Zugang zu einem nicht öffentlichen Strand hat.
amenityFeature.SelfCheckinCheckout Optional boolean Ob die Unterkunft den eigenständigen Check-in und Check-out unterstützt.
amenityFeature.WasherDryer Optional boolean Ob in der Unterkunft Waschmaschinen vorhanden sind.
amenityFeature.Wifi Optional boolean Ob die Unterkunft WLAN hat.
amenityFeature.Smoking Optional boolean Ob in der Unterkunft geraucht werden darf.
amenityFeature.InternetType Optional Enum

Die Art des Internetangebots, das für die Unterkunft verfügbar ist.

Unterstützte Werte:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

Die Art der Parkplätze für die Unterkunft.

Unterstützte Werte:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

Der Pooltyp, der für die Unterkunft verfügbar ist.

Unterstützte Werte:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Gibt an, ob der Raum im japanischen Stil gestaltet ist.

Unterstützte Werte:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Die Lizenznummer des Unternehmens, die für Unterkünfte in bestimmten Regionen der Welt angezeigt werden muss. Sie kann wiederholt werden. Wenn mehrere Lizenzen vorhanden sind, empfehlen wir, den Inhaber oder die Autorisierung der Lizenz hinzuzufügen. Beispiel: "Paris: 123456ABC"

Attribute

Im Folgenden sind die amenityFeature-Properties aufgeführt:

Attribut Erforderlich? Typ Beschreibung
amenityFeature Optional LocationFeatureSpecification

Die Ausstattung des Hotels oder des Zimmers. Sie kann mit der Property amenityFeature angegeben werden . Die Ausstattung muss allen Gästen im Hotel unabhängig vom ausgewählten Preisplan zur Verfügung stehen. amenityFeature wird mit dem Property-Wert LocationFeatureSpecification angegeben.

Ausstattungsmerkmale können entweder auf der Hotel- oder der HotelRoom-Ebene angegeben werden.

containsPlace Optional LocationFeatureSpecification

Die Ausstattung, die allen Hotelgästen im Hotel oder Zimmer zur Verfügung steht. Sie kann mit amenityFeature angegeben werden . Die Ausstattung muss allen Gästen im Hotelzimmer unabhängig vom ausgewählten Preisplan zur Verfügung stehen.

Hotel.containsPlace.amenityFeature sind die Annehmlichkeiten, die im Hotel angeboten werden.

HotelRoom.containsPlace.amenityFeature sind die Annehmlichkeiten, die im Zimmer zur Verfügung stehen.

Beispiel

Ausstattung von Hotel und Zimmer

Das folgende Beispiel zeigt ein Hotel mit einem Pool, der von 10:00 bis 22:00 Uhr geöffnet ist, und ohne Fitnessraum. Das Hotelzimmer ist ein Nichtraucherzimmer und hat eine Minibar.

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "ACME Hotel",
  "address": { ... },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "HotTub",
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "opens": "10:00:00",
        "closes": "22:00:00"
      }
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "GymFitnessEquipment",
      "value": false
    }
  ],
  "containsPlace": {
    "@type": "HotelRoom",
    "amenityFeature": [
      {
        "@type": "LocationFeatureSpecification",
        "name": "Minibar",
        "value": true
      },
      {
        "@type": "LocationFeatureSpecification",
        "name": "Smoking",
        "value": false
      }
    ],
    "offers": {
      "@type": ["Offer", "LodgingReservation"],
      "identifier": "rate-plan-id-of-member-rate",
      "checkinTime": "2023-03-10 15:00:00",
      "checkoutTime": "2023-03-16 10:00:00",
      "priceSpecification": {
        "@type": "CompoundPriceSpecification",
        "price": 1222.74,
        "priceCurrency": "USD"
      }
    }
  }
}