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>
<PackageType>[direct_offer]</PackageType>
</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>
<PackageType>package_type</PackageType>
</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>.
|
<PackageType> |
Optional | enum | Определяет условие типа пакета. Допустимые значения:
Примечание. |
Примеры специальных цен
Процент пользователей
В примере ниже показано, как настроить специальную цену, которая будет случайным образом предлагаться 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>
Указывает, как показывать скрытый интерфейс с ценой для участников. Если не добавить этот атрибут, то скрытая цена для участников не будет показываться.
Чтобы использовать <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>
Примеры скрытых цен для участников (несколько условий)
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 скрытого оформления цены для участников, дополненный текстом "plus free 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>
Прямое предложение
Применение скидки 15% к тарифам прямых предложений для мобильных устройств в фиде с ценами
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="do-mobile">
<RateModification>
<PriceMultiplier>0.85</PriceMultiplier>
</RateModification>
<UserRateCondition>
<UserDeviceType>mobile</UserDeviceType>
<PackageType>direct_offer</PackageType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>