Dokumentacja danych strukturalnych dotyczących ceny hotelu

Na tej stronie znajdziesz informacje o dodawaniu znaczników danych strukturalnych do danych o cenach hoteli.

Przegląd

Dane strukturalne dotyczące cen hoteli służą do wyjaśniania, weryfikowania i szczegółowego wyświetlania cen hoteli podanych w Twojej witrynie niezależnie od interfejsu użytkownika. Obejmuje to również cenę podstawową, stawki, pokoje, opłaty i podatki oraz pola związane z cenami.

Google zaleca partnerom dodawanie do stron internetowych standardowych danych strukturalnych, które są czytelne dla robotów indeksujących. Dane te są udostępniane przez schema.org i umożliwiają dokładne pobieranie cen ze stron internetowych.

Pozwala to na skalowanie weryfikacji dokładności cen poprzez zwiększenie niezawodności robotów. Zyskasz dzięki temu większą liczbę weryfikacji dokładności cen, możliwość bezpośredniego debugowania problemów z dokładnością cen oraz spójny wynik dokładności cen.

Jeśli dopiero zaczynasz, dowiedz się więcej o słownictwie i formacie uporządkowanych danych.

Usługa Google Hotels zaleca format JSON-LD do dodawania adnotacji do stron internetowych. Więcej informacji o innych dopuszczalnych formatach znajdziesz w sekcji Obsługiwane formaty. Ta dokumentacja zawiera szczegółowe informacje referencyjne dotyczące implementacji uporządkowanych danych w przypadku hoteli.

Uporządkowane dane Hotel służą do oznaczania pól związanych z hotelami na stronie internetowej. Uporządkowane dane Hotel mają te właściwości:

HotelRoom dane strukturalne służą do dodawania adnotacji do pól dotyczących pokoju na stronie internetowej.

Uporządkowane dane HotelRoom mają te właściwości:

Uporządkowane dane dotyczące hotelu

name i address

Właściwości nameaddress służą do dodawania adnotacji do nazwy i lokalizacji hotelu. Właściwości nameaddress:

  "@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."
    },

Składnia

Właściwości nameaddress używają tej składni:

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"]
    ...
  }
}

Właściwości

Właściwości nameaddress:

Właściwość Wymagany? Typ Opis
Hotel.name Required string Nazwa hotelu
Hotel.identifier Required string

Identyfikator hotelu partnera.

Identyfikator musi być niepowtarzalnym ciągiem znaków dla każdego hotelu i dokładnie odpowiadać ciągowi znaków używanemu w pliku danych o cenach.

Hotel.address Optional PostalAddress Adres lub lokalizacja hotelu.

Przykłady

Imię i nazwisko oraz adres

Oto podstawowy przykład dodawania adnotacji nameaddress:

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

Adnotacje makesOffer służą do oznaczania planów podróży do hoteli.

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

Składnia

Właściwość makesOffer ma tę składnię:

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

Właściwości

Oto właściwości makesOffer:

Właściwość Wymagany? Typ Opis
makesOffer Required Offer and LodgingReservation

Oferty hoteli dla danego planu podróży.

Właściwość makesOffer może zawierać tablicę ofert.

LodgingReservation.checkinTime Required DateTime

Godzina zameldowania w strefie czasowej użytkownika. Jeśli Twoja strefa czasowa nie jest wymieniona, przyjmuje się strefę czasową hotelu.

LodgingReservation.checkoutTime Required DateTime

Godzina wymeldowania w strefie czasowej użytkownika. Jeśli Twoja strefa czasowa nie jest wymieniona, przyjmuje się strefę czasową hotelu.

Przykład

makesOffer

Poniżej znajdziesz podstawowy przykład adnotacji do ofert hoteli. Możesz określić wiele ofert dla planu podróży, ale najpierw podaj stawkę wyświetlaną przez Google, a potem inne stawki. Podana kwota ceny zawiera wszystkie obowiązujące podatki.

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

Ta właściwość służy do dodawania adnotacji do informacji o cenach hoteli lub pokoi hotelowych. Aby dodać adnotacje do cen i podatków, musisz podać 2 dodatkowe właściwości. Aby określić łączne informacje o cenach, takie jak stawka podstawowa, podatki i rabaty, użyj elementu CompoundPriceSpecification. Użyj UnitPriceSpecification, aby określić dodatkowe podatki lub specjalne rodzaje opłat, takie jak ResortFee, GenericTax i ServiceFee. Usługa priceSpecification jest połączona z usługą Offer.

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

Składnia

Właściwość Hotel priceSpecification ma tę składnię:

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

Mikrodane

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

Właściwości

Oto właściwości hotel priceSpecification:

Właściwość Wymagany? Typ Opis
Hotel.Offer.priceSpecification.price Required float

Łączna cena hotelu z uwzględnieniem podatków i opłat.

Cena w Google powinna być zawsze oznaczona na stronie docelowej wraz ze szczegółami ceny. Dodawanie adnotacji do szczegółów stawek umożliwia sprawdzanie dokładności cen. Google akceptuje ceny na poziomie hotelu i na poziomie pokoju.

Hotel.Offer.priceSpecification.priceCurrency Required currency Trzyliterowy kod waluty określonej ceny. Np. "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Szczegółowy rozkład łącznej ceny, w tym podatki i opłaty hotelowe. Istnieją 2 rodzaje danych strukturalnych dotyczących ceny:

  • CompoundPriceSpecification podaje szczegółowe informacje o cenach, w tym:

    • Cena podstawowa: podstawowa cena za noc.

    • Podatki za pobyt: cena za noc z podatkami.

    • Opłaty za osobę: cena za noc za osobę.

    • Rabat: kwota odliczenia.

  • UnitPriceSpecification służy do określania rodzaju opłat. Wartości PriceComponentTypeEnumeration należy podać w celu określenia dodatkowych opłat.

    Wartości w polu PriceComponentTypeEnumeration to:

    • Discount: ogólny rabat na cenę.

    • ResortFee: jest to dodatkowa opłata, którą należy uiścić w hotelu. Może się różnić w zależności od typu obiektu noclegowego.

    • GenericTax: jest to dodatkowy podatek różnego rodzaju.

    • ServiceFee: jest to dodatkowa opłata pobierana przez kanał rezerwacji.

    • TransferFee: jest to obowiązkowa opłata za transport do hotelu, pobierana przez hotel lub kanał rezerwacji.

Wartości musisz ustawić we właściwości priceComponentType . Jeśli zdecydujesz się uwzględnić UnitPriceSpecification, wszystkie wartości są wymagane i muszą być określone we właściwości UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Punkt płatności w hotelu.Procesy płatności w hotelu obejmują ceny, które są pobierane podczas wymeldowania na stronie rezerwacji i w hotelu podczas zameldowania.

Aby wskazać punkt płatności, użyj właściwości potentialAction , która jest dołączona do pola PayActionrecipient”. Więcej informacji o właściwości recipient znajdziesz w artykule PayAction.

Google obsługuje te 2 ustawienia dotyczące odbiorcy PayAction:

  • recipient.@type = "OnlineBusiness" oznacza płatność pobraną w momencie rezerwacji przez sprzedawcę internetowego. Jest to ustawienie domyślne, jeśli nie określono wartości potentialAction.

  • recipient.@type = "Hotel" oznacza płatność pobraną w hotelu.

Przykłady

Przykłady JSON-LD

Cena

Oto podstawowy przykład dodawania danych strukturalnych dotyczących ceny do strony internetowej. Właściwość makesOffer może zawierać wiele ofert na poziomie hotelu.

Typy PostalAddress, takie jak addressCountry, postalCode, streetAddress i inne pola, są obowiązkowe, jeśli zdecydujesz się określić właściwość address. Stawka wyświetlana przez Google powinna być wymieniona jako pierwsza we właściwości makesOffer. Podana kwota ceny zawiera wszystkie obowiązujące podatki.

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

Szczegółowe informacje o cenie

Oto przykład właściwości priceSpecification z rozbiciem ceny: Stawka podstawowa, podatki, takie jak podatek ogólny, i rabat są definiowane za pomocą komponentu UnitPriceSpecification. Pamiętaj, aby ustawić pole priceComponentType na wartości odpowiadające komponentowi UnitPriceSpecification.

Łączna cena za cały pobyt powinna być określona we właściwości CompoundPriceSpecification. Szczegóły ceny należy podać we właściwości priceComponent.

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

Miejsce płatności

Poniżej znajdziesz przykład specyfikacji potentialAction w przypadku użycia typu odbiorcy PayAction.

Łączna cena pakietu wynosi 1170 PLN, a witryna online pobiera część łącznej ceny, czyli 1150 PLN, w momencie rezerwacji określonym za pomocą elementu "@type": "OnlineBusiness". Pozostałe 20 PLN użytkownik musi zapłacić w momencie zameldowania w hotelu, co jest określone za pomocą elementu @type": "Hotel".

Aby podzielić płatność na płatność w momencie rezerwacji i płatność w hotelu, musisz określić komponent potentialAction. Jeśli nie jest określony,payAction interpretuje płatność w momencie rezerwacji jako domyślną formę płatności.

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

Przykład mikrodanych

Szczegółowe informacje o cenie

Oto przykład właściwości priceSpecification z rozbiciem ceny: Stawka podstawowa, podatki, takie jak podatek ogólny, i rabat są definiowane za pomocą komponentu UnitPriceSpecification. Pamiętaj, aby ustawić właściwość name z wartościami odpowiadającymi komponentowi UnitPriceSpecification.

Łączna cena za cały pobyt powinna być określona we właściwości CompoundPriceSpecification. Szczegóły ceny należy podać we właściwości priceComponent.

<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 miejsce zakwaterowania

Ta właściwość służy do dodawania adnotacji do zasad zwrotów sprzedawcy w planach podróży.

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

Składnia

hasMerchantReturnPolicy ma następującą składnię:

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
    }
  }
}

Właściwość

Właściwość hasMerchantReturnPolicy:

Atrybut Wymagany? Typ Opis
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

Zasady zwrotów sprzedawcy. Partnerzy powinni używać elementu MerchantReturnPolicy.restockingFee , aby wskazywać zasady anulowania, które nie przewidują zwrotu pełnej kwoty za cały okres pobytu.

Jeśli nie podasz wartości hasMerchantReturnPolicy lub pozostawisz ją pustą, przyjmuje się, że kwota nie podlega zwrotowi. Zasady dotyczące braku możliwości zwrotu środków możesz określić za pomocą właściwości returnPolicyCategory: MerchantReturnNotPermitted.

Przykład

Zasady zwrotów

Oto podstawowy przykład danych strukturalnych dotyczących hotelu z informacjami o pokojach i cenie łącznej z podatkami i opłatami. Ten przykład oznacza pobyt, który można anulować bez opłat do 23:00 (UTC) 18 grudnia 2023 r. Partnerzy powinni używać symbolu "MerchantReturnPolicy.restockingFee", aby wskazywać zasady anulowania niezwracające pełnej kwoty za pobyt. Wartość domyślna parametru restockingFee to $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 miejsce zakwaterowania

Ta właściwość może służyć do dodawania adnotacji do programów nagród dla klientów, którzy są członkami programu lojalnościowego hotelu.

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

Składnia

Właściwość eligibleCustomerType ma tę składnię:

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

Właściwość

Właściwość eligibleCustomerType:

Atrybut Wymagany? Typ Opis
Offer.eligibleCustomerType Optional BusinessEntityType

Programy lojalnościowe lub nagrody dla uczestników oferowane klientom.

Wiele stron hoteli wyświetla ceny dla klientów z członkostwem wraz z cenami publicznymi, aby zachęcić użytkowników do rejestracji w programach lojalnościowych. Ceny ograniczone do określonych odbiorców, np. ceny dla uczestników, można określić, ustawiając właściwość Offer.eligibleCustomerType.

Przykłady

Stawki członkowskie

Poniżej znajdziesz podstawowy przykład specyfikacji ceny dla uczestników programu lub ceny ograniczonej dla programów lojalnościowych. Klient jest uczestnikiem programu lojalnościowego hotelu.

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

Ceny dla członków i ceny standardowe

To przykład adnotacji dotyczących zarówno cen regularnych, jak i cen dla uczestników programu. Ceny dla uczestników programu są podane jako pierwsze, a potem ceny regularne.

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

Uporządkowane dane HotelRoom

offers miejsce zakwaterowania

Adnotacje offers służą do oznaczania planów podróży dotyczących pokoi. W przypadku specyfikacji HotelRoom należy użyć właściwości offers.

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

Składnia

Właściwość offers ma tę składnię:

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",
      ...
    }
  }
}

Właściwości

Oto właściwości offers:

Właściwość Wymagany? Typ Opis
offers Required Offer and LodgingReservation

Specyfikacja ceny pokoju dla danego planu podróży.

Właściwość offers może zawierać tablicę ofert.

LodgingReservation.checkinTime Required DateTime

Godzina zameldowania w strefie czasowej użytkownika. Jeśli Twoja strefa czasowa nie jest wymieniona, przyjmuje się strefę czasową hotelu.

LodgingReservation.checkoutTime Required DateTime

Godzina wymeldowania w strefie czasowej użytkownika. Jeśli Twoja strefa czasowa nie jest wymieniona, przyjmuje się strefę czasową hotelu.

Przykład

Pixel

Oto podstawowy przykład określania offers we właściwości 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"
    }
  }
}

bedoccupancy

Właściwość bed służy do dodawania adnotacji o typie i liczbie łóżek dostępnych w pokoju. Właściwość occupancy służy do dodawania adnotacji o liczbie gości w pokoju. Właściwości bed i occupancy można określić za pomocą właściwości HotelRoom.

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

Składnia

Właściwości bedoccupancy mają tę składnię:

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"
        },
        ...
      }
    }
  }
}

Właściwości bedoccupancy można ustawić tylko za pomocą właściwości HotelRoom. Informacje dotyczące pokoju, w tym ceny na poziomie pokoju, można uwzględnić we właściwości Hotel za pomocą właściwości containsPlace. Zapoznaj się z przykładem specyfikacji Hotel i HotelRoom.

Właściwości

Właściwości bedoccupancy:

Właściwość Wymagany? Typ Opis
HotelRoom.bed Optional (Recommended) bed

Rodzaj łóżek w obiekcie i liczba osób, które mogą się w nim zatrzymać.

Obsługiwane wartości to:

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

Liczba gości w pokoju hotelowym. Typ zajętości to QuantitativeValue.

Zajętość jest wyraźną właściwością HotelRoom, a nie konkretnego Offer. Ceny powinny być tagowane tylko dla żądanej liczby osób.

containsPlace Optional (Recommended) LocationFeatureSpecification

Służy do dodawania adnotacji do stawek na poziomie pokoju powiązanych z określonymi pokojami. Można go też używać do określania udogodnień w pokoju.

Dowiedz się więcej o tym, jak używać containsPlace w właściwości amenityFeature.

Przykłady

HotelRoom

Poniżej znajdziesz podstawowy przykład łóżek i liczby osób w specyfikacji pokoju.

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

Poniżej znajdziesz przykład adnotacji właściwości HotelHotelRoom wraz z bed, occupancypriceSpecification.

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

Specyfikacja ceny pokoju hotelowego jest podobna do specyfikacji ceny hotelu.Różnica polega na tym, że ceny pokoi są określane za pomocą właściwości Product.offers zamiast właściwości Hotel.makesOffer.

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

Składnia

Właściwość priceSpecification w przypadku pokoi hotelowych ma następującą składnię:

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

Właściwości

Oto właściwości HotelRoom priceSpecification:

Właściwość Wymagany? Typ Opis
Hotel.Offer.priceSpecification.price Required float

Cena za pokój, w tym podatki i opłaty za Product.

Cena w Google powinna być zawsze oznaczona na stronie docelowej wraz ze szczegółami ceny. Dodawanie adnotacji do szczegółów stawek umożliwia sprawdzanie dokładności cen. Google akceptuje ceny na poziomie hotelu i na poziomie pokoju.

Hotel.Offer.priceSpecification.priceCurrency Required currency Trzyliterowy kod waluty określonej ceny. Np. "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Szczegółowy podział ceny całkowitej, w tym podatki i opłaty za pokój hotelowy i liczbę osób, z ofertami połączonymi z HotelRoom i Product. Istnieją 2 rodzaje danych strukturalnych dotyczących ceny:

  • CompoundPriceSpecification podaje szczegółowe informacje o cenach, w tym:

    • Cena podstawowa: podstawowa cena za noc.

    • Podatki za pobyt: cena za noc z podatkami.

    • Opłaty za osobę: cena za noc za osobę.

      occupancy jest właściwością jawną HotelRoom, a nie konkretnego Offer. Ceny powinny być tagowane tylko dla żądanej liczby osób.

    • Rabat: kwota odliczenia.

  • UnitPriceSpecification służy do określania rodzaju opłat. Wartości PriceComponentTypeEnumeration należy podać w celu określenia dodatkowych opłat.

    Wartości w polu PriceComponentTypeEnumeration to:

    • Discount: ogólny rabat na cenę.

    • ResortFee: jest to dodatkowa opłata, którą należy uiścić w hotelu. Może się różnić w zależności od typu obiektu noclegowego.

    • GenericTax: jest to dodatkowy podatek różnego rodzaju.

    • ServiceFee: jest to dodatkowa opłata pobierana przez kanał rezerwacji.

    Wartości musisz ustawić we właściwości name elementu UnitPriceSpecification. Jeśli zdecydujesz się uwzględnić podział ceny, wszystkie wartości są wymagane i muszą być określone w komponencie UnitPriceSpecification.

Przykłady

Łączna cena pokoju

Poniżej znajdziesz podstawowy przykład określania ceny łącznej za długość pobytu i ceny za osobę.

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

Szczegółowe informacje o cenie pokoju

Poniżej znajdziesz przykład ceny za pokój lub plan. Szczegółowy podział ceny jest określony dla typu pokoju, np. pokoju Deluxe, oraz typu bedoccupancy, np. łóżek KINGSINGLE oraz liczby gości – 2.

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

Ta właściwość służy do opisywania usług związanych z ceną, które są dostępne w hotelu lub pokoju, takich jak opcje posiłków i usługa parkowania. Możesz dodać adnotację do elementu includesObject we właściwości Hotel lub HotelRoom.

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

Składnia

includesObject ma następującą składnię w przypadku usług związanych z ceną dostępnych w pokoju:

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

Właściwość

Element includesObject ma tę właściwość:

Atrybut Wymagany? Typ Opis
Offer.includesObject Optional TypeAndQuantityNode

usługi świadczone w hotelu lub pokoju;

Funkcje związane z ceną są uwzględnione we właściwości includesObject. Pole nazwy w "TypeAndQuantityNode.typeOfGood" powinno być używane do określania typu usługi, np. usługi parkingowej lub gastronomicznej.

Funkcje związane z ceną mogą być też uwzględnione w ofertach podstawowych lub określone jako dodatki za dodatkową opłatą.

includesObject wymaga wartości typu TypeAndQuantityNode w tym formacie:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Przykład

Usługi

Poniżej znajdziesz podstawowy przykład funkcji związanych z cenami w przypadku usługi parkowania z obsługą i usług gastronomicznych. Funkcje związane z ceną należy określić za pomocą właściwości "Offer.includesObject". Pole name w "TypeAndQuantityNode.typeOfGood" powinno służyć do określania typu usługi.

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

Właściwość offer.availability służy do oznaczania wyprzedanych planów podróży w przypadku pokoi hotelowych.

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

Składnia

Właściwość availability ma tę składnię:

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

Właściwość

Właściwości availability:

Atrybut Wymagany? Typ Opis
Offer.availability Optional ItemAvailability

Dostępność hotelu lub pokoju.

Stawki są wyodrębniane z  schema.org/Offer, a informacje o stawkach nie są tworzone przy użyciu schema.org/Hotel ani schema.org/HotelRoom. Oznacza to, że nawet wyprzedane plany podróży muszą mieć ofertę.

Oferta bez wartości priceSpecification jest uznawana za niedostępną. Niedostępne oferty powinny być oznaczone jako "Offer.availability= https://schema.org/SoldOut".

Nie musisz określać parametru Offer.availability, jeśli oferta jest opatrzona prawidłowym adresem URL priceSpecification..

Przykład

Dostępność

Poniżej znajdziesz podstawowy przykład pokazujący niedostępność pokoju hotelowego. Podaj typ łóżka, liczbę łóżek i liczbę osób, które mogą się zmieścić w danym pokoju.

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

Udogodnienia można określić w ramach typu Hotel lub HotelRoom za pomocą właściwości amenityFeature. Aby określić udogodnienia w pokoju, użyj właściwości containsPlace.

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

Składnia

Właściwości amenityFeaturecontainsPlace mają tę składnię:

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

Udogodnienia

Te udogodnienia są dozwolone i zdefiniowane we właściwości name.

Atrybut Wymagany? Typ Opis
amenityFeature.AC Optional boolean Czy obiekt jest klimatyzowany.
amenityFeature.AirportShuttle Optional boolean Czy gospodarz zapewnia transport między hotelem a lotniskiem lub innymi terminalami.
amenityFeature.Balcony Optional boolean Czy obiekt ma balkon.
amenityFeature.BeachAccess Optional boolean Czy obiekt ma dostęp do publicznej plaży w pobliżu.
amenityFeature.ChildFriendly Optional boolean Czy obiekt jest odpowiedni dla dzieci.
amenityFeature.Crib Optional boolean Dostępność łóżeczka dziecięcego.
amenityFeature.Elevator Optional boolean Czy w obiekcie znajduje się winda.
amenityFeature.FirePlace Optional boolean Czy w obiekcie znajduje się kominek.
amenityFeature.FreeBreakfast Optional boolean Czy śniadanie jest wliczone w cenę dla wszystkich gości. Użyj funkcji ceny, aby wskazać, czy śniadanie jest wliczone tylko w przypadku określonych planów stawek.
amenityFeature.GymFitnessEquipment Optional boolean Czy w obiekcie znajduje się siłownia lub sprzęt do ćwiczeń.
amenityFeature.Heating Optional boolean Czy obiekt jest ogrzewany.
amenityFeature.HotTub Optional boolean Czy obiekt ma jacuzzi.
amenityFeature.InstantBookable Optional boolean Czy w procesie płatności można natychmiast zarezerwować pokój. Alternatywą jest oczekiwanie na zatwierdzenie.
amenityFeature.IroningBoard Optional boolean Czy w obiekcie znajduje się deska do prasowania.
amenityFeature.Kitchen Optional boolean Czy w obiekcie znajduje się kuchnia.
amenityFeature.Microwave Optional boolean Czy w obiekcie znajduje się kuchenka mikrofalowa.
amenityFeature.OpenAirBath(Hotels only) Optional boolean Czy w obiekcie znajduje się łaźnia na świeżym powietrzu. Jeśli jest określona na poziomie pokoju, łazienka powinna być prywatna i przeznaczona tylko dla osób zajmujących pokój.
amenityFeature.OutdoorGrill Optional boolean Czy obiekt ma grilla.
amenityFeature.OvenStove Optional boolean Czy w obiekcie znajduje się kuchenka.
amenityFeature.Patio Optional boolean Czy obiekt ma patio.
amenityFeature.Pool Optional boolean Czy obiekt ma basen.
amenityFeature.PrivateBeachAccess Optional boolean Czy obiekt ma specjalny dostęp do niepublicznej plaży.
amenityFeature.SelfCheckinCheckout Optional boolean Czy obiekt umożliwia samodzielne zameldowanie się i wymeldowanie.
amenityFeature.WasherDryer Optional boolean Czy w obiekcie znajdują się pralki.
amenityFeature.Wifi Optional boolean Czy w obiekcie jest Wi-Fi.
amenityFeature.Smoking Optional boolean Czy w obiekcie można palić.
amenityFeature.InternetType Optional Enum

Rodzaj internetu dostępnego w obiekcie.

Obsługiwane wartości to:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

Rodzaj parkingu dostępnego na terenie obiektu.

Obsługiwane wartości to:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

Rodzaj basenu dostępnego w obiekcie.

Obsługiwane wartości to:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Wskazuje, czy pokój jest urządzony w stylu japońskim.

Obsługiwane wartości to:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Numer licencji firmy, który ma być wyświetlany w przypadku obiektu w określonych regionach świata. Można go powtarzać. Jeśli istnieje kilka licencji, zalecamy dodanie właściciela lub urzędu wystawiającego licencję. Na przykład: "Paris: 123456ABC"

Właściwości

Oto właściwości amenityFeature:

Właściwość Wymagany? Typ Opis
amenityFeature Optional LocationFeatureSpecification

Udogodnienia dostępne w hotelu lub pokoju. Można ją określić za pomocą właściwości amenityFeature . Udogodnienia powinny być dostępne dla wszystkich gości hotelu niezależnie od wybranego planu cenowego. amenityFeature jest określana za pomocą wartości właściwości LocationFeatureSpecification.

Udogodnienia można określić na poziomie Hotel lub HotelRoom.

containsPlace Optional LocationFeatureSpecification

Udogodnienia dostępne w hotelu lub pokoju dla wszystkich gości. Można go określić za pomocą amenityFeature . Udogodnienia powinny być dostępne dla wszystkich gości w pokoju hotelowym niezależnie od wybranego planu cenowego.

Hotel.containsPlace.amenityFeature to udogodnienia dostępne w hotelu.

HotelRoom.containsPlace.amenityFeature to udogodnienia dostępne w pokoju.

Przykład

Udogodnienia w hotelu i pokoju

Oto przykład hotelu z basenem otwartym w godzinach 10:00–22:00, w którym nie ma siłowni. Pokój hotelowy jest dla niepalących i ma 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"
      }
    }
  }
}