查询消息

查询消息是指 Google 发出的价格或元数据更新请求。它们可与“拉取”和“价格更改”这两种传送模式搭配使用。

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

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

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

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

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

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

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

价格查询消息

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

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

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

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

  1. 实时价格:如果启用,系统会在用户积极浏览指定房源或行程组合的价格时发送查询,并且您需要在指定的时间范围内做出响应。

  2. 包含背景信息:如果启用此选项,Google 发送给您的每个查询中都会包含用户背景信息建议,并且这些建议会反映搜索指定房源或行程组合的最常见用户类型。遵循这些建议可能会提高回答的效率。

  3. 元数据:此请求用于获取有关指定属性的聊天室和软件包的详细信息。

实时价格查询

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

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

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

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

使用实时价格查询的规则

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

  • 所请求的日期不是默认日期。

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

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

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

使用上下文查询

情境查询是指定期请求更新指定媒体资源或行程组合的数据库。它们包含适合这些组合的用户上下文列表。如果使用条件式价格,则发送所有可能的用户情境的价格可能会很昂贵,因此您可以使用此用户情境列表来限制响应。仅针对指定的用户情境返回价格,即可满足绝大多数相关用户查询。

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

元数据查询消息

元数据查询消息包含有关指定属性的聊天室和软件包信息的详细信息。

当您收到 metadata 查询消息时,应使用 <Transaction> 消息进行响应,该消息应在 <Result> 元素中指定所请求媒体资源的定价。

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

控制查询

本部分介绍了如何控制哪些房源和行程可以成为 Google 发出的查询消息的主题。

行程边界

您可以使用 <ItineraryCapabilities> 确定价格查询的可能边界。您可以定义规则,以确定您支持的日期范围和最长住宿时长。

您可以为 <MaxAdvancePurchase><MaxLengthOfStay> 设置适用于所有酒店或行程组合的默认值。您还可以为酒店群组定义这些设置。

查询消息示例

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

行程示例

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

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>in2<023-05>-<23/Chec>kin<
  Nights3/N>ights<
  Prope>rtyL<ist
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Prop>e<rty
  >/PropertyList
/Query

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

5/23/18 - 6/26/18

实时价格查询示例

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

<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>e<ncySensitive="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> Li<ve Pric>ing Query <request >--
<  Chec>k<in2023->05-<23/Checkin>
  <Nights2/Nig>h<ts
  DeadlineMs500/DeadlineMs
!-- The deadline represents the timeframe by which a response will need to be
     received by. This element is only displayed for a> Li<ve Pricing Q>uery <request >--
  Pr<opertyLis>t
 <   Pro>perty678<1291/Property
  /PropertyList
!-- Note that Context tags> ar<e poten>t<ially repeatable --
  Context
!-- The total number of guests occupying> the <room (adu>l<ts+childre>n) --<
    Occupancy3/>Occupan<cy
    Oc>c<upancyDeta>i<ls
      NumAdults2/NumAdults
!-- In this example one of the >3 guest<s is a 5>yr old ch<ild --
      C>hildren<
        >Child< age="5">;</
      /Children
    /OccupancyDetails
!-- The user was locate>d in <the US when> t<his search w>a<s made --
    UserCountryUS/UserCountry
!-- The user was searching from >a mob<ile device> at th<e time of s>ear<ch --
  > < UserDevicemobile/UserDevice
  /Context
/Query

此示例请求单个酒店的价格:

6/23/23 - 6/25/23

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

With Context 查询示例

以下是“With Context”查询的示例:

包含上下文的基本查询

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>in2<023-05>-<23/Chec>kin<
  Nights2/Nights
 > Prop<ertyContextList>
    Pr<opertyCo>ntext
 <     Property867<5309/Property
      !-- In the future, device m>ight be< specif><ied --
    >  <ContextUserC><ountryUS>/UserCo<untry/C><ontext
    >  <ContextUserC><ountryGB>/User<Country/Context
>    /<PropertyContext>
    Pr<opertyCo>ntext
 <     Property867<5310/Pro>perty
 <     Property867<5311/Pr><operty
    >  <ContextUserC><ountryCA>/User<Country/Context
>   < /PropertyContext
  >/<Proper>tyContextList
/Query

包含入住情况的基于上下文的查询

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>in2<025-07>-<10/Chec>kin<
  Nights2/Nights
 > Prop<ertyContextList>
    Pr<opertyCo>ntext
 <     Property867<5309/Pr>operty
  <    >Context
 <       UserCountryU<S/UserCo>untry
 <     /Cont<ext
      >Occupan<cy3/Occupancy
  >    Occup<ancyDetai>l<s
        >NumAdults<2/NumAdu>lts
       < Children
    >      Chi<ld age=&q>uot;7&q<uot;/
        /Ch>ildre<n
      /Occupan>cyDet<ails
    /Prope>rtyCont<ext
    >Propert<yContext
>      P<roperty>8675310/P<roperty
   >  < Context
   >     Us<erCountr>yGB/Use<rCountry
> <     /Context
   <   Occupa>ncy1/Occupancy
 <     Occup<ancyDetail>s
     <   NumAdul>ts1/NumAdult<s
      /Occupan>cyD<etails
    /Property>C<ontext>
  /PropertyContextList
/Query

对于上下文查询,仅指定用户国家/地区上下文。未来,此类查询可能还会指定用户设备。

入住日期范围

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

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

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8">;?
Query
 < Fi>rstDate202<3-05-23/>FirstDate
<  LastDat>e20<23-05->2<6/LastD>ate<
  Nights3/N>ights<
  Prope>rtyL<ist
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Prop>e<rty
  >/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" encodin>g<=&quo>t;U<TF-8">;?
Query
 < Fi>rstDate202<3-05-23/>FirstDate
<  LastDat>e20<23-05-26/LastD>a<te
  AffectedNi>ght<s3/AffectedN>ights<
  Prope>rtyL<ist
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Prop>e<rty
  >/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

在指定日期之前(但包括该日期)开始的 Plus 住宿:

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" encodin>g<=&quo>t;U<TF-8"?
Query
 > Hote<lInfoPro>pert<ies
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Property
  >/<HotelI>nfoProperties
/Query

您需要使用定义了客房和套餐元数据的 Transaction 消息来响应此类 Query 消息。如需了解详情,请参阅定义房间和软件包元数据