房间套装

借助客房套餐,您可以为单个房源定义多种客房类型,或 将客房行程与价格功能相结合, 提供了费率和销售条件, 价格。

主要概念和工作流程

借助客房套餐,您可以提供实体房型的其他组合 不同的服务套餐

下图显示了客房套餐的示例:

在此示例中,第一个套餐是基本房间,只有一项套餐的折扣 。第二种是其他客房类型,可供入住 为 3 名成人房客提供第 3 项是同一地点内的 属性。第四种是“高级”底层房间的房间 酒店设施与服务包括免费早餐或稍后结账等。

下图显示了费率功能的示例:

在搜索结果中显示客房套餐和评分功能受 与标准房价的选择流程相同。

客房套餐

您可以在交易消息中定义客房套餐和评分功能。根 是 <Transaction>

“交易”消息的结构取决于您要执行的操作: 定义有关客房套餐或房价功能的元数据,或更新 客房套餐的价格或空房情况。

元数据
<PackageData> <PropertyDataSet> 元素。有关详情,请参阅定义会议室和 软件包元数据。客房套餐使用现有的<RoomData>元素 介绍实体会议室的说明
价格和空房情况
使用 <RoomBundle> 元素定义客房套餐价格和空房情况 在 <Result> 中。有关 信息,请参阅定义价格和库存状况

基本房的房价、税费和其他费用为强制性规定 当它们未与客房套餐搭配使用时,<Result>;当它们未与客房套餐搭配使用时,可以移除 与 Room Bundle 一起使用。如果您使用 请按以下步骤进行操作:

  1. 包含基础方案的房价、税费及其他费用,低于 <Result>且 添加一个与基本客房套餐匹配的客房套餐。

  2. 如果需要,可以在同一 <Result> 代码块中定义其他房间套餐 。

  3. 启动客房套餐后,移除基本客房的房价、税费和 其他费用。

客房套餐元数据

在定义客房套餐和给设施评分时,您通常需要定义 价格说明中的附加服务 提供相关信息这些信息称为 客房套餐元数据。然后,您可以在定价中引用这些元数据 但不要将其包含在价格更新消息中。

定义 Room Bundle 时,请将现有的 <RoomData> 元素用于 实际房间说明和房价功能的 <PackageData> 元素 以及实体房间说明中未包含的字词

使用 <RoomData><PackageData> 元素 缩减酒店列表和酒店价格信息 Feed,因为它可以减少 事务消息中发送的重复数据量。

例如,房间名称和说明等数据通常会重复 提供各种实用信息您可以使用 <RoomData><PackageData> 元素对此类数据进行一次定义。行程专用客房套餐数据 然后与存储的房间和包定义合并 最终用户

Google 会将您的元数据与您的行程专用数据进行匹配, 广告内容系统通过特殊的处理 将名称和 来自 <RoomData><PackageData> 元素的说明, <RoomData>中描述的物理房间,并对设施和 软件包详细信息位于 <PackageData> 中。

如果您为单个房间或房间同时定义了房间数据和套餐数据 Google 会将这两种内容都包含在广告输出中,并用连字符分隔。

照片准则

发送会议室照片时,请遵循以下准则 确保您的照片会向用户显示:

  • 发送每种客房类型的照片,包括无障碍设施的照片 房间,例如带不同浴室的指定无障碍房间 例如滚入淋浴间

  • 至少添加 4 张会议室照片和至少 1 张 浴室。

  • 照片应展示的是房间本身而非房源。最 床、整个房间、浴室、起居区 以及从房间拍摄的视角(其他房间拍摄在同一张照片中); 阳台、露台或露台(如适用)

    拍摄桌子、厨房、咖啡机/茶具 和独特的房间功能

  • 避免拍摄人物和财产(例如外部或财产)的照片 酒店设施与服务 - 观光/旅游和美食。

  • 避免对物体的特写拍摄,例如高脚杯的特写。

  • 避免使用品牌和品牌,但有标牌或品牌的洗浴用品没有问题 包含在能拍下整个浴室区域的照片中。照片 不应包含大段文字、徽标或水印。

  • 提供视野开阔的标准横向(横向)照片; 避免鱼眼和扭曲的照片以最高分辨率拍摄照片 以提高排名。您无需提交不同版本相同的照片 解决方案。

数据优先级

系统会按照优先级从所有来源收集客房套餐数据并进行合并 规则来生成指定酒店、行程和客房套餐的最终数据。 优先级顺序如下(从低到高):

  1. (最低)合作伙伴数据
  2. 媒体资源数据
  3. <RoomData>,其中 <RoomID><RoomID> <RoomBundle> 个块
  4. <PackageData>,其中 <PackageID><PackageID> <RoomBundle> 个块
  5. (最高)<RoomBundle>

定义价格和库存状况

如需指定客房套餐的价格和空房情况,请在以下位置使用 <RoomBundle> 元素: 每个套餐或行程组合的交易消息。通过 <RoomBundle> 元素应在 <Result> 元素内。示例代码 两个 <RoomBundle> 元素的区别如下。请注意,在此示例中, 两个 <RoomBundle> 元素使用 <RoomID><PackageID>

对于每个 <Result>,其中包含的一组客房套餐会覆盖 现有集合。如果您没有定义任何 选择 <Result> 元素中的客房套餐或为设施评分,然后选择所有房间 系统会移除套餐,仅显示该酒店或行程的基本客房 。

请务必使用 <Name> 等元素使客房套餐更加丰富 对潜在客户具有吸引力,并确保其与酒店的着陆页保持一致 页面。在此示例中,您需要定义名称和其他描述性信息 。

<RatePlanID> 是可选的,表示会议室的唯一标识符。 软件包组合。我们强烈建议将 RatePlanID 作为变量 构建动态着陆页(以前称为“销售终端”)网址。有关详情,请参阅 使用变量和条件

以下元素在 Room 软件包中是可选的:

<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>

在实际账号中实现 Room Bundle 时,请在<Baserate> 客房套餐已启用。

<Result>
  <!-- Note: When using Room Bundles, the top level result price is no
       longer necessary. -->
  <Property>180054</Property>
  <Checkin>2017-10-07</Checkin>
  <Nights>2</Nights>
  <!-- Base Room Bundle -->
  <RoomBundle>
    <RoomID>060773</RoomID>
    <PackageID>P54321</PackageID>
    <Baserate currency="USD">199.99</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <!-- RatePlanID is optional and represents the unique identifier for a
    room and package data combination. We strongly recommend using RatePlanID
    as a variable to build your dynamic landing page (formerly Point of Sale)
    URL. For details, see Using Variables and Conditions. -->
    <RatePlanID>060773-P54321</RatePlanID>
  </RoomBundle>
  <!-- Premium Room Bundle -->
  <RoomBundle>
    <RoomID>436233</RoomID>
    <PackageID>P12345</PackageID>
    <!-- Price for 4 ("occupancy") -->
    <Baserate currency="USD">298.88</Baserate>
    <Tax currency="USD">42.12</Tax>
    <OtherFees currency="USD">10.00</OtherFees>
    <RatePlanID>436233-P12345</RatePlanID>
  </RoomBundle>
</Result>

定义客房和套餐元数据

如需定义客房套餐元数据,请使用 <PackageData><RoomData> 元素 在交易消息的 <PropertyDataSet> 元素内。

您在事务消息中定义了房间和套餐元数据, 与价格和库存状况数据分开显示。通过定义 预先提供数据,因此价格更新 比如说明、照片网址、酒店设施和其他有关 提供各种实用信息

Google 会为您存储这些元数据,并在出现这些元数据时将其插入您的广告中。 。您可以随时通过新的 交易消息。

在“Transaction”消息中,您需要在每个区块上设置套餐 ID 和房间 ID 然后在 <Result> 价格更新部分中引用。

如果会议室和套餐数据发生变化(例如添加新会议室) 属性,请发送一条包含 更新后的客房和套餐数据 - Google 会替换 包含新数据的房间或软件包

Google 建议您在初始设置期间定义元数据。更新后 预定义元数据,那么您只需引用 <RoomID>定价中的<PackageID>值 更新而不是包含所有 这些信息。Google 会使用这些 ID 来匹配客房和客房套餐 存储的元数据。这可以极大地减小 交易消息。

因为客房或行程组合的价格变化更频繁 比房间或套餐说明更复杂,只需定义一次元数据,然后引用 因此可以更高效地使用事务消息。此外,还有错误 例如使用元数据来消除 而不是以内嵌方式定义数据

定义元数据和价格的最有效方法,推荐使用 如下所示:

<!-- Efficient method of defining Room Bundles -->
<!----- Occupancy of 2 and 4 example ------>

<Transaction timestamp="2019-04-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note: Once defined it does not have to be repeated for future Transaction Messages. -->
  <!--       PropertyDataSets can also be defined and sent in their own Transaction Message -->
  <!--       separately from pricing. Google can be configured to pull just PropertyDataSets -->
  <!--       once per day (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4, but bundle is for 2 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageQueen.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate 4 and bundle is for 4 -->
      <Capacity>4</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/imageKing.jpg</URL>
        <Caption>
          <Text text="A bright and breezy way to enjoy your mornin'
            cuppa tea." language="en"/>
          <Text text="Une façon lumineuse et aérée pour profiter
            de votre journée tasse de thé." language="fr"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <BreakfastIncluded/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>

    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>060773-P54321</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy") -->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>060773-P12345</RatePlanID>
    </RoomBundle>
    <!-- Continue providing all available RoomBundle rates under matched
         property for any other occupancies -->
  </Result>
</Transaction>

入住人数和容纳人数

定义 Room Bundle 时,您必须了解 入住人数容纳人数

入住人数
客房套餐的入住人数。例如: “蜜月套票”入住人数为 2 人。您可以将 通过使用 <PackageData><RoomBundle> 元素的 <Occupancy> 子元素。
容量
每间会议室可容纳的人数上限。通过 客房容纳人数始终等于或高于入住人数。对于 例如“蜜月套房”酒店内最多可容纳六人 人,而您却为两位房客支付了套餐费用。您可以将 通过使用 <RoomData> 元素的 <Capacity> 子项来限制软件包的容量 元素。

为客房套餐定价时,您必须针对房客数量提供价格 (捆绑包的 <Occupancy> 元素)。如果 <Occupancy> 设置为 2,则其中的价格 必须是两个人。您不能将 <Occupancy> 设置为四人,并且 为两人设置套餐价格。

共享房间

您还使用客房套餐中的“入住人数和容纳人数”来为共享客房设置价格 客房住宿(如招待所)。例如,要将每个人 有 8 张床的宿舍价格,则您需要将“入住人数”设置为 18 的容量,并在 <RoomData> 名称中标识它。查看 示例

更新客房套餐

本部分介绍了如何移除不再可用的客房套餐 以及如何更新现有客房套餐的价格。

客房套餐移除

移除后,客房套餐与酒店价格不同 。

如需从商品目录中移除客房或行程组合,请将 将 <Result> 元素的 <Baserate> 更改为 -1。要为酒店移除客房套餐,请执行以下操作: 请删除<RoomBundle>元素 <Result> 块。

数据 Feed 中的客房套餐被视为集合,其数字范围不限 从 0 到 10 个。将 Room Bundle 发送给 Google 时, 当前的完整组合。您没有将单个客房套餐的值更改为 将之前可用的代码标记为不可用。包含的任何媒体包 最新的交易消息会替换当前这组消息。

例如,有 A、B、C 和 D 套装。您首先发送一条消息 定义了房间套装 A、B、C 和 D 的集合。之后,如果套装 B 售罄, 则您可以重新发送仅包含内容包 A、C 和 D 的整个集合。如果所有客房套餐均包括在内 如果客房已售罄,则发送一组空的客房套餐。

价格调整

如需更改客房套餐的价格,请在 <Result> 中设置新的 <Baserate> 元素。

每次您在交易中更新客房/行程的 <Result> 区块时 消息,您必须为每个应用提供一整套可用的客房套餐 <Result>。Google 会将现有的一组客房套餐替换为新的套餐 。如果您在<Result>中未提供任何客房套餐,则 Google 会移除该套餐 该客房或行程的所有客房套餐。

元数据更新

通过对 Google 发送的 <Query> 的响应,您可以更新客房套餐元数据。

您在回复“查询”消息时提供定义会议室的“事务处理”消息 以及指定酒店的套餐元数据。有关详情,请参阅查询 信息