查询消息

查询消息是 Google 发出的价格或元数据更新请求。它们 与拉取和价格更改 传送模式一起使用。

查询消息的根元素是 <Query>

查询消息的结构取决于消息类型:

  • 价格: Google 会发送查询消息,请求更新指定酒店的价格。

  • 元数据: Google 会发送查询消息,请求获取指定酒店的客房和套餐信息。

您可以在初始配置期间定义 Google 用于查询消息和实时价格查询的端点。如需了解详情,请与您的技术支持客户经理 (TAM) 联系。

Google 会将查询消息作为 HTTP POST 请求发送,并将 Content-Type 标头设置为“application/xml”,将 User-Agent 标头设置为 Google-HotelAdsPrices。此规则的例外情况是在通过 Google-TravelAds-Live 手动测试价格端点集成期间。这些示例查询可能包含也可能不包含 User-Agent 标头。

如需详细了解查询消息的格式,请参阅 查询 XML 参考文档

价格查询消息

价格查询消息用于指定您提供价格的酒店和行程组合。

当您的服务器收到 价格 查询消息时,应使用 <Transaction> 消息进行响应,该消息包含所请求的价格信息。

如需了解详情,请参阅价格概览

查询消息有三种特殊类型:

  1. 实时价格: 如果启用此功能,当用户主动浏览指定酒店或行程组合的价格时,系统会发送查询,并且您需要在指定的时间范围内做出响应。

  2. 带上下文: 如果启用此功能,Google 向您发送的每个查询中都会包含用户上下文建议,并且这些建议反映了搜索给定酒店或行程组合的最常见用户类型。遵循这些建议可能会提高响应效率。

  3. 元数据: 这是请求获取指定酒店的客房和套餐详细信息。

实时价格查询

实时价格查询是 Google 发出的实时价格更新请求,用于响应用户搜索。Google 收到用户针对酒店或行程组合的搜索请求,但由于价格数据不可用或不是最新数据,因此 Google 会在搜索时向您请求价格更新。通过实时价格查询,Google 会尝试获取价格并在搜索时将其显示在结果中。

所有实时价格查询请求都有响应时间限制,通常最高为 4000 毫秒。此限制在实时价格查询请求中指定。如果无法在时间限制内提供响应,则会导致特定机会的错过的竞价。不过,我们建议您无论如何都提供价格,以便系统可以缓存该价格并将其用于未来的机会。 响应的连接将保持打开状态 10 分钟,或如合作伙伴的配置中所指定。

实时价格查询也具有上下文,可以检索以下参数的价格:用户所在国家/地区、设备类型、入住人数(房客人数)以及这些房客是成人还是儿童。借助实时价格查询,您可以显示与客户搜索内容相符的最新价格。

实时价格查询旨在作为价格更新的辅助机制。重新定价的主要机制仍然是通过拉取或价格更改。实时价格查询有助于填补 Google 没有酒店或行程组合价格的空白。

使用实时价格查询的规则

  • 由于所请求的行程不典型(例如日期非常遥远或酒店的搜索频率非常低),因此不存在给定行程的缓存数据。

  • 所请求的日期为非默认日期。

:注意:默认日期不符合实时价格查询的条件。系统仅针对非默认日期请求实时价格查询。

Google 通常会缓存实时价格的结果,以便不再查询同一酒店或行程。它可以请求单个酒店或行程组合,也可以请求多个酒店或单个行程组合。

借助“带上下文的实时价格”功能,Google 可以根据用户的设备类型、搜索时所在的国家/地区以及入住人数(包括儿童)发送特定的实时价格请求。 查询消息和交易消息都进行了扩展,以包含定义查询参数的 <Context>元素。从 带上下文的实时价格查询收到的价格可以缓存为客房套餐, 如果是特定入住人数的价格,则缓存为条件式房价, 如果是用户所在国家/地区或用户设备的价格。

带上下文的查询

带上下文的查询是针对指定酒店或行程组合更新数据库的常规请求。它们包含这些组合的热门用户上下文列表。如果使用 条件式房价,则 为所有可能的用户上下文发送房价可能会很昂贵,因此您可以 使用此用户上下文列表来限制响应。仅针对指定的用户上下文返回价格涵盖了绝大多数相关用户查询。

如果您有兴趣接收带上下文的查询,请与您的技术支持客户经理 (TAM) 联系。他们可以确认您已准备好接收此类消息,然后进行配置调整,开始在查询中向您发送用户上下文。

元数据查询消息

元数据查询消息包含指定酒店的客房和套餐信息的详细信息。

当您收到 元数据 查询消息时,应使用 <Transaction> 消息进行响应,该消息在 <Result> 元素中指定所请求酒店的价格。

如需了解详情,请参阅定义客房和套餐元数据

查询消息示例

本部分展示了几个价格查询消息示例和一个元数据查询消息示例。如需查看更多示例,请参阅 查询 XML 参考文档

示例行程

以下示例展示了一个价格 <Query>,该查询请求更新 4 家酒店的价格,这些酒店可供入住 3 晚,入住日期从 2023 年 5 月 23 日开始:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

此示例请求更新每家酒店的价格:

5/23/18 - 6/26/18

实时价格查询示例

以下示例展示了一个实时价格查询,其响应时间限制为 500 毫秒:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
     be configured to be displayed, on request, by Google. This attribute is only
     displayed for a Live Pricing Query request -->
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
     received by. This element is only displayed for a Live Pricing Query request -->
  <PropertyList>
    <Property>6781291</Property>
  </PropertyList>
<!-- Note that Context tags are potentially repeatable -->
  <Context>
<!-- The total number of guests occupying the room (adults+children) -->
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
      <Children>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
<!-- The user was located in the US when this search was made -->
    <UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

此示例请求获取一家酒店的价格:

6/23/23 - 6/25/23

如需查看此查询的示例交易消息响应,请参阅 价格和客房空房情况(交易)XML 参考文档

带上下文的查询示例

以下是带上下文的查询示例:

带上下文的基本查询

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <!-- In the future, device might be specified -->
      <Context><UserCountry>US</UserCountry></Context>
      <Context><UserCountry>GB</UserCountry></Context>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Property>8675311</Property>
      <Context><UserCountry>CA</UserCountry></Context>
    </PropertyContext>
  </PropertyContextList>
</Query>

带上下文的查询(包括入住人数)

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2025-07-10</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <Context>
        <UserCountry>US</UserCountry>
      </Context>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="7"/>
        </Children>
      </OccupancyDetails>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Context>
        <UserCountry>GB</UserCountry>
      </Context>
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
    </PropertyContext>
  </PropertyContextList>
</Query>

带上下文的查询仅指定用户所在国家/地区上下文。将来,此类查询可能还会指定用户设备。

入住日期范围

如果您使用价格更改,则查询消息的结构取决于您用于入住日期范围、确切行程或范围行程的提示类型。 如需详细了解每种 提示类型,请参阅提示响应消息

以下示例展示了入住日期 范围的价格 <Query> 消息:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <FirstDate>2023-05-23</FirstDate>
  <LastDate>2023-05-26</LastDate>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

此示例请求更新以下住宿的价格(针对每家酒店):

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/24/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

范围住宿

以下示例展示了范围住宿的价格 <Query> 消息:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <FirstDate>2023-05-23</FirstDate>
  <LastDate>2023-05-26</LastDate>
  <AffectedNights>3</AffectedNights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

此示例请求更新每家酒店的价格:

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/25/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

在给定夜晚之前(但包括该夜晚)开始的住宿:

5/20/23 - 5/23/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23

元数据查询消息

以下示例展示了一个 <Query> 消息,该消息请求更新多个酒店的客房和套餐信息的元数据:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <HotelInfoProperties>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </HotelInfoProperties>
</Query>

您可以使用定义客房和套餐元数据的交易消息来响应此类查询消息。如需了解详情,请参阅 定义客房和套餐元数据