Справочник структурированных данных о ценах на отели

На этой странице представлены технические характеристики и справочник терминов для разметки структурированных данных отелей Schema.org.

Обзор

Структурированные данные о ценах на отели предоставляют стандартизированный, машиночитаемый формат для объяснения, проверки и отображения цен на номера в отелях, указанных на вашем веб-сайте, независимо от визуального оформления. Это включает базовые цены, тарифы, характеристики номеров, детализированный перечень сборов и налогов, а также правила бронирования.

Google рекомендует добавлять к веб-страницам стандартизированные структурированные данные, предоставляемые Schema.org , для точного извлечения цен с ваших веб-страниц.

Стандартные структурированные данные позволяют масштабировать проверки точности цен за счет повышения надежности веб-краулеров, увеличения количества проверок точности цен, обеспечения прямой отладки проблем с точностью цен и поддержания стабильного показателя точности цен.

Если вы новичок в работе со структурированными данными, изучите подробнее терминологию и формат структурированных данных .

Google Hotels по умолчанию рекомендует использовать формат Microdata для аннотирования веб-страниц при проверке точности цен на отели. Формат JSON-LD устарел для проверки точности цен. Обратите внимание, что эта рекомендация относится исключительно к проверке точности цен на отели и не влияет на другие способы использования структурированных данных в Google (например, на расширенные результаты поиска Google). Чтобы узнать больше о форматах, поддерживаемых для общих функций поиска, см. раздел «Поддерживаемые форматы ». В этой документации содержится подробная справочная информация, касающаяся реализации структурированных данных в Google Hotels.

Структурированные данные Hotel используются для аннотирования полей, специфичных для данного отеля, на вашей веб-странице. Структурированные данные Hotel обладают следующими свойствами:

Структурированные данные HotelRoom используются для аннотирования полей, специфичных для каждого номера, на вашей веб-странице.

Структурированные данные HotelRoom обладают следующими свойствами:

Атрибуты навигации используются для объяснения поисковым роботам интерактивных элементов и состояний страниц. Для получения дополнительной информации см. раздел «Теги навигации» .

Структурированные данные отеля

К гостиничному комплексу относятся следующие объекты недвижимости.

свойства name и address

Свойства name и address используются для указания названия и местоположения отеля. Ниже перечислены свойства name и 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."
    },

Синтаксис

Свойства name и address используют следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">hotel-name</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">1234 Main St.</span>,
    <span itemprop="addressLocality">City Name</span>,
    <span itemprop="addressRegion">State Name</span>
    <span itemprop="postalCode">01234</span>
    <span itemprop="addressCountry">XX</span>
  </div>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
  </div>
</div>

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

Характеристики

Ниже приведены данные name и address :

Свойство Необходимый? Тип Описание
Hotel.name Required string Название отеля
Hotel.identifier Required string

Идентификатор отеля партнеров.

Идентификатор должен представлять собой уникальную строку для каждого отеля и точно совпадать со строкой, используемой в данных о ценах.

Hotel.address Optional PostalAddress Адрес или местоположение отеля.

Пример имени и адреса

Ниже приведён простой пример добавления аннотаций name и address :

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <h1 itemprop="name">Mountain Hotel</h1>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">Technikerstrasse 21</span>,
    <span itemprop="addressLocality">Innsbruck</span>,
    <span itemprop="addressRegion">Tyrol</span>
    <span itemprop="postalCode">6020</span>
    <span itemprop="addressCountry">AT</span>
  </div>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Аннотации makesOffer используются для разметки ваших маршрутов по отелям.

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

Синтаксис

Свойство makesOffer использует следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">hotel-name</span>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
    Check-out: <time itemprop="checkoutTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
    <meta itemprop="availability" content="https://schema.org/InStock"/>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      ...
    </div>
  </div>
</div>

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

Характеристики

Ниже перечислены свойства объекта makesOffer :

Свойство Необходимый? Тип Описание
makesOffer Required Offer and LodgingReservation

Предложение(я) отеля для данного маршрута.

Свойство makesOffer может содержать массив предложений.

LodgingReservation.checkinTime Required DateTime

Время заселения в часовом поясе пользователя. Если ваш часовой пояс не указан, используется часовой пояс отеля.

LodgingReservation.checkoutTime Required DateTime

Время выезда из отеля указывается в часовом поясе пользователя. Если ваш часовой пояс не указан, используется часовой пояс отеля.

пример makesOffer

Ниже приведён базовый пример того, как можно аннотировать предложения отелей. Вы можете указать несколько предложений для одного маршрута, но сначала следует указать тариф, отображаемый Google, а затем остальные тарифы. Указанная сумма цены включает все применимые налоги.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">Mountain Hotel</span>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>
  </div>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1200.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

{
  "@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 объекта

Это свойство используется для аннотирования информации о ценах на номера в вашем отеле. Для аннотирования цен и налогов требуются два дополнительных свойства. Для указания общей информации о ценах, такой как базовая ставка, налоги и скидки, следует использовать CompoundPriceSpecification. Для указания дополнительных налогов или специальных типов сборов, таких как ResortFee , GenericTax и ServiceFee , следует использовать UnitPriceSpecification . Свойство priceSpecification входит в состав свойства Offer .

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

Синтаксис

Свойство Hotel priceSpecification использует следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">hotel-name</span>
  ...
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name"></span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
        <meta itemprop="priceComponentType" content="GenericTax"/>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Discount</span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
        <meta itemprop="priceComponentType" content="Discount"/>
      </div>
    </div>
  </div>
</div>

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

Характеристики

Ниже представлены характеристики hotel priceSpecification :

Свойство Необходимый? Тип Описание
Hotel.Offer.priceSpecification.price Required float

Общая стоимость проживания в отеле, включая налоги и сборы.

На вашей целевой странице всегда следует указывать цену, указанную Google, вместе с полными данными о цене. Указание деталей цены позволяет проводить проверку точности цен. Google принимает как цены на номера в отеле, так и цены на отдельные номера.

Hotel.Offer.priceSpecification.priceCurrency Required currency Трехбуквенный код валюты для указанной цены. Например: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Общая разбивка стоимости проживания в отеле, включая налоги и сборы. Существует два типа данных о структуре цен:

  • CompoundPriceSpecification предоставляет подробную разбивку цен, включающую следующие данные:

    • Базовая цена: базовая стоимость за ночь.

    • Налоги за весь период проживания: цена за ночь с учетом налогов.

    • Стоимость проживания за одного человека: цена за ночь за одно проживание.

    • Скидка: Сумма вычета.

  • UnitPriceSpecification используется для указания типа платежей. Для указания дополнительных платежей следует указывать значения PriceComponentTypeEnumeration .

    Значения для PriceComponentTypeEnumeration следующие:

    • Discount : Общая скидка от цены.

    • ResortFee : это дополнительная плата, которую необходимо внести в отеле. Его размер может варьироваться в зависимости от типа объекта размещения.

    • GenericTax : Это дополнительный налог различного рода.

    • ServiceFee : это дополнительная плата, взимаемая каналом бронирования.

    • TransferFee : Это фактически обязательный сбор за трансфер до отеля, взимаемый либо отелем, либо каналом бронирования.

Необходимо задать значения в свойстве priceComponentType . Все значения обязательны, если вы решите включить UnitPriceSpecification , и их необходимо указать в свойстве UnitPriceSpecification .

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Пункт оплаты в отеле. Процессы оплаты в отеле включают цены, взимаемые при выезде с сайта бронирования и в отеле при заселении.

Для указания места платежа следует использовать свойство potentialAction , которое входит в состав поля " recipient " объекта PayAction . Для получения дополнительной информации о свойстве recipient см. раздел PayAction .

Google поддерживает следующие два параметра для получателя PayAction :

  • recipient.@type = "OnlineBusiness" обозначает платеж, взимаемый онлайн-продавцом во время бронирования. Это значение по умолчанию, если potentialAction не указано.

  • recipient.@type = "Hotel" обозначает платеж, полученный в отеле.

Примеры

Ниже приведены примеры спецификаций ценообразования в отелях.

Цена

Ниже приведён базовый пример добавления структурированных данных о ценах на вашу веб-страницу. В свойство makesOffer можно включить несколько предложений от разных отелей.

Если вы решите указать свойство address поля типа PostalAddress такие как addressCountry , postalCode , streetAddress и другие, являются обязательными. В свойстве makesOffer сначала должна быть указана цена, отображаемая Google. Указанная сумма цены включает все применимые налоги.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">Technikerstrasse 21</span>,
    <span itemprop="addressLocality">Innsbruck</span>,
    <span itemprop="addressRegion">Tyrol</span>
    <span itemprop="postalCode">6020</span>
    <span itemprop="addressCountry">AT</span>
  </div>

  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>
  </div>

  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1200.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Разбивка цен

Ниже приведён пример свойства priceSpecification с разбивкой цен. Базовая ставка, налоги, такие как общий налог и скидка, определяются с помощью компонента UnitPriceSpecification . Не забудьте установить поле priceComponentType значениями, соответствующими компоненту UnitPriceSpecification .

Общая стоимость за весь период проживания должна быть указана в свойстве CompoundPriceSpecification . Детализация цен должна быть указана в свойстве priceComponent .

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <h1 itemprop="name">ACME Hotel</h1>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">123 Main street</span>,
    <span itemprop="addressLocality">Mountain View</span>,
    <span itemprop="addressRegion">Santa Clara</span>
    <span itemprop="postalCode">94040</span>
    <span itemprop="addressCountry">US</span>
  </div>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Total Price: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>

      <!-- Price Components -->
      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Base Rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
        <meta itemprop="priceComponentType" content="GenericTax" />
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Discount</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">-100</span>
        <meta itemprop="priceComponentType" content="Discount" />
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Место оплаты

Ниже приведён пример спецификации potentialAction при использовании типа получателя PayAction .

Общая стоимость пакета составляет 1170 долларов США, при этом часть общей стоимости, а именно 1150 долларов США, взимается на сайте при бронировании с использованием параметра "@type": "OnlineBusiness" , а оставшиеся 20 долларов США пользователь должен оплатить при регистрации в отеле, что указывается с использованием @type": "Hotel" .

Для разделения платежей на оплату во время бронирования и в отеле необходимо указать компонент potentialAction . Если он не указан, то payAction будет интерпретировать оплату во время бронирования как способ оплаты по умолчанию.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Price Due: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1170</span>

      <!-- Paid Online -->
      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
        <div itemprop="potentialAction" itemscope itemtype="https://schema.org/PayAction">
          <div itemprop="recipient" itemscope itemtype="https://schema.org/OnlineBusiness">
            <span itemprop="name">myonlinebusiness</span>
          </div>
        </div>
      </div>

      <!-- Paid at Hotel -->
      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">20</span>
        <div itemprop="potentialAction" itemscope itemtype="https://schema.org/PayAction">
          <div itemprop="recipient" itemscope itemtype="https://schema.org/Hotel">
            <span itemprop="name">The Langham, Boston</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

свойство hasMerchantReturnPolicy

Это свойство используется для указания политики возврата средств продавца в маршрутах.

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

Синтаксис

Объект hasMerchantReturnPolicy имеет следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  ...
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <div itemprop="hasMerchantReturnPolicy" itemscope itemtype="https://schema.org/MerchantReturnPolicy">
      <link itemprop="returnPolicyCategory" href="https://schema.org/MerchantReturnFiniteReturnWindow"/>
      <link itemprop="refundType" href="https://schema.org/FullRefund"/>
      <meta itemprop="merchantReturnDays" content="YYYY-MM-DDTHH:mm:ss"/>
      <meta itemprop="restockingFee" content="0"/>
    </div>
  </div>
</div>

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

Свойство

Ниже приведено свойство hasMerchantReturnPolicy :

Атрибут Необходимый? Тип Описание
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

Политика возврата средств продавца. Партнерам следует использовать MerchantReturnPolicy.restockingFee для указания условий отмены бронирования, при которых не возвращается полная сумма за весь период проживания.

Если hasMerchantReturnPolicy не указан или оставлен пустым, предполагается, что сумма не подлежит возврату. Вы можете указать политику невозврата, используя свойство returnPolicyCategory: MerchantReturnNotPermitted .

Пример политики возврата

Ниже приведён базовый пример структурированных данных для отеля, включающий информацию о номере и общую стоимость с учётом налогов и сборов. В этом примере показано бронирование, которое можно отменить без каких-либо сборов до 23:00 (UTC) 18 декабря 2023 года. Партнёрам следует использовать "MerchantReturnPolicy.restockingFee" для обозначения правил отмены, которые не предусматривают возврат полной суммы за проживание. Значение restockingFee по умолчанию равно 0 долларов США.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <div itemprop="hasMerchantReturnPolicy" itemscope itemtype="https://schema.org/MerchantReturnPolicy">
      <link itemprop="returnPolicyCategory" href="https://schema.org/MerchantReturnFiniteReturnWindow"/>
      <link itemprop="refundType" href="https://schema.org/FullRefund"/>
      Cancellation Deadline: <time itemprop="merchantReturnDays" content="2023-12-18T23:00:00">2023-12-18 23:00:00</time>
      Fee: $<span itemprop="restockingFee">0</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Этот параметр можно использовать для аннотирования программ лояльности, предоставляемых клиентам, являющимся участниками программы лояльности отеля.

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

Синтаксис

Свойство eligibleCustomerType имеет следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  ...
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <meta itemprop="eligibleCustomerType" content="RewardsMember"/>
    ...
  </div>
</div>

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

Свойство

Ниже представлено свойство eligibleCustomerType :

Атрибут Необходимый? Тип Описание
Offer.eligibleCustomerType Optional BusinessEntityType

Программы лояльности или вознаграждения для участников, предлагаемые клиентам.

На многих страницах отелей отображаются как стандартные, так и общедоступные тарифы, чтобы побудить пользователей зарегистрироваться в программах лояльности. Тарифы, доступные для определенных групп пользователей, например, тарифы для участников программ, можно указать, задав свойство Offer.eligibleCustomerType .

Примеры

Ниже приведены примеры тарифов для участников программы лояльности.

Членские тарифы

Ниже приведён базовый пример ценообразования для участников программ лояльности или фиксированных тарифов. Клиент является участником программы лояльности отеля.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <!-- Address details -->
  </div>

  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <span itemprop="name">RewardsMember</span>
    <meta itemprop="eligibleCustomerType" content="RewardsMember"/>

    Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1342.74</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1069.98</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Членские и обычные тарифы

Это пример аннотаций к ценам для обычных покупателей и для членов клуба. Цены для членов клуба указаны первыми, затем идут цены для обычных покупателей.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <!-- Address details -->
  </div>

  <!-- Member Rate -->
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <span itemprop="name">RewardsMember</span>
    <meta itemprop="eligibleCustomerType" content="RewardsMember"/>

    Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1342.74</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1069.98</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="currency">$</span><span itemprop="price">172.74</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
      </div>
    </div>
  </div>

  <!-- Regular Rate -->
  <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <span itemprop="name">regularRate</span>

    Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1572.24</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1369.98</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="currency">$</span><span itemprop="price">202.26</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Структурированные данные HotelRoom

К объекту HotelRoom применяются следующие свойства.

offers недвижимость

Аннотации offers используются для разметки маршрутов ваших номеров. Для указания типа HotelRoom следует использовать свойство 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": {...}
}

Синтаксис

Свойство offers имеет следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom">
  <meta itemprop="identifier" content="hotel-room-id-1234"/>
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
    Check-out: <time itemprop="checkoutTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
      ...
    </div>
  </div>
</div>

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

Характеристики

Ниже представлены offers объекты недвижимости:

Свойство Необходимый? Тип Описание
offers Required Offer and LodgingReservation

Указание стоимости номера в рамках данного маршрута.

Свойство offers может содержать массив предложений.

LodgingReservation.checkinTime Required DateTime

Время заселения в часовом поясе пользователя. Если ваш часовой пояс не указан, используется часовой пояс отеля.

LodgingReservation.checkoutTime Required DateTime

Время выезда из отеля указывается в часовом поясе пользователя. Если ваш часовой пояс не указан, используется часовой пояс отеля.

offers пример

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom">
  <meta itemprop="identifier" content="hotel-room-id-1234"/>
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

bed и occupancy помещения

Свойство bed используется для указания типа кровати и количества доступных кроватей в номере. Свойство occupancy используется для указания количества гостей в номере. Свойства bed и occupancy можно указать с помощью свойства 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"
  }
}

Синтаксис

Свойства bed и occupancy имеют следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">hotel-name</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
    <span itemprop="name">room-name</span>
    <meta itemprop="identifier" content="hotel-room-id-1234"/>

    <!-- Bed Details -->
    <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
      <span itemprop="numberOfBeds">integer</span>
      <span itemprop="typeOfBed">KING</span>
    </div>

    <!-- Occupancy -->
    <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
      Occupancy: <span itemprop="value">integer</span>
    </div>

    <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
      ...
    </div>
  </div>
</div>

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

Свойства bed и occupancy можно задать только с помощью свойства HotelRoom . Информация, специфичная для номера, включая тарифы на уровне номера, может быть добавлена ​​к свойству Hotel через свойство containsPlace . См. пример спецификации Hotel и HotelRoom .

Характеристики

Ниже представлены данные о количестве bed и количестве occupancy :

Свойство Необходимый? Тип Описание
HotelRoom.bed Optional (Recommended) bed

Тип кровати (кроватей), предоставляемой в номере, и количество проживающих в номере.

Поддерживаемые значения:

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

Количество гостей в гостиничном номере. Тип данных для обозначения занятости — QuantitativeValue .

Заполняемость является исключительной характеристикой HotelRoom , а не конкретного Offer . Цены должны указываться только для запрашиваемой заполняемости.

containsPlace Optional (Recommended) LocationFeatureSpecification

Он используется для указания тарифов на номера, относящихся к конкретным номерам. Также его можно использовать для указания удобств в номере.

Узнайте больше о том, как использовать containsPlace в свойстве amenityFeature .

Примеры

Ниже приведены примеры характеристик спальных мест и количества проживающих.

Пример HotelRoom

Ниже приведён базовый пример расположения спальных мест и количества гостей в номере.

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  <meta itemprop="identifier" content="hotel-room-id-1234"/>
  <span itemprop="name">Deluxe Room, 1 King Bed</span>

  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">KING</span>
  </div>
  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">SINGLE</span>
  </div>

  <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
    Occupancy: <span itemprop="value">2</span>
  </div>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Ниже приведён пример аннотирования свойств Hotel и HotelRoom , а также параметров bed , occupancy и priceSpecification .

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">hotel-name</span>
  <meta itemprop="identifier" content="hotel-id-1234"/>

  <div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
    <span itemprop="name">Deluxe Room, 1 King Bed</span>
    <meta itemprop="identifier" content="hotel-room-id"/>

    <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
      <span itemprop="numberOfBeds">1</span>
      <span itemprop="typeOfBed">KING</span>
    </div>

    <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
      Occupancy: <span itemprop="value">2</span>
    </div>

    <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
      <span itemprop="name">Minibar</span>
      <meta itemprop="value" content="true"/>
    </div>

    <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
      <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
      Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
      Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
      <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Указание цены на номер в отеле аналогично указанию цены на номера в отеле. Разница заключается в том, что цены на номера указываются с помощью свойства Product.offers вместо свойства Hotel.makesOffer .

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

Синтаксис

Свойство priceSpecification для гостиничных номеров имеет следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  ...
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name"></span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
        <meta itemprop="priceComponentType" content="GenericTax"/>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Discount</span>
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
        <meta itemprop="priceComponentType" content="Discount"/>
      </div>
    </div>
  </div>
</div>

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

Характеристики

Ниже перечислены свойства HotelRoom priceSpecification ):

Свойство Необходимый? Тип Описание
Hotel.Offer.priceSpecification.price Required float

Цена указана за номер, включая налоги и сборы за данный Product .

На вашей целевой странице всегда следует указывать цену, указанную Google, вместе с полными данными о цене. Указание деталей цены позволяет проводить проверку точности цен. Google принимает как цены на номера в отеле, так и цены на отдельные номера.

Hotel.Offer.priceSpecification.priceCurrency Required currency Трехбуквенный код валюты для указанной цены. Например: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Общая разбивка стоимости, включая налоги и сборы, за номер в отеле и заселение, с предложениями, связанными с HotelRoom и Product . Существует два типа структурированных данных о ценах:

  • CompoundPriceSpecification предоставляет подробную разбивку цен, включающую следующие данные:

    • Базовая цена: базовая стоимость за ночь.

    • Налоги за весь период проживания: цена за ночь с учетом налогов.

    • Стоимость проживания за одного человека: цена за ночь за одно проживание.

      occupancy является исключительной характеристикой HotelRoom , а не конкретного Offer . Цены должны быть указаны только для запрашиваемой заполняемости.

    • Скидка: Сумма вычета.

  • UnitPriceSpecification используется для указания типа платежей. Для указания дополнительных платежей следует указывать значения PriceComponentTypeEnumeration .

    Значения для PriceComponentTypeEnumeration следующие:

    • Discount : Общая скидка от цены.

    • ResortFee : это дополнительная плата, которую необходимо внести в отеле. Его размер может варьироваться в зависимости от типа объекта размещения.

    • GenericTax : Это дополнительный налог, относящийся к категории прочих.

    • ServiceFee : это дополнительная плата, взимаемая каналом бронирования.

    Необходимо задать значения в свойстве name компонента UnitPriceSpecification . Все значения обязательны, если вы решили включить разбивку цен, и должны быть указаны в компоненте UnitPriceSpecification .

Примеры

Ниже приведены примеры спецификаций цен на HotelRoom .

Пример общей стоимости номера

Ниже приведён простой пример определения общей стоимости проживания за весь период и стоимости за одно размещение.

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  <span itemprop="name">Deluxe Room King, 1 Single Bed</span>
  <meta itemprop="identifier" content="hotel-room-id-1234"/>

  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">KING</span>
  </div>
  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">SINGLE</span>
  </div>

  <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
    Occupancy: <span itemprop="value">2</span>
  </div>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1232.74</span>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Пример разбивки стоимости номера

Ниже приведен пример цены за номер или тарифный план. Разбивка цены указана по типу номера, например, номер Deluxe , и типу bed occupancy например, кровать KING или SINGLE кровать, а также по количеству гостей (2 человека).

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  <span itemprop="name">Deluxe Room King, 1 Single Bed</span>
  <meta itemprop="identifier" content="hotel-room-id-1234"/>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>

    <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
      <span itemprop="numberOfBeds">1</span>
      <span itemprop="typeOfBed">KING</span>
    </div>
    <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
      <span itemprop="numberOfBeds">1</span>
      <span itemprop="typeOfBed">SINGLE</span>
    </div>

    <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
      Occupancy: <span itemprop="value">2</span>
    </div>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
        <meta itemprop="priceComponentType" content="GenericTax"/>
      </div>

      <div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
        <span itemprop="name">Discount</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">-100</span>
        <meta itemprop="priceComponentType" content="Discount"/>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Это свойство используется для аннотирования услуг, предоставляемых в отеле или номере в зависимости от тарифа, таких как варианты питания и услуги парковщика. Вы можете аннотировать includesObject как в Hotel , так и в свойстве HotelRoom .

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

Синтаксис

Объект includesObject имеет следующий синтаксис для обозначения услуг, зависящих от тарифного плана и доступных в комнате:

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  ...
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
      <div itemprop="typeOfGood" itemscope itemtype="https://schema.org/Service">
        <span itemprop="name">Valet</span>
      </div>
    </div>

    <div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
      <meta itemprop="amountOfThisGood" content="float"/>
      <meta itemprop="unitText" content="currency"/>
      <div itemprop="typeOfGood" itemscope itemtype="https://schema.org/FoodService">
        <span itemprop="name">MealCredit</span>
      </div>
    </div>
  </div>
</div>

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

Свойство

Объект includesObject обладает следующим свойством:

Атрибут Необходимый? Тип Описание
Offer.includesObject Optional TypeAndQuantityNode

Услуги, предоставляемые в отеле или номере.

Функционал, специфичный для конкретного тарифа, включает свойство includesObject . Поле name в "TypeAndQuantityNode.typeOfGood" следует использовать для указания типа услуги, например, услуги парковщика или доставки еды.

Функции, зависящие от тарифа, могут быть включены в базовые предложения или указаны в качестве дополнительных опций за отдельную плату.

includesObject требует значения типа TypeAndQuantityNode следующего вида:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

пример includesObject

Ниже приведён базовый пример функций, зависящих от тарифа, для услуг парковщика и общественного питания. Функции, зависящие от тарифа, следует указывать с помощью свойства Offer.includesObject . Поле name в TypeAndQuantityNode.typeOfGood следует использовать для указания типа услуги.

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  <span itemprop="name">Deluxe Room, 1 King Bed</span>
  <meta itemprop="identifier" content="hotel-room-id-1234"/>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
    </div>

    <!-- Included Services -->
    <div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
      <div itemprop="typeOfGood" itemscope itemtype="https://schema.org/Service">
        <span itemprop="name">Valet</span>
      </div>
    </div>

    <div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
      <meta itemprop="amountOfThisGood" content="50"/>
      <meta itemprop="unitText" content="USD"/>
      <div itemprop="typeOfGood" itemscope itemtype="https://schema.org/FoodService">
        <span itemprop="name">MealCredit</span>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

{
  "@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 недвижимости

Свойство offer.availability используется для обозначения распроданных маршрутов с номерами в отеле.

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

Синтаксис

Свойство availability имеет следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  ...
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    ...
    <meta itemprop="availability" content="https://schema.org/SoldOut"/>
    Sold Out
  </div>
</div>

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

Свойство

Ниже перечислены availability объекты недвижимости:

Атрибут Необходимый? Тип Описание
Offer.availability Optional ItemAvailability

Наличие свободных номеров в отеле или отеле.

Цены извлекаются из schema.org/Offer , и информация о ценах не создается с использованием schema.org/Hotel или schema.org/HotelRoom . Это означает, что даже для полностью забронированных маршрутов должно быть доступно специальное предложение.

Предложение без priceSpecification считается недоступным. Недоступные предложения следует указывать как "Offer.availability= https://schema.org/SoldOut " .

Указывать Offer.availability не обязательно, если предложение аннотировано допустимой priceSpecification.

пример availability

Ниже приведён простой пример, демонстрирующий недоступность гостиничных номеров. Необходимо указать тип кровати, количество кроватей и данные о количестве проживающих в указанном номере.

Микроданные

<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
  <span itemprop="name">Deluxe Room, 1 King Bed</span>
  <meta itemprop="identifier" content="hotel-room-id-1234"/>

  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">KING</span>
  </div>
  <div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
    <span itemprop="numberOfBeds">1</span>
    <span itemprop="typeOfBed">SINGLE</span>
  </div>

  <div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
    Occupancy: <span itemprop="value">2</span>
  </div>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
    Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
    Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
    <meta itemprop="availability" content="https://schema.org/SoldOut"/>
    Sold Out

    <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
      <!-- Price Specification details -->
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Удобства можно указать в типах номеров Hotel или HotelRoom с помощью свойства amenityFeature . Для указания предоставляемых в номере удобств следует использовать свойство 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
      }
    ]
  }
}

Синтаксис

Свойства amenityFeature и containsPlace имеют следующий синтаксис:

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  ...
  <!-- Hotel Amenity -->
  <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
    <span itemprop="name">HotTub</span>
    <div itemprop="hoursAvailable" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
      <time itemprop="opens" content="HH:mm:ss">HH:mm:ss</time>
      <time itemprop="closes" content="HH:mm:ss">HH:mm:ss</time>
    </div>
  </div>

  <div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom">
    <!-- Room Amenity -->
    <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
      <span itemprop="name">Minibar</span>
      <meta itemprop="value" content="boolean"/>
    </div>
  </div>
</div>

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

Удобства

В name объекта недвижимости указаны и разрешены следующие удобства.

Атрибут Необходимый? Тип Описание
amenityFeature.AC Optional boolean Есть ли в объекте недвижимости кондиционер.
amenityFeature.AirportShuttle Optional boolean Предоставляет ли принимающая сторона транспорт до аэропорта или других терминалов и обратно.
amenityFeature.Balcony Optional boolean Есть ли в номере балкон?
amenityFeature.BeachAccess Optional boolean Есть ли у объекта недвижимости доступ к общественному пляжу поблизости?
amenityFeature.ChildFriendly Optional boolean Подходит ли данное жилье для детей?
amenityFeature.Crib Optional boolean Предоставляется ли в объекте размещения детская кроватка.
amenityFeature.Elevator Optional boolean Наличие лифта в здании.
amenityFeature.FirePlace Optional boolean Есть ли в номере камин?
amenityFeature.FreeBreakfast Optional boolean Укажите, включен ли бесплатный завтрак для всех гостей. Используйте функции тарифов, чтобы указать, включен ли завтрак только в определенные тарифные планы.
amenityFeature.GymFitnessEquipment Optional boolean Наличие в объекте недвижимости тренажерного зала или какого-либо фитнес-оборудования.
amenityFeature.Heating Optional boolean Есть ли в номере отопление?
amenityFeature.HotTub Optional boolean Есть ли в доме джакузи?
amenityFeature.InstantBookable Optional boolean Можно ли забронировать объект недвижимости мгновенно через процесс оформления заказа? Альтернативный вариант — дождаться одобрения.
amenityFeature.IroningBoard Optional boolean Есть ли в отеле гладильные доски?
amenityFeature.Kitchen Optional boolean Есть ли в жилье кухня?
amenityFeature.Microwave Optional boolean Есть ли в номере микроволновая печь?
amenityFeature.OpenAirBath(Hotels only) Optional boolean Указывается, имеется ли в номере примыкающая к нему ванна под открытым небом. Если это указано в описании номера, ванна должна быть отдельной и предназначена только для проживающих в номере.
amenityFeature.OutdoorGrill Optional boolean Есть ли на территории гриль?
amenityFeature.OvenStove Optional boolean Есть ли в доме плита?
amenityFeature.Patio Optional boolean Есть ли в доме патио?
amenityFeature.Pool Optional boolean Есть ли в отеле бассейн?
amenityFeature.PrivateBeachAccess Optional boolean Есть ли у объекта недвижимости выделенный доступ к закрытому для посещения пляжу.
amenityFeature.SelfCheckinCheckout Optional boolean Предоставляется ли в объекте размещения возможность самостоятельной регистрации заезда и выезда.
amenityFeature.WasherDryer Optional boolean Есть ли в жилье стиральная машина и сушилка?
amenityFeature.Wifi Optional boolean Есть ли в отеле Wi-Fi?
amenityFeature.Smoking Optional boolean Разрешено ли курение в данном месте проживания.
amenityFeature.InternetType Optional Enum

Тип интернета, доступного на территории объекта недвижимости.

Поддерживаемые значения:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

Тип парковки, доступный на территории объекта.

Поддерживаемые значения:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

Тип бассейна, имеющегося на территории объекта.

Поддерживаемые значения:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Указывает, выполнено ли помещение в японском стиле.

Поддерживаемые значения:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Номер лицензии предприятия, который должен быть указан на объекте недвижимости в определенных регионах мира. Он может повторяться, и если существует несколько лицензий, рекомендуется добавить владельца или орган, выдавший лицензию. Например, "Paris: 123456ABC"

Характеристики

Ниже перечислены свойства объекта amenityFeature :

Свойство Необходимый? Тип Описание
amenityFeature Optional LocationFeatureSpecification

Удобства, предоставляемые в отеле или номере. Их можно указать с помощью свойства amenityFeature . Удобства должны быть доступны всем гостям отеля независимо от выбранного тарифного плана. amenityFeature указывается с помощью значения свойства LocationFeatureSpecification .

Удобства можно указать либо на уровне Hotel , либо на уровне HotelRoom .

containsPlace Optional LocationFeatureSpecification

Удобства, предоставляемые в отеле или номере всем гостям. Их можно указать с помощью параметра amenityFeature . Удобства должны быть доступны всем гостям в номере независимо от выбранного тарифного плана.

Hotel.containsPlace.amenityFeature — это перечень удобств, предоставляемых в отеле.

HotelRoom.containsPlace.amenityFeature — это перечень удобств, предоставляемых в номере.

Пример удобств

Ниже приведён простой пример отеля с бассейном, открытым с 10:00 до 22:00, и без тренажерного зала. Номер в отеле предназначен для некурящих и оборудован мини-баром.

Микроданные

<div itemscope itemtype="https://schema.org/Hotel">
  <span itemprop="name">ACME Hotel</span>

  <!-- Amenities -->
  <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
    <span itemprop="name">HotTub</span>
    <div itemprop="hoursAvailable" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
      Open from <time itemprop="opens" content="10:00:00">10:00</time>
      to <time itemprop="closes" content="22:00:00">22:00</time>
    </div>
  </div>

  <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
    <span itemprop="name">GymFitnessEquipment</span>:
    <meta itemprop="value" content="false"/> No
  </div>

  <div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom">
    <!-- Room Amenities -->
    <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
      <span itemprop="name">Minibar</span>:
      <meta itemprop="value" content="true"/> Yes
    </div>
    <div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
      <span itemprop="name">Smoking</span>:
      <meta itemprop="value" content="false"/> No
    </div>

    <div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
      <meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
      Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
      Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
      <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
        <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
      </div>
    </div>
  </div>
</div>

JSON-LD (устарело)

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

Пользовательские HTML5-атрибуты с префиксом data-nav- используются для аннотирования интерактивных элементов и объявления состояний страницы, что позволяет поисковому роботу перемещаться по процессу бронирования.

Для навигационной разметки используется следующий синтаксис атрибутов:

Атрибуты

<body data-nav-stage="stage_name">
  ...
  <button data-nav-criticalpath="true"
          data-nav-interactiontype="CLICK"
          data-nav-interactionorder="1">
    Action
  </button>
  ...
  <button data-nav-close="true">Dismiss</button>
</body>

Ниже перечислены атрибуты навигации:

Атрибут Ценности Описание
data-nav-stage landing, room-selection, checkout, confirmation Объявляет активное состояние воронки для краулеров. Прикрепляется к <body> или обертке верхнего уровня.
data-nav-stage-final true, false Индикатор последней страницы процесса (по умолчанию false ). Если на странице отсутствуют элементы с data-nav-criticalpath="true" , поисковый робот автоматически считает её последней страницей процесса.
data-nav-criticalpath true, false Отмечает элемент, с которым поисковый робот ОБЯЗАТЕЛЬНО должен взаимодействовать, чтобы добраться до финальной страницы бронирования. Если на странице нет элементов с data-nav-criticalpath="true" , поисковый робот автоматически считает её финальной страницей процесса.
data-nav-interactiontype CLICK, SELECT Указывает действие взаимодействия. CLICK используется для кнопок/ссылок. SELECT используется для выпадающих списков/групп переключателей.
data-nav-interactionorder integer Обеспечивает последовательность выполнения для многошаговой навигации. Меньшие номера выполняются первыми.
data-nav-close true Отмечает кнопки закрытия во всплывающих окнах, баннерах с уведомлением о файлах cookie или модальных окнах для дополнительных продаж.

Ниже приведены примеры тегирования навигации.

Нажмите на навигацию

Ниже приведён простой пример навигации по кликам, обозначающий этап воронки продаж.

<body data-nav-stage="room-selection" data-nav-stage-final="false">
  <h1>Select Your Room</h1>
  
  <!-- Crawler needs to click this to proceed -->
  <button data-nav-criticalpath="true"
          data-nav-interactiontype="CLICK"
          data-nav-interactionorder="1">
    Select & Proceed
  </button>
</body>

Многошаговая навигация

Ниже приведён пример многоэтапной навигации, включающей баннер с уведомлением о файлах cookie, раскрытие аккордеона и клик.

<div data-nav-stage="landing" data-nav-stage-final="false">
  <!-- Hotel, LodgingReservation info, and Offer price are expected to be included in this page -->

  <!-- Step 1: Accept cookies -->
  <div class="cookie-banner">
    <p>We use cookies to improve your experience.</p>
    <button data-nav-close="true"
            data-nav-criticalpath="true"
            data-nav-interactiontype="CLICK"
            data-nav-interactionorder="1">Accept cookies</button>
  </div>

  <!-- Step 2: Open accordion to reveal pricing (Crucial for making prices visible in Mobile UIs) -->
  <div data-nav-criticalpath="true"
       data-nav-interactiontype="CLICK"
       data-nav-interactionorder="2"
       class="accordion-header">
    <span>View Room Rates</span>
  </div>


  <!-- Step 3: Book the room -->
  <div class="accordion-content">
    <button data-nav-criticalpath="true"
            data-nav-interactiontype="CLICK"
            data-nav-interactionorder="3">
      Book Now
    </button>
  </div>
</div>

Заявление на заключительной странице

Ниже приведён пример объявления заключительной страницы процесса бронирования.

<!-- Marks this as the final confirmation page where price is extracted -->
<!-- Hotel, LodgingReservation info, and Offer price are expected to be included in this page -->
<div data-nav-stage="confirmation" data-nav-stage-final="true">
  <h1>Grand View Hotel</h1>
  <!-- Price and other details here -->
</div>