价格规则 XML 文件定义了应用条件式费率和不公开费率的规则。您可以使用 Hotel Center 中的费率规则页面添加或修改费率规则 XML 文件。如需详细了解条件式费率和不公开费率,请参阅条件式费率和不公开费率。
每条价格规则都需要一个 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 |
必需 | string |
价格规则的唯一标识符。在交易消息中使用 允许的最大字符数为 40。 |
子元素
<RateRule>
元素具有以下子元素:
子元素 | 是否必需? | 类型 | 说明 |
---|---|---|---|
<RateIneligibility> |
Optional | <RateIneligibility> |
指定用于确定 <MembershipProgram> 速率的具体界面处理方式的值。
仅当在 |
<UserRateCondition> |
Required | <UserRateCondition> |
定义一个或多个条件,如果匹配这些条件,系统会提供条件式费率或不公开费率。 条件可以使用 但请注意,当 |
<RateModification> |
Optional | <RateModification> |
修改了不公开费率的界面处理方式。 |
<PromoCode> |
Optional | string | 指定与费率关联的代码(如果应用此费率规则)。反映在 PROMO-CODE 着陆页变量中。 |
<UserRateCondition>
定义一个或多个条件,这些条件匹配后会导致提供条件式费率或不公开费率。
<UserRateCondition>
元素会显示在费率规则 XML 层次结构中的以下位置:
+<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(含 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
条件所示,您可以使用任意条件来匹配多个国家/地区中任一国家/地区的用户。如 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="任意"
会员受众群体名单费率 + 隐藏会员费率(针对非会员用户的现存折扣)
此不公开费率示例指定了 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>
修改了不公开费率的界面处理方式。
<RateModification>
元素会显示在费率规则 XML 层次结构中的以下位置:
+<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>