此页面提供了一个参考,可帮助您向酒店的价格数据添加结构化数据标记。
概览
酒店价格结构化数据用于详细说明、验证和显示您网站上列出的酒店价格,无论用户界面如何。还包括基本价格、费率、客房、费用和税费以及与价格相关的字段。
Google 建议合作伙伴使用 schema.org 提供的可供抓取工具读取的标准化结构化数据来注释网页,以便准确地从网页中抓取价格。
这样一来,我们便可以通过提高抓取工具的可靠性来扩大价格准确性验证范围。这对您有益,因为您可以增加价格准确性验证次数,直接调试价格准确性问题,并获得一致的价格准确性得分。
如果您不熟悉结构化数据,可以详细了解结构化数据词汇和格式。
Google 酒店建议使用 JSON-LD 格式来标记您的网页。如需详细了解其他可接受的格式,请参阅支持的格式。本文档提供了详细的参考内容,专门针对酒店中的结构化数据实现。
Hotel 结构化数据用于注释网页中的酒店专用字段。Hotel 结构化数据具有以下属性:
makesOffer属性
HotelRoom 结构化数据用于注释网页中的客房专用字段。
HotelRoom 结构化数据具有以下属性:
offers属性availability属性
酒店结构化数据
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 | 合作伙伴的酒店 ID。 标识符必须是每个酒店的唯一字符串,并且应与价格 Feed 中使用的字符串完全一致。 |
| 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 | 退房时间(采用用户的时区)。如果未提及您的时区,则系统会考虑酒店时区。 |
示例
makesOffer
以下是一个用于注释酒店优惠的基本示例。您可以为行程指定多个优惠,但应先指定 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 属性中可以包含多个酒店级优惠。
如果您选择指定 address 属性,则必须指定 PostalAddress 类型(例如 addressCountry、postalCode、streetAddress)和其他字段。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 组件定义。请务必使用与 UnitPriceSpecification 组件对应的值设置 priceComponentType 字段。
住宿期限的总价应在 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"
}
]
}
}
}
付款点
以下示例展示了如何使用 PayAction 的接收者类型来指定 potentialAction。
套餐总价为 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 组件定义。请务必使用与 UnitPriceSpecification 组件对应的值设置 name 属性。
住宿期限的总价应在 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 | 商家退款政策。合作伙伴应使用 如果未指定 |
示例
退货政策
以下是一个基本示例,展示了包含客房详情和总价(含税费和其他费用)的酒店结构化数据。此示例表示,在 2023 年 12 月 18 日晚上 11 点(世界协调时间 [UTC])之前,可以免费取消住宿。合作伙伴应使用 "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 个房源
此属性可用于注释为酒店会员客户提供的奖励计划。
"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 | 退房时间(采用用户的时区)。如果未提及您的时区,则系统会考虑酒店时区。 |
示例
优惠
以下是在 HotelRoom 属性中指定 offers 的基本示例。
{
"@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 属性用于注释房间内的房客人数。可以使用 HotelRoom 属性指定 bed 和 occupancy 属性。
"@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 属性进行设置。通过 containsPlace 属性,可以将客房级价格等客房专用信息添加到 Hotel 属性中。请参阅 Hotel 和 HotelRoom 规范示例。
属性
以下是 bed 和 occupancy 属性:
| 属性 | 是否必需? | 类型 | 说明 |
|---|---|---|---|
| HotelRoom.bed | Optional (Recommended) | bed | 住宿中包含的床位类型以及房间内的入住人数。 支持的值如下:
|
| HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | 酒店客房的房客人数。入住率的类型为 |
| containsPlace | Optional (Recommended) | LocationFeatureSpecification | 用于注释与特定客房关联的客房级房价。它还可用于指定客房内的设施。 详细了解如何在
amenityFeature 属性中使用 |
示例
HotelRoom
以下是房间规格的床位和入住情况的基本示例。
{
"@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 添加注释。
{
"@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 个房源
此属性用于注释酒店或客房内提供的特定房价服务,例如餐点选项和代客泊车服务。您可以在 Hotel 或 HotelRoom 属性中对 includesObject 进行注释。
{
"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" 上的 name 字段应用于指明服务类型。
{
"@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 个房源
您可以使用 amenityFeature 属性以 Hotel 或 HotelRoom 类型指定设施。您应使用 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 点至晚上 10 点的酒店,该酒店不提供健身房。酒店客房为无烟客房,并配有迷你吧。
{
"@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"
}
}
}
}