费率消息

概览

房价消息 (OTA_HotelRateAmountNotifRQ) 用于针对特定日期范围,为每种客房类型和房价方案组合定义每晚入住价格。在价格消息中,Google 支持基于入住人数的定价,可根据预期入住人数上限指定不同的每晚价格。

以下各部分介绍了添加和更新费率以及发送 Rate 消息的一般准则、基本示例和操作场景,可帮助您入门。

匹配率行为

当用户请求特定入住人数时,他们看到的价格取决于您在价格消息中定义价格的方式。本部分介绍了系统如何根据用户请求的入住情况以及您定义的房价,将这些用户请求与您的房价进行匹配。

主要原则

  • 为特定入住人数定义的房价适用于所有更少的入住人数,除非另有规定。

  • 如果请求的入住人数高于定义的入住人数,则视为不可能。

  • 基于入住率的价格适用于以下按日期定价和基于 LOS 的定价模式。这意味着您可以为每种入住情况指定费率。如果不存在特定入住人数对应的房价,则使用入住人数次高的房价。您还可以使用 AdditionalGuestAmountsExtraGuestCharges 为额外入住的客人和儿童定义费用,该费用适用于为客房定义的入住人数上限。

优势和示例

效率

如果多个入住人数对应的费率相同,您无需为每种入住人数都设置费率。您可以仅设置房型和房价方案支持的最高入住人数值,从而简化消息。 用户会看到您设置的入住率,该入住率适用于所有小于或等于您设置的值的入住人数。

示例:入住人数为 1 至 4 人的客房类型和费率方案的费率相同。使用 Rate 消息可设置一个费率,以供最多 4 人入住时使用。搜索单人、双人和三人入住的用户将看到相同的价格。搜索 5 及以上星级的用户将不会看到评分。

控制

您可以明确提供不同入住情况下的不同房价。如果您想更好地控制 Google 如何将请求与入住率相匹配,请针对每个入住率值发送不同的价格。

示例:如果费率是针对 3 人入住和 1 人入住定义的,那么搜索单人入住时会显示单人入住费率,搜索双人入住时会显示三人入住费率,而搜索 4 人及以上入住时则不会显示费率。

如需查看与各种费率相关的情景的更多示例,请参阅操作指南

必需元素和可选元素

XML 参考提供了必需元素和可选元素的说明。如需详细了解属性和子元素,请参阅费率元素和属性

语法和架构

创建费率消息时,请参考费率语法示例,确保您遵循正确的格式。

您可以使用 xmllint 等第三方 XML 工具,在将 Feed 提交给 Google 之前,先使用已发布的架构验证 Feed。如需了解费率消息架构,请参阅酒店广告架构

价格模式

按日期计费

这是适用于大多数房源的标准价格模型。per-date 价格模式基于设置的费率,这些费率会按住宿日期进行汇总,以得出总价。在此模型中,Rate 元素下的所有费率都被解读为适用于 <StatusApplicationControl> 中指定的住宿日期范围。

基于 LOS 的定价

基于住宿晚数 (LOS) 的价格模式基于为入住日期和住宿晚数组合设置的价格。基于 LOS 的价格模式下指定的房价为每日房价。例如,如果您发送的房价为 100 美元,住宿时长为 3 天,则总价计算为 3x100 美元=300 美元。

您可以通过在 StatusApplicationControl 元素上指定 RatePlanType="26" 来使用基于 LOS 的价格模式。您还需要在 XML 中的 Rate 元素上设置 RateTimeUnitUnitMultiplier 属性。这会导致给定 Rate 元素下的所有房价都适用于由 <StatusApplicationControl> 中指定的抵达日期和为 UnitMultiplier 指定的 LOS 值定义的住宿。

您可以在单个账号下同时使用按日期收费和基于 LOS 的价格模式,但每处房源只能使用一种价格模式。 在实施基于 LOS 的价格时,请注意以下几点:

  • 使用基于住宿时长的价格时,不同住宿时长的价格不会合并。例如,时长为 3 的 LOS 房价不会与时长为 1 的 LOS 房价合并,以计算时长为 4 的 LOS 房价。必须明确指定 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),因为某些语言区域(例如美国)默认显示税前价格。

用户必须支付的所有税费和其他费用(增值税、住宿税、清洁费、城市税等)都应包含在内,即使这些费用不是在预订时支付,也不是直接支付给住宿房源。

示例

本部分提供了一个使用必需元素和可选元素的 Rate 消息基本示例。准备好文件后,您必须使用 POST 消息将文件发送到以下端点: 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 设置即可。