酒店价格的推送传送方式

如果您因系统限制而无法支持拉取或拉取 (Hints) 传送方法,请使用联系表单

推送传送模式概览

在推送传送模式下,每当价格或库存状况发生变化时,您都会发送增量更新。

下图显示了推送传送模式的请求/响应流程:

在协议配置文件中配置推送

如需使用推送传送模式更新价格,请在协议配置文件中指定以下元素。仅在您首次将环境配置为使用 Hotel Prices API 时,系统才会执行此操作:

  • <Model>:将 <Model> 元素的值设置为“push”。
  • <WhitelistedIPs>:列出您用于验证您和 Google 之间通信的 IP 地址。此元素的值可以是以英文分号分隔的 IP 地址列表,也可以是采用 CIDR 表示法的 IP 地址范围。格式如下:xxx.xxx.xxx.xxx/YY

以下示例展示了使用推送的合作伙伴的协议配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Model>push</Model>
  <WhiteListedIPs>216.239.32.0/19;64.233.160.0/19</WhiteListedIPs>
</Configuration>

如需了解详情,请参阅协议配置文件

通过推送更新价格

如需使用推送更新数据,每当数据发生变化时,都应发送事务消息。

发送交易消息时,请遵循以下准则:

  • 将消息发送到以下端点:
    • http://www.google.com/travel/hotels/uploads/price
  • 使用 HTTP POST 方法。
  • Content-Type 标头设置为“application/xml”。
  • 消息的正文必须符合事务消息语法,如设置价格(针对价格更新)或定义客房和套餐元数据(针对元数据更新)中所述。
  • 对于价格更新,请为要更新的每个行程定义 <Result> 元素。对于元数据更新,请为已更改的每项资源定义会议室数据和软件包数据。

对于收到的每条交易消息,Google 都会从服务器返回 HTTP 200 OK 消息来表示已成功。如果 Google 返回 HTTP 错误代码,请重新发送事务消息。如果您在发送或接收消息时遇到问题,请参阅 Feed 问题排查

您应该针对价格发生变动的各个行程(房源/入住日期/住宿时长组合)发送交易消息。每秒最多可以发送 5 条事务消息。Google 不会阻止每秒发送超过 5 次的消息,但您的消息可能会等待其他请求完成时超时。

为了减少网络流量,您可以将多个 <Result> 元素合并到一条事务消息中。

Google 通常会在大约 5 分钟内处理更新后的价格和库存状况数据。价格将在 90 天后删除。

如需详细了解如何使用事务消息更新价格,请参阅设置价格

通过推送更新 Room 和软件包元数据

如需更新客房和套餐元数据,请像更新任何其他内容一样发送更新。在这种情况下,您需要发送一条包含 <RoomData><PackageData> 元素中新信息的 Transaction 消息。这些元素是 <PropertyDataSet> 元素的子元素。

如需了解详情,请参阅定义 Room 和软件包元数据

传送模式错误

如果您在向 Google 发送事务消息时收到 HTTP 错误,请以 1 分钟、5 分钟和 20 分钟间隔重试请求。如果 3 次重试后问题仍然存在,请停止发送消息,并与您的 Google 客户经理联系。

当您联系您的 Google 客户经理来报告您在发送交易消息时收到的 HTTP 错误时,Google 将与您合作大约 10 家酒店运行测试,同时验证您的 Feed 是否配置正确。如果测试成功,Google 会抓取您在酒店价格 Feed 中指定的所有酒店。这样可确保可接受的价格,并确保价格在 3 到 5 天内准确无误。之后,Google 会通知您何时发布,届时您将能够实时查看结果。

应该以什么频率推送价格?

理想情况下,只要知道价格发生了变化,您就可以推送所有更新。如果您不知道价格何时发生变化,则应尝试尽可能频繁地更新价格。通常还包括一天多次推送。 通常,当前日期和本周的行程会更频繁地推送。