На этой странице приведены инструкции по добавлению разметок структурированных данных к данным о ценах ваших отелей.
Обзор
Структурированные данные о ценах на отели используются для объяснения, проверки и подробного отображения цен на отели, указанных на вашем веб-сайте, независимо от пользовательского интерфейса. Сюда также входят базовая цена, тарифы, номера, сборы и налоги, а также поля, связанные с ценами.
Google рекомендует партнерам аннотировать свои веб-страницы стандартизированными структурированными данными, которые машиночитаемы для сканеров; предоставлено Schema.org , чтобы точно собирать цены с ваших веб-страниц.
Это позволяет масштабировать проверки точности цен за счет повышения надежности сканеров. Преимущество для вас — увеличение количества проверок точности цен и возможность напрямую устранять проблемы с точностью цен, а также получать последовательный показатель точности цен.
Если вы новичок в структурированных данных, узнайте больше о словаре и формате структурированных данных .
Google Hotels рекомендует использовать формат JSON-LD
для аннотирования ваших веб-страниц. Обратитесь к разделу Поддерживаемые форматы , чтобы узнать больше о других приемлемых форматах. В этой документации представлен подробный справочный материал, относящийся к реализации структурированных данных в отелях.
Структурированные данные Hotel
используются для аннотирования полей, специфичных для отеля, на вашей веб-странице. Структурированные данные Hotel
обладают следующими свойствами:
свойства
name
иaddress
makesOffer
недвижимостьHotel priceSpecification
объекта недвижимостиСвойство
hasMerchantReturnPolicy
eligibleCustomerType
свойствоCustomerType
Структурированные данные HotelRoom
используются для аннотирования полей, относящихся к конкретному номеру, на вашей веб-странице.
Структурированные данные HotelRoom
обладают следующими свойствами:
offers
недвижимостьколичество
bed
иoccupancy
HotelRoom priceSpecification
объекта недвижимостисвойство
includesObject
availability
недвижимостисвойство
amenityFeature
Структурированные данные отеля
свойства 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
используют следующий синтаксис:
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
:
{
"@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
недвижимость
Аннотации 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
использует следующий синтаксис:
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 | Предложения отелей для данного маршрута. Свойство |
LodgingReservation.checkinTime | Required | DateTime | Время регистрации в часовом поясе пользователя. Если ваш часовой пояс не указан, учитывается часовой пояс отеля. |
LodgingReservation.checkoutTime | Required | DateTime | Время выезда в часовом поясе пользователя. Если ваш часовой пояс не указан, учитывается часовой пояс отеля. |
Пример
делаетПредложение
Ниже приведен базовый пример аннотирования предложений вашего отеля. Вы можете указать несколько предложений для одного маршрута, но сначала вам следует указать тариф, отображаемый Google, а затем другие тарифы. Указанная цена включает все применимые налоги.
{
"@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, чтобы указать общую информацию о ценах, такую как базовая ставка, налоги и скидки. Используйте UnitPriceSpecification , чтобы указать дополнительные налоги или специальные типы сборов, такие как ResortFee
, GenericTax
и ServiceFee
. Свойство priceSpecification
связано со свойством Offer
.
{
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
},
...
]
}
}
Синтаксис
Свойство Hotel priceSpecification
использует следующий синтаксис:
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"
}
]
}
}
}
Микроданные
<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>
Характеристики
Ниже приведены свойства hotel priceSpecification
:
Свойство | Необходимый? | Тип | Описание |
---|---|---|---|
Hotel.Offer.priceSpecification.price | Required | float | Полная стоимость, включая налоги и сборы отеля. Ставка Google всегда должна быть указана на вашей целевой странице вместе с полной информацией о ставке. Аннотирование сведений о тарифах позволяет выполнять проверку точности цен. Google принимает цены как на уровне отеля, так и на уровне номера. |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Трехбуквенный код валюты для указанной цены. Например: "USD" . |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | Общая разбивка цен, включая налоги и сборы отеля. Существует два типа ценовых структурированных данных:
Вы должны установить значения в свойстве |
Hotel.Offer.priceSpecification.priceComponent. potentialAction | Optional | PayAction | Место оплаты в отеле. Потоки оплаты в отеле включают цены, которые взимаются во время выезда на сайте бронирования и в отеле во время регистрации заезда. Вам следует использовать свойство Google поддерживает следующие два параметра для получателя
|
Примеры
Примеры JSON-LD
Цена
Ниже приведен базовый пример добавления структурированных данных о ценах на вашу веб-страницу. В свойство makesOffer
можно включить несколько предложений уровня отеля.
Типы PostalAddress
, такие как addressCountry
, postalCode
, streetAddress
и другие поля, являются обязательными, если вы решите указать свойство address
. Ставка, отображаемая Google, должна быть указана первой в свойстве makesOffer
. Указанная цена включает все применимые налоги.
{
"@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
.
{
"@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
интерпретирует платеж во время бронирования как метод оплаты по умолчанию.
{
"@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": { ... }
}
}
}
]
}
}
}
Пример микроданных
Разбивка цен
Ниже приведен пример свойства priceSpecification
с разбивкой цен. Базовая ставка, налоги, такие как общий налог и скидка, определяются с помощью компонента UnitPriceSpecification
. Не забудьте задать для свойства name
значения, соответствующие компоненту UnitPriceSpecification
.
Общая стоимость за весь период проживания должна быть указана в свойстве CompoundPriceSpecification
. Разбивка цен должна быть указана в свойстве 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
Это свойство используется для аннотации политики возврата средств продавцом в маршрутах.
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
Синтаксис
hasMerchantReturnPolicy
имеет следующий синтаксис:
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 | Политика возврата средств продавцом. Партнерам следует использовать Если |
Пример
Политика возврата
Ниже приведен базовый пример структурированных данных для отеля с подробной информацией о номерах и общей стоимостью с налогами и сборами. В этом примере показано пребывание, которое можно отменить без каких-либо сборов до 23:00 (UTC) 18 декабря 2023 г. Партнерам следует использовать "MerchantReturnPolicy.restockingFee"
чтобы указать правила отмены, при которых не возвращается полная стоимость проживания. По умолчанию restockingFee
равна 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
свойствоCustomerType
Это свойство можно использовать для аннотирования программ вознаграждений, предоставляемых клиентам, являющимся членами отеля.
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
}
Синтаксис
Свойство eligibleCustomerType
имеет следующий синтаксис:
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 . |
Примеры
Тарифы для участников
Ниже приведен базовый пример ценообразования для участников или спецификации фиксированных тарифов для программ лояльности. Клиент является «наградным участником» отеля.
{
"@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"
}
]
}
}
}
Членские и обычные тарифы
Это пример аннотаций как для обычных, так и для членских тарифов. Сначала указаны цены для участников, а затем обычные тарифы.
{
"@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
offers
недвижимость
Аннотации offers
используются для разметки маршрутов ваших номеров. Вам следует использовать свойство offers
для спецификации HotelRoom
.
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "hotel-room-id-1234",
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": {...}
}
Синтаксис
Свойство offers
имеет следующий синтаксис:
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 | Указание стоимости номера по данному маршруту. Свойство |
LodgingReservation.checkinTime | Required | DateTime | Время регистрации в часовом поясе пользователя. Если ваш часовой пояс не указан, учитывается часовой пояс отеля. |
LodgingReservation.checkoutTime | Required | DateTime | Время выезда в часовом поясе пользователя. Если ваш часовой пояс не указан, учитывается часовой пояс отеля. |
Пример
предложения
Ниже приведен базовый пример указания offers
в свойстве 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"
}
}
}
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
имеют следующий синтаксис:
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 | Тип кроватей, включенных в номер, и количество человек в номере. Поддерживаемые значения:
|
HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | Количество гостей в номере отеля. Тип занятости — Заполняемость является явным свойством |
containsPlace | Optional (Recommended) | LocationFeatureSpecification | Он используется для аннотирования тарифов на уровне номера, связанных с конкретными номерами. Его также можно использовать для указания удобств в номере. Узнайте больше о том, как использовать |
Примеры
Номер в отеле
Ниже приведен базовый пример кроватей и количества гостей для спецификации номера.
{
"@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
вместе с bed
, occupancy
и priceSpecification
.
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"containsPlace": {
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room, 1 King Bed",
"identifier": "hotel-room-id",
"bed": {
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": true
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
}
HotelRoom priceSpecification
объекта недвижимости
Спецификация цен на гостиничные номера аналогична спецификации цен на гостиничные номера. Разница в том, что цены на номера указываются с использованием свойства Product.offers
вместо свойства Hotel.makesOffer
.
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
}
...
}
Синтаксис
Свойство priceSpecification
для гостиничных номеров имеет следующий синтаксис:
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 | Цена за номер, включая налоги и сборы за Ставка Google всегда должна быть указана на вашей целевой странице вместе с полной информацией о ставке. Аннотирование сведений о тарифах позволяет выполнять проверку точности цен. Google принимает цены как на уровне отеля, так и на уровне номера. |
Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Трехбуквенный код валюты для указанной цены. Например: "USD" . |
Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | Общая разбивка цен, включая налоги и сборы за номер в отеле, а также заполнение предложений, связанных с
|
Примеры
Общая стоимость номера
Ниже приведен базовый пример определения общей стоимости за период проживания и цены за размещение.
{
"@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 человек.
{
"@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
имеет следующий синтаксис для услуг, доступных в комнате по определенному тарифу:
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 | Услуги, предоставляемые в отеле или номере. Функции, зависящие от скорости, включены в свойство Функции, зависящие от тарифа, также могут быть включены в предложения базового уровня или могут быть указаны как дополнения за дополнительную плату.
|
Пример
Услуги
Ниже приведен базовый пример особенностей тарифов на услуги парковщика и общественного питания. Функции, зависящие от тарифа, следует указывать с помощью свойства "Offer.includesObject"
. Поле имени в "TypeAndQuantityNode.typeOfGood"
следует использовать для указания типа службы.
{
"@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
имеет следующий синтаксис:
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 | Наличие отеля или номера. Тарифы извлекаются из Предложение без |
Пример
Доступность
Ниже приведен базовый пример, показывающий отсутствие свободных номеров в отеле. Вы должны указать тип кровати, количество кроватей и данные о занятости в указанном номере.
{
"@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
Удобства можно указать в типе 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
имеют следующий синтаксис:
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 | Тип Интернета, доступный на объекте. Поддерживаемые значения:
|
amenityFeature.ParkingType | Optional | Enum | Тип парковки, доступной на территории. Поддерживаемые значения:
|
amenityFeature.PoolType | Optional | Enum | Тип бассейна, доступного на объекте. Поддерживаемые значения:
|
amenityFeature.RoomStyle | Optional | Enum | Указывает, оформлена ли комната в японском стиле. Поддерживаемые значения:
|
amenityFeature.LicenseNum | Required | string | Номер лицензии предприятия, который должен быть указан на объекте недвижимости в определенных регионах мира. Это можно повторить, и если существует несколько лицензий, рекомендуется добавить владельца или полномочия лицензии. Например, |
Характеристики
Ниже приведены свойства amenityFeature
:
Свойство | Необходимый? | Тип | Описание |
---|---|---|---|
amenityFeature | Optional | LocationFeatureSpecification | Удобства, предоставляемые в отеле или номере. Его можно указать с помощью свойства Удобства можно указать на уровне |
containsPlace | Optional | LocationFeatureSpecification | Удобства, предоставляемые в отеле или номере всем гостям отеля. Его можно указать с помощью |
Пример
Удобства в отеле и номере
Ниже приведен пример отеля с бассейном, открытым с 10:00 до 22:00, но в отеле нет тренажерного зала. В номере отеля запрещено курение, имеется мини-бар.
{
"@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"
}
}
}
}