XML-файл правил тарифов определяет правила обслуживания условных и частных тарифов. Вы можете добавить или изменить XML-файл правил тарифов на странице «Правила тарифов» в Hotel Center . Дополнительную информацию об условных тарифах и частных тарифах см. в разделе Условные и частные тарифы .
Для каждого правила тарифа требуется id
, на который можно ссылаться в <Rate>
сообщения транзакции. <Rate>
, который ссылается на идентификатор правила тарифа, предоставляется только пользователям и при условиях, определенных правилом тарифа. На идентификатор правила тарифа также можно ссылаться с помощью переменной в URL-адресе целевой страницы .
<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 | Необходимый | нить | Уникальный идентификатор правила ставки. На этот идентификатор можно ссылаться с помощью Максимально допустимое количество символов — 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 (включительно). Например, 20 будет нацелено на 20% конечных пользователей. |
<MembershipProgram> | Optional | string | Указывает, что для ставки будет использоваться обработка пользовательского интерфейса программы членства, определенная Чтобы Значением |
<UserRateCondition> | Optional | <UserRateCondition> | Определяет одно или несколько условий, при совпадении которых применяются условные или частные тарифы. |
<UserCountry> | Optional | string | Код страны CLDR , например Указывает, что пользователь должен находиться в указанной стране. Google определяет страну конечного пользователя по его IP-адресу. |
<UserDeviceType> | Optional | enum | Определяет состояние типа устройства. Допустимые значения:
|
<UserListId> | Optional | string | Идентификатор списка пользователей Google Рекламы для списка аудитории. Это условие можно использовать только с |
<UserSignedIn> | Optional | boolean | Логическое значение, указывающее, должен ли пользователь входить в свою учетную запись Google. Значение true указывает, что пользователь должен войти в систему. Значение false указывает, что пользователь не должен входить в систему. Если вас не волнует, вошел ли пользователь в систему или вышел из нее, не включайте <UserSignedIn> состояние. |
<IsDomestic> | Optional | boolean | Логическое значение, указывающее, должен ли пользователь быть из той же страны, где находится отель. Значение true указывает, что пользователь должен быть из той же страны, что и отель. Значение false указывает, что пользователь может быть из любой страны, кроме страны отеля. Если вам нужен более детальный контроль, используйте условие <UserCountry> . |
Примеры условных ставок
Процент пользователей
В следующем примере условных тарифов указано, что тариф будет предложен случайным образом двадцати процентам пользователей:
<?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>
Указывает, как отобразить скрытую обработку пользовательского интерфейса для участников. Если он не включен, скрытый интерфейс пользовательского интерфейса не отображается.
Чтобы использовать <RateIneligibility>
в <RateRule>
, <MembershipProgram>
также необходимо указать в элементе <UserRateCondition>
для <RateRule>
.
Элемент <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>
Скрытые примеры членского рейтинга (несколько условий)
оп="любой"
Ставка по списку аудитории для участников + скрытая ставка для участников (скидка за существование) для не-членов
В этом примере частных тарифов указывается тип 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>
оп="все"
Рейтинг участников скрыт только для пользователей списка аудитории.
В этом примере тарифа для частных лиц указан 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>
Ценовой мультипликатор
Примените скидку 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>