概览
费率消息 (OTA_HotelRateAmountNotifRQ
) 定义特定日期范围内每种客房类型和费率方案组合的每晚入住费率。在“费率”消息中,Google 支持基于入住人数的价格,以便根据预计入住人数上限指定不同的每晚费率。
以下部分介绍了一般准则、基本示例和操作场景,帮助您开始添加和更新房价,以及发送房价消息。
匹配率行为
当用户请求具体的入住人数时,他们看到的费率取决于您在“费率”消息中定义价格的方式。本部分介绍了这些用户请求如何根据其请求的入住人数以及您定义的费率与您的费率进行匹配。
主要原则
除非另有定义,否则为特定入住人数定义的费率适用于所有较少入住人数。
对于超出所定义的入住人数,则视为无法提交。
下文所述的基于入住人数的价格模式既适用于按日期定价,也适用于基于 LOS 的价格模式。这意味着您可以指定每个入住人数的费率。如果特定入住人数没有对应的费率,系统会使用下一个最高入住人数的费率。您还可以使用
AdditionalGuestAmounts
或ExtraGuestCharges
定义额外的房客和儿童的费用,最高可按为房间定义的容纳人数计算。
优势和示例
- 提升效率
对于费率相同的多名入住,您无需为每个入住设置费率。您可以仅设置客房类型和费率方案支持的最高入住人数值,从而简化消息。对于小于或等于您设置值的每一项入住人数,用户会看到相应费率。
示例:房间类型和费率方案的入住人数为 1 到 4 时相同。使用“费率消息”为最多 4 人设置一个费率。搜索单人、双人和三人入住的用户会看到相同的费率。搜索 5 及以上的用户不会看到房价。
- 控制
您可以明确提供其他入住人数的不同费率。如果您希望更好地控制 Google 如何匹配请求与入住率,请为每个入住人数值发送不同的费率。
示例:如果为入住人数 3 和 1 定义了费率,单人入住搜索将显示单人费率,双人入住搜索将显示三人入住率,而搜索 4 及以上的用户不会看到费率。
如需查看各种费率相关场景的更多示例,请参阅操作方法。
必需元素和可选元素
XML 参考文档提供了必需元素和可选元素的说明。如需详细了解属性和子元素,请参阅费率元素和属性。
语法和架构
创建 Rate 消息时,可以参考速率语法示例,以确保采用正确的格式。
在将 Feed 提交给 Google 之前,您可以使用第三方 XML 工具(如 xmllint)验证这些 Feed 与已发布的架构。如需了解费率消息架构,请参阅酒店广告架构。
价格模式
按日期定价
这是适用于大多数房源的标准定价模式。per-date
价格模式基于设置费率,这些费率会针对各个住宿日期求和,得出总价。在此模型中,Rate
元素下的所有房价都解释为适用于 <StatusApplicationControl>
中指定的住宿日期范围。
基于 LOS 的价格
基于 LOS(住宿晚数)的价格模式基于为到达日期和住宿晚数组合设置的费率。在基于 LOS 的定价模式下指定的费率按天计算。例如,如果您针对 3 间住宿晚数发送 100 美元的费率,则总价的计算方式为:3 x 100 美元=300 美元。
您可以通过在 StatusApplicationControl
元素上指定 RatePlanType="26"
来使用基于 LOS 的价格模式。您还需要在 XML 中的 Rate
元素上设置 RateTimeUnit
和 UnitMultiplier
属性。这样,给定 Rate
元素下的所有房价都将应用到由 <StatusApplicationControl>
中指定的到达日期和为 UnitMultiplier
指定的 LOS 值定义的住宿。
您可以在一个帐号下同时使用按日期和基于 LOS 的定价模式,但每个媒体资源只能使用一种价格模式。实施基于 LOS 的定价时,请注意以下要点:
- 使用基于 LOS 的定价时,不同住宿晚数的费率不合并。例如,如果 LOS 费率为 3,那么 LOS 费率为 1 时,不能将 LOS 费率设为 4。必须明确指定 LOS 率为 4。
- 基于 LOS 的价格中的 1 晚价格不会用作按日期价格的单个每晚房价。
- 每个房源应仅使用基于 LOS 的价格或按日期定价,具体取决于房价在您系统中的表示方式。
如需为您的账号启用基于 LOS 的价格,请通过您的 TAM 提交申请或与我们联系。
指南或操作
- 按日期定价
Delta
:仅为<StatusApplicationControl>
中指定的客房类型、费率方案和住宿日期的指定组合添加或更新每人入住费率。- 默认情况下,房价更新使用
Delta
操作。 Delta
更新不会更改之前为其他入住人数存储的任何费率。例如,如果您为单人和双人间指定了费率,并针对单人间发送Delta
费率更新,则双人间费率将保持不变。
- 默认情况下,房价更新使用
Overlay
:删除<StatusApplicationControl>
中指定的房间类型、费率方案和日期的所有现有单入住费率,并将其替换为新费率。例如,如果您为单人和双人间指定了费率,并针对单人间发送Overlay
更新,Google 将移除之前的所有费率(单人和双人),在更新后仅保留单人入住费率。Remove
:删除<StatusApplicationControl>
中指定的房间类型、费率方案和日期的所有现有单入住费率。- 基于 LOS 的价格
Delta
:仅为<StatusApplicationControl>
中指定的客房类型、费率方案和入住日期的指定组合添加或更新每 LOS 值的费率。替换与更新后的 LOS 值关联的所有每入住人数费率。- 默认情况下,房价更新使用
Delta
操作。 Delta
更新不会更改之前存储的其他住宿晚数的费率。例如,如果您为 LOS 1 和 2 指定了费率,并为 LOS 1 发送Delta
费率更新,则 LOS 2 的每入住人数费率将保持不变。Delta
更新会覆盖之前存储的给定住宿晚数的所有按入住人数费率。例如,如果您为 LOS 1 指定了单人和双人入住费率,并为 LOS 1 发送只有单人入住费率的Delta
费率更新,则系统会移除双人入住费率。
- 默认情况下,房价更新使用
Overlay
:删除<StatusApplicationControl>
中指定的 LOS、客房类型、费率方案和入住日期的所有现有单入住费率,并将其替换为新费率。例如,如果您为 LOS 1 和 2 指定了费率,并且为 LOS 1 发送了Overlay
更新,Google 将移除之前的所有费率(LOS 1 和 2),只有 LOS 1 的费率在更新后会保留。Remove
:删除<StatusApplicationControl>
中指定的房间类型、费率方案和入住日期的所有 LOS 的所有现有单入住费率。- 相关税费
如果税费和其他费用比较简单,可以使用
AmountAfterTax
指定总金额。复杂税费(例如针对每间住宿(而不是每晚)的税费及其他费用无法用AmountAfterTax
表示。通常,Google 建议使用
TaxFeeInfo
而非AmountAfterTax
。如果可能,您应该添加
AmountBeforeTax
(即使您指定了AmountAfterTax
),因为某些语言区域(例如美国)会默认显示税前价格。用户必须支付的所有税费和其他费用(增值税、住宿税、清洁费、城市税等)都应包含在内,即使用户在预订时未支付该费用,或者未直接支付给酒店,也不例外。
示例
本部分介绍了使用必需和可选元素的费率消息的基本示例。准备好文件后,您必须使用发送到以下端点的 POST 消息将其发送给 Google:https://www.google.com/travel/hotels/uploads/property_data
如需详细了解如何推送/POST 消息,请参阅推送消息。
对于 HotelCode
,请使用您在系统内使用的唯一酒店 ID 来识别房源。此值必须与酒店列表 Feed 中 <listing>
元素中的 <id>
指定的酒店 ID 匹配。对于 <PackageID>
和 <RoomID>
,请分别使用您在系统中用于费率方案和客房类型的 ID。与系统保持一致对于确保 Google 正确显示您的价格和数据至关重要。
以下示例展示了如何使用 Delta
操作设置费率:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2022-02-25T20:50:37-05:00"
Version="3.0"
NotifType="Delta">
<POS><Source><RequestorID ID="partner_key" /></Source></POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="2022-12-01"
End="2022-12-31"
InvTypeCode="RoomID"
RatePlanCode="PackageID" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="2" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="3" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
<BaseByGuestAmt NumberOfGuests="4" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</OTA_HotelRateAmountNotifRQ>
方法指南
本部分介绍了您在发送费率消息时可能遇到的场景的解决方案。
有关如何添加、移除和更新费率的示例,请参阅费率示例。
场景 1:如何更改每入住人数的价格
说明
夜间费率之前仅适用于双人入住(也适用于单人入住),但现在提供了更便宜的单人入住费率。
解决方案
使用默认的 Delta
范围更新发送新的入住 1 费率。这个新值不会影响入住人数 2 的费率。
场景 2:如何替换房源的每人入住费率
说明
您之前为入住人数 1 到入住 4 定义了费率,但现在只有入住人数 1 和 2 有效。
解决方案
使用 NotifType="Overlay"
替换指定房源、房间类型、费率方案和日期的所有入住率。在这种情况下,Overlay
操作会列出入住人数 1 和入住人数 2 的费率。
场景 3:如何为多人入住设置相同的房价
说明
特定入住人数的费率可出售给人数较少的团体。在这种情况下,您可以只发送适用最大入住人数的费率更新,从而简化消息。
解决方案
如果您为多位入住人数设置相同的价格,请设置客房类型和费率方案支持的最高入住人数值,系统会自动使用该值为入住人数较少的人数使用此值。也就是说,如果入住人数 1 至 6 的入住人数均相同,则无需为每人重复相同的每晚房价;只需将其设为 6 人即可。