费率规则 XML 文件用于定义提供条件式费率和不公开费率的规则。您可以在 Hotel Center 中使用费率规则页面添加或修改费率规则 XML 文件。 如需详细了解条件式费率和不公开费率,请参阅条件式费率和不公开费率。
每条费率规则都需要一个 id
,该 id
可在交易消息的 <Rate>
中引用。引用费率规则 ID 的 <Rate>
仅会向费率规则定义的用户投放,并且仅在费率规则定义的条件下投放。还可以使用着陆页网址中的变量引用费率规则 ID。
<RateRuleSettings>
费率规则 XML 文件的根元素。<RateRuleSettings>
(之前为 <PrivateRates>
)元素包含:
用于定义条件式费率和不公开费率的匹配条件的
<UserRateCondition>
元素。例如,您可以创建一个条件式费率,该费率适用于特定国家/地区的所有用户。<RateRule>
元素,每个元素都定义了一个速率规则,用于在交易消息的<Rate>
中进行引用。每个<RateRule>
都指定了用于构建条件式费率或不公开费率的条件和界面处理方式。
<RateRuleSettings>
元素在费率规则 XML 层次结构中显示在以下位置:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
语法
<RateRuleSettings>
元素使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="some_id" op="[all|any|none]">
...
</UserRateCondition>
<!-- Required -->
<RateRule id="rate_rule_id">
<!-- Required -->
<UserRateCondition op="[all|any|none]">
...
</UserRateCondition>
</RateRule>
</RateRuleSettings>
属性
<RateRuleSettings>
元素没有任何属性。
子元素
<RateRuleSettings>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<RateRule> |
Required | <RateRule> |
定义了提供条件式费率或不公开费率的匹配条件、修改和资格要求。需要 |
<UserRateCondition> |
Optional | <UserRateCondition> |
定义一个或多个条件,当匹配到这些条件时,系统会提供条件式费率或不公开费率。 可以通过使用
|
条件式价格示例
以下示例展示了定义条件费率的基本方法。
建议引用预定义的条件,如移动用户示例所示。
移动设备用户
以下条件费率示例定义了一个费率规则,该规则通过引用预定义的 <UserRateCondition>
来匹配所有移动用户:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="mobile">
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
<RateRule id="mobile">
<!-- Referencing pre-defined conditions is recommended -->
<UserRateCondition reference_id="mobile"/>
</RateRule>
</RateRuleSettings>
美国用户
以下条件费率示例定义了一个费率规则,该规则通过引用预定义的 <UserRateCondition>
来匹配在美国进行搜索的所有用户:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="us">
<UserCountry>US</UserCountry>
</UserRateCondition>
<RateRule id="us">
<UserRateCondition reference_id="us"/>
</RateRule>
</RateRuleSettings>
<RateRule>
用于指定以下内容的容器:
- 提供费率的条件
- 房价的价格和界面处理方式的修改(如有)
- 针对不公开费率使用隐藏界面处理方式
<RateRule>
元素在费率规则 XML 层次结构中位于以下位置:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
语法
<RateRule>
元素使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<UserRateCondition ...>
...
</UserRateCondition>
<!-- At least one RateRule is required. The id attribute is required -->
<RateRule id="rate_rule_id">
<!-- One or more UserRateCondition elements (inline or referenced) are required. -->
<UserRateCondition op="[all|any|none]"> // Inline example
<Description>user_rate_condition_description</Description>
<!-- Uses the member rate visible UI treatment -->
<AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
<LanguageCode>language_code</LanguageCode>
<MaxUsersPercent>20</MaxUsersPercent> // 20% of users
<!-- Requires <RateIneligibility> -->
<MembershipProgram>program_name</MembershipProgram>
<UserRateCondition reference_id="user_rate_condition_id"/>
<UserCountry>country_code</UserCountry>
<UserDeviceType>[mobile|desktop|tablet]</UserDeviceType>
<UserListId>id</UserListId>
<UserSignedIn>[true|false]</UserSignedIn>
<IsDomestic>[true|false]</IsDomestic>
</UserRateCondition>
<RateIneligibility>
<IneligibilityType>[exact|price_band|existence]</IneligibilityType>
<IneligibilityReason>[program_member]</IneligibilityReason>
</RateIneligibility>
<RateModification>
<HotelAmenity>[free_wifi]</HotelAmenity>
</RateModification>
</RateRule>
</RateRuleSettings>
属性
<RateRule>
元素具有以下属性:
属性 | 是否必需? | 类型 | 说明 |
---|---|---|---|
id |
必需 | 字符串 |
费率规则的唯一标识符。此 ID 通过交易消息中 允许的最大字符数为 40。 |
子元素
<RateRule>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<RateIneligibility> |
Optional | <RateIneligibility> |
指定用于确定 <MembershipProgram> 比率的具体界面处理方式的值。
仅在 |
<UserRateCondition> |
Required | <UserRateCondition> |
定义一个或多个条件,当匹配到这些条件时,系统会提供条件式费率或不公开费率。 可以通过使用 不过请注意,当 |
<RateModification> |
Optional | <RateModification> |
修改了不公开费率的界面处理方式。 |
<PromoCode> |
Optional | string | 指定与费率关联的代码(如果应用此费率规则)。反映在 PROMO-CODE 着陆页变量中。 |
<UserRateCondition>
定义一个或多个条件,当匹配到这些条件时,系统会提供条件费率或私人费率。
在费率规则 XML 层次结构中,<UserRateCondition>
元素显示在以下位置:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
语法
<UserRateCondition>
元素使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<!-- "op" is required for more than one child element -->
<UserRateCondition id="some_id" op="[all|any|none]">
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
<UserRateCondition id="some_other_id" op="[all|any|none]">
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
<!-- At least one RateRule is required -->
<RateRule id="rate_rule_id">
<UserRateCondition reference_id="some_id"/>
</RateRule>
<RateRule id="rate_rule_id">
<UserRateCondition reference_id="some_other_id"/>
</RateRule>
<RateRule id="rate_rule_id">
<UserRateCondition>
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
</RateRule>
<span class="nocode"></RateRuleSettings></span>
属性
<UserRateCondition>
元素具有以下属性:
属性 | 是否必需? | 类型 | 说明 |
---|---|---|---|
id |
Required (if top-level under
<RateRuleSettings> ) |
string |
相应 |
op |
Optional | enum |
当
|
reference_id |
Optional | string |
将此元素定义为对另一个具有匹配 当存在
|
子元素
<UserRateCondition>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<AlwaysEligibleMembershipProgram> |
Optional | string | 指定相应费率将使用会员费率可见界面处理方式。 此元素的值可以是任何会员计划名称。 |
<Description> |
Optional | string | 描述 <UserRateCondition> 。这仅用于文档目的,不会影响其功能。
|
<LanguageCode> |
Optional | string | 指定将向语言与此双字母
语言代码匹配的用户提供相应费率。
注意>:建议您尽可能使用 |
<MaxUsersPercent> |
Optional | float | 指定将以随机方式向此百分比的最终用户提供相应费率。 该值必须是介于 0 到 100 之间的整数(含边界值)。例如,20 将定位 20% 的最终用户。 |
<MembershipProgram> |
Optional | string | 指定费率将使用会员计划界面处理方式,具体由 若要使
|
<UserRateCondition> |
Optional | <UserRateCondition> |
定义一个或多个条件,当匹配到这些条件时,系统会提供条件式费率或不公开费率。 具有 |
<UserCountry> |
Optional | string | CLDR 国家/地区代码,例如 指定用户必须位于指定国家/地区。 Google 会根据最终用户的 IP 地址确定其所在国家/地区。 |
<UserDeviceType> |
Optional | enum | 定义设备类型条件。允许的值有:
|
<UserListId> |
Optional | string | 受众群体名单的 Google Ads 用户名单 ID。
此条件只能与 |
<UserSignedIn> |
Optional | boolean | 一个布尔值,用于指定用户是否必须登录其 Google 账号。值 true 表示用户必须登录。值为 false 表示用户不得登录。如果您不在意用户是已登录还是已退出,请勿添加 <UserSignedIn> 条件。
|
<IsDomestic> |
Optional | boolean | 一个布尔值,用于指定用户是否必须来自酒店所在的国家/地区。值为 true 表示用户必须与酒店位于同一国家/地区。值 false 表示用户可能来自酒店所在国家/地区以外的任何国家/地区。如果您需要更精细的控制,请使用 <UserCountry> 条件。
|
条件式价格示例
用户百分比
以下条件式价格示例指定了价格将随机提供给 20% 的用户:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="20_percent_users">
<UserRateCondition>
<MaxUsersPercent>20</MaxUsersPercent>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
英国用户和移动设备用户
以下条件价格示例定义了一个价格规则,该规则使用内嵌 <UserRateCondition>
匹配所有在英国使用移动设备进行搜索的用户:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="gb_mobile">
<UserRateCondition op="all">
<UserCountry>GB</UserCountry>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
日本和非日本
以下条件费率示例展示了一条与日本用户匹配的费率规则,以及另一条与世界其他地区 (RoW) 的用户匹配的费率规则:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="jp">
<UserRateCondition>
<UserCountry>jp</UserCountry>
</UserRateCondition>
</RateRule>
<RateRule id="row_not_jp">
<UserRateCondition op="none">
<UserCountry>jp</UserCountry>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
任意、全部和无
以下条件费率示例展示了如何使用 op
属性,通过 any
、all
和 none
值以不同方式匹配多个条件。例如,如 au_nz
条件所示,您可以使用 any 来匹配多个国家/地区中的用户。如 au_nz_mobile_tablet
费率规则所示,您可以使用 all
要求用户满足多个条件。row_mobile_tablet
费率规则将匹配世界其他地区(行)的用户(澳大利亚和新西兰除外),并且这些用户还需满足 mobile_tablet
条件。
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="au_nz" op="any">
<UserCountry>AU</UserCountry>
<UserCountry>NZ</UserCountry>
</UserRateCondition>
<UserRateCondition id="mobile_tablet" op="any">
<UserDeviceType>mobile</UserDeviceType>
<UserDeviceType>tablet</UserDeviceType>
</UserRateCondition>
<RateRule id="au_nz_mobile_tablet">
<UserRateCondition op="all">
<UserRateCondition reference_id="au_nz"/>
<UserRateCondition reference_id="mobile_tablet"/>
</UserRateCondition>
</RateRule>
<RateRule id="row_mobile_tablet">
<UserRateCondition op="all">
<UserRateCondition op="none">
<UserRateCondition reference_id="au_nz"/>
</UserRateCondition>
<UserRateCondition reference_id="mobile_tablet"/>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
非公开价格示例
显示会员费率 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="member_visible">
<UserRateCondition>
<AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
显示会员费率 2
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="member_visible_es_only">
<UserRateCondition op="all">
<AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
<UserCountry>es</UserCountry>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
受众群体名单费率 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="audience_list">
<UserRateCondition>
<UserListId>[enter an audience list id]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
受众群体名单费率 2
此私人费率示例展示了如何为多个受众群体列表指定会员费率的可见界面处理方式:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<UserRateCondition op="all">
<AlwaysEligibleMembershipProgram>[enter the program name here]</AlwaysEligibleMembershipProgram>
<UserRateCondition op="any">
<UserListId>[enter one audience list id here]</UserListId>
<UserListId>[enter another audience list id here]</UserListId>
</UserRateCondition>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
<RateIneligibility>
指示如何显示隐藏会员费率的界面处理方式。如果未包含,则不会显示会员费率隐藏界面处理方式。
如需在 <RateRule>
中使用 <RateIneligibility>
,还必须在 <RateRule>
的 <UserRateCondition>
元素中指定 <MembershipProgram>
。
<RateIneligibility>
元素在费率规则 XML 层次结构中显示在以下位置:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
语法
<RateIneligibility>
元素使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<UserRateCondition ...>
...
</UserRateCondition>
<RateRule ...>
<UserRateCondition ...>
...
<!-- Required when using RateIneligibility -->
<MembershipProgram>program_name</MembershipProgram>
...
</UserRateCondition>
<RateIneligibility>
<IneligibilityType>[exact|price_band|existence]</IneligibilityType>
<IneligibilityReason>[program_member]</IneligibilityReason>
</RateIneligibility>
</RateRule>
</RateRuleSettings>
属性
<RateIneligibility>
元素没有任何属性。
子元素
<RateIneligibility>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<IneligibilityType> |
Required | enum | 定义文本(显示在划掉的价格旁边)如何描述隐藏的价格。 有效值包括:
详细了解非公开价格详情和示例中的界面处理方式。 |
<IneligibilityReason> |
Required | enum | 有效值包括:
|
非公开价格示例
本部分包含会员费率隐藏示例(基本)和会员费率隐藏示例(多种条件)。您还可以向部分用户显示会员费率。如需显示会员价,您应先发送最便宜的客房套餐的单个会员价,然后再发送剩余客房套餐的价格。不允许设置多个会员费率价格。
如需查看示例,请参阅非公开价格示例。
隐藏会员费率的示例(基本)
确切折扣
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>exact</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
频段折扣
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>price_band</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
提示折扣
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
隐藏会员费率的示例(多个条件)
op="any"
会员的受众群体名单费率 + 非会员的会员费率隐藏(存在折扣)
此私享费率示例指定了 existence
类型的会员费率隐藏界面处理方式,该费率将向用户显示,但不会向受众群体列表显示。受众群体名单中的用户将看到受众群体费率。
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition op="any">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserListId>[enter you audience list id here]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
op="all"
仅针对受众群体名单用户隐藏会员价格
此私享费率示例指定了 exact
类型的会员费率隐藏界面处理方式,并添加了“另赠送免费 Wi-Fi”文字。此界面处理方式将向符合受众群体名单条件的用户显示。
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program_for_audience_list">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>exact</IneligibilityType>
</RateIneligibility>
<RateModification>
<HotelAmenity>free_wifi</HotelAmenity>
</RateModification>
<UserRateCondition op="all">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserListId>[enter you audience list id here]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
透明/可见界面
此示例展示了如何为受众群体列表中的用户指定两种会员价格界面处理方式(透明界面和可见界面),并为所有其他用户指定隐藏价格。
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition op="any">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserRateCondition op="all">
<UserListId>[enter you audience list id here]</UserListId>
<AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
</UserRateCondition>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
<RateModification>
修改了不公开费率的界面处理方式。
在费率规则 XML 层次结构中,<RateModification>
元素显示在以下位置:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
属性
<RateModification>
元素没有任何属性。
子元素
<RateModification>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<HotelAmenity> |
Optional | enum | 与 有效值包括:
|
<PriceMultiplier> |
Optional | float | 通过将此值与基本费率、税费和其他费用相乘来修改价格。例如,如果 这样,您就可以对具有特定费率规则的所有费率应用折扣。 |
非公开价格示例
酒店设施
所有用户均无法看到会员价格(分档折扣)+ 免费 Wi-Fi
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>price_band</IneligibilityType>
</RateIneligibility>
<RateModification>
<HotelAmenity>free_wifi</HotelAmenity>
</RateModification>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
价格调节系数
对价格 Feed 中的移动设备专属费率应用 5% 的折扣
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="mobile">
<RateModification>
<PriceMultiplier>0.95</PriceMultiplier>
</RateModification>
<UserRateCondition>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>