El archivo XML de reglas de tarifas define las reglas para publicar tarifas condicionales y tarifas privadas. Puedes agregar o editar un archivo XML de reglas de tarifas en la página Reglas de tarifas de Hotel Center. Para obtener más información sobre las tarifas condicionales y privadas, consulta Tarifas condicionales y privadas.
Cada regla de tasa requiere un id, al que se puede hacer referencia en un <Rate> de un mensaje de transacción. Un <Rate> que hace referencia a un ID de regla de tarifa solo se sirve a los usuarios y bajo las condiciones definidas por la regla de tarifa. También se puede hacer referencia a un ID de regla de tarifa utilizando una variable en una URL de página de destino .
<RateRuleSettings>
Es el elemento raíz del archivo XML de las reglas de tarifas. El elemento <RateRuleSettings> (anteriormente <PrivateRates>) contiene:
<UserRateCondition>elementos que definen las condiciones que deben coincidir para las tarifas condicionales y privadas. Por ejemplo, puede crear una tarifa condicional que se aplique según la condición de todos los usuarios en un país determinado.Elementos
<RateRule>que definen cada uno una regla de tarifa para referencia en un<Rate>en un mensaje Transaction. Cada<RateRule>especifica las condiciones y el tratamiento de la IU que componen una tarifa condicional o privada.
El elemento <RateRuleSettings> aparece en el siguiente lugar de la jerarquía XML de reglas de tarifas:
+<RateRuleSettings>+<UserRateCondition>+<RateRule>+<UserRateCondition>+<RateIneligibility>+<RateModification>
Sintaxis
El elemento <RateRuleSettings> usa la siguiente sintaxis:
<?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>Atributos
El elemento <RateRuleSettings> no tiene ningún atributo.
Elementos secundarios
El elemento <RateRuleSettings> tiene los siguientes elementos secundarios:
| Elemento secundario | ¿Obligatorio? | Tipo | Description |
|---|---|---|---|
<RateRule> |
Required | <RateRule> |
Define las condiciones de coincidencia, las modificaciones y la elegibilidad para prestar servicios con una tarifa condicional o privada. Requiere un atributo |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define una o más condiciones que, al coincidir, dan como resultado la aplicación de tarifas condicionales o privadas. Las condiciones se pueden definir de forma intercalada con elementos secundarios Un |
Ejemplos de tasas condicionales
Los siguientes ejemplos muestran formas básicas de definir tasas condicionales.
Se recomienda hacer referencia a condiciones predefinidas, como se muestra en el ejemplo Usuarios móviles.
Usuarios móviles
El siguiente ejemplo de tarifas condicionales define una regla de tarifas que coincide con todos los usuarios móviles haciendo referencia a un <UserRateCondition> predefinido:
<?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>
usuarios estadounidenses
El siguiente ejemplo de tarifas condicionales define una regla de tarifas que coincide con todos los usuarios que buscan en los EE. UU. haciendo referencia a un <UserRateCondition> predefinido:
<?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>
Un contenedor para especificar:
- Condiciones para prestar servicio a una tasa
- Modificaciones, si las hubiere, al precio y al tratamiento de la interfaz de usuario para la tarifa
- Uso de tratamientos de interfaz de usuario ocultos para tarifas privadas
El elemento <RateRule> aparece en el siguiente lugar de la jerarquía del XML de las reglas de tarifas:
+<RateRuleSettings>+<UserRateCondition>+<RateRule>+<UserRateCondition>+<RateIneligibility>+<RateModification>
Sintaxis
El elemento <RateRule> usa la siguiente sintaxis:
<?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>
Atributos
El elemento <RateRule> tiene los siguientes atributos:
| Atributo | ¿Es obligatorio? | Tipo | Descripción |
|---|---|---|---|
id |
Obligatorio | string |
Un identificador único para la regla de tarifas. Este ID se referencia utilizando el atributo El número máximo de caracteres permitidos es 40. Este ID no puede ser una cadena vacía. |
Elementos secundarios
El elemento <RateRule> tiene los siguientes elementos secundarios:
| Elemento hijo | ¿Obligatorio? | Tipo | Description |
|---|---|---|---|
<RateIneligibility> |
Optional | <RateIneligibility> |
Especifica los valores que determinan el tratamiento específico de la interfaz de usuario para una tasa <MembershipProgram>.
Solo válido cuando |
<UserRateCondition> |
Required | <UserRateCondition> |
Define una o más condiciones que, al coincidir, dan como resultado la aplicación de tarifas condicionales o privadas. Las condiciones se pueden definir en línea utilizando elementos secundarios Tenga en cuenta, sin embargo, que cuando un |
<RateModification> |
Optional | <RateModification> |
Modifica el tratamiento de la interfaz de usuario para tarifas privadas. |
<PromoCode> |
Optional | string | Especifica un código que se asociará con la tarifa si se aplica esta regla de tarifa. Se refleja en la variable PROMO-CODE de la página de destino. |
<UserRateCondition>
Define una o más condiciones que, al coincidir, dan como resultado la aplicación de tarifas condicionales o privadas.
El elemento <UserRateCondition> aparece en el siguiente lugar de la jerarquía XML de reglas de tarifas:
+<RateRuleSettings>+<UserRateCondition>+<RateRule>+<UserRateCondition>+<RateIneligibility>+<RateModification>
Sintaxis
El elemento <UserRateCondition> usa la siguiente sintaxis:
<?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>
Atributos
El elemento <UserRateCondition> tiene los siguientes atributos:
| Atributo | ¿Es obligatorio? | Tipo | Description |
|---|---|---|---|
id |
Required (if top-level under
<RateRuleSettings>) |
string |
Es un identificador único para este |
op |
Optional | enum |
El atributo
|
reference_id |
Optional | string |
Define este elemento como una referencia a otro Cuando
|
Elementos secundarios
El elemento <UserRateCondition> tiene los siguientes elementos secundarios:
| Elemento hijo | ¿Obligatorio? | Tipo | Description |
|---|---|---|---|
<AlwaysEligibleMembershipProgram> |
Optional | string | Especifica que la tarifa utilizará el tratamiento de interfaz de usuario visible de la tarifa para miembros. El valor de este elemento puede ser cualquier nombre de programa de membresía. |
<Description> |
Optional | string | Describe el <UserRateCondition>. Esto es solo para fines de documentación y no afecta a sus capacidades.
|
<LanguageCode> |
Optional | string | Especifica que la tarifa se ofrecerá a los usuarios cuyo idioma coincida con este
código de idioma de dos letras.
Nota>: Se recomienda usar |
<MaxUsersPercent> |
Optional | float | Especifica que la tarifa se ofrecerá de forma aleatoria a este porcentaje de usuarios finales. El valor debe ser un número entero entre 0 y 100 (inclusive). Por ejemplo, 20 se dirigirá al 20% de los usuarios finales. |
<MembershipProgram> |
Optional | string | Especifica que la tarifa utilizará un tratamiento de UI de programa de membresía según lo determinado por el Para que El valor de |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define una o más condiciones que, cuando coinciden, generan tarifas condicionales o privadas. Un |
<UserCountry> |
Optional | string | Un código de país CLDR, como Especifica que el usuario debe estar ubicado en el país especificado. Google determina el país del usuario final a partir de su dirección IP. |
<UserDeviceType> |
Optional | enum | Define la condición del tipo de dispositivo. Los valores permitidos son:
|
<UserListId> |
Optional | string | El ID de la lista de usuarios de Google Ads de una lista de audiencia.
Esta condición solo se puede usar con |
<UserSignedIn> |
Optional | boolean | Un valor booleano que especifica si el usuario debe haber iniciado sesión en su cuenta de Google o no. Un valor de true indica que el usuario debe haber iniciado sesión. Un valor de false indica que el usuario no debe haber iniciado sesión. Si no te importa si el usuario ha iniciado sesión o no, no incluyas una condición <UserSignedIn>.
|
<IsDomestic> |
Optional | boolean | Un valor booleano que especifica si el usuario debe ser del mismo país donde se encuentra el hotel. Un valor de true indica que el usuario debe ser del mismo país que el hotel. Un valor de false indica que el usuario puede ser de cualquier país distinto al del hotel. Si desea un control más preciso, utilice la condición <UserCountry>.
|
Ejemplos de tasas condicionales
Porcentaje de usuarios
El siguiente ejemplo de tarifas condicionales especifica que la tarifa se ofrecerá aleatoriamente al veinte por ciento de los usuarios:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="20_percent_users">
<UserRateCondition>
<MaxUsersPercent>20</MaxUsersPercent>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Reino Unido y usuarios móviles
El siguiente ejemplo de tarifas condicionales define una regla de tarifas que coincide con todos los usuarios que buscan en el Reino Unido con un dispositivo móvil mediante el uso de un <UserRateCondition> en línea:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="gb_mobile">
<UserRateCondition op="all">
<UserCountry>GB</UserCountry>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Japón y no Japón
En el siguiente ejemplo de tarifas condicionales, se muestra una regla de tarifas que coincide con los usuarios de Japón y otra que coincide con los usuarios del resto del mundo (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>
Cualquiera, todos y ninguno
El siguiente ejemplo de tasas condicionales muestra cómo se puede usar el atributo op para hacer coincidir múltiples condiciones de diferentes maneras usando los valores any, all y none. Por ejemplo, como se muestra en la condición au_nz, puede usar any para hacer coincidir usuarios en cualquiera de varios países. Como se muestra en la regla de tasa au_nz_mobile_tablet, puede usar all para exigir que los usuarios cumplan varias condiciones. La regla de tasa row_mobile_tablet coincidirá con los usuarios que se encuentren en el resto del mundo (fila), excluyendo Australia y Nueva Zelanda, y que también cumplan la condición 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>
Ejemplos de tarifas privadas
Tasa de miembros visible 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="member_visible">
<UserRateCondition>
<AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Tarifa para miembros visible 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>
Calificación de la lista de audiencia 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="audience_list">
<UserRateCondition>
<UserListId>[enter an audience list id]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Calificación de la lista de audiencia 2
Este ejemplo de tarifas privadas muestra cómo especificar un tratamiento de interfaz de usuario visible para tarifas de miembros para múltiples listas de audiencia:
<?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>
Indica cómo mostrar el tratamiento de la IU oculta de la tarifa para miembros. Si no se incluye, el tratamiento de la interfaz de usuario oculta de la tarifa para miembros no se muestra.
Para usar <RateIneligibility> en un <RateRule>, también se debe especificar <MembershipProgram> en un elemento <UserRateCondition> para el <RateRule>.
El elemento <RateIneligibility> aparece en el siguiente lugar de la jerarquía XML de las reglas de tarifas:
+<RateRuleSettings>+<UserRateCondition>+<RateRule>+<UserRateCondition>+<RateIneligibility>+<RateModification>
Sintaxis
El elemento <RateIneligibility> usa la siguiente sintaxis:
<?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>
Atributos
El elemento <RateIneligibility> no tiene atributos.
Elementos secundarios
El elemento <RateIneligibility> tiene los siguientes elementos secundarios:
| Elemento hijo | ¿Obligatorio? | Tipo | Description |
|---|---|---|---|
<IneligibilityType> |
Required | enum | Define cómo el texto (que se muestra junto a la tasa tachada) describirá la tasa oculta. Estos son los valores válidos:
Obtenga más información sobre los tratamientos de UI en Detalles y ejemplos de tarifas privadas. |
<IneligibilityReason> |
Required | enum | Estos son los valores válidos:
|
Ejemplos de tarifas privadas
Esta sección incluye ejemplos ocultos de tasas de membresía (básicos) y ejemplos ocultos de tasas de membresía (múltiples condiciones). También puedes mostrar las tarifas de tus miembros a subconjuntos de usuarios. Para mostrar los precios de las tarifas para miembros, primero debes enviar el precio de la tarifa para miembros individual del paquete de habitaciones más económico y, luego, los precios de los paquetes de habitaciones restantes. No se permiten tarifas para múltiples miembros.
Para ver ejemplos, consulta Ejemplos de tarifas privadas.
Ejemplos ocultos de tarifas de miembros (básicos)
Descuento exacto
<?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>
Descuento de banda
<?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>
Sugerencia de descuento
<?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>
Ejemplos ocultos de tarifas de miembros (múltiples condiciones)
op="cualquiera"
Tarifa de la lista de público para miembros + tarifa para miembros oculta (descuento por existencia) para usuarios que no son miembros
Este ejemplo de tarifas privadas especifica el tratamiento de interfaz de usuario oculta de tarifas para miembros de tipo existence, que se mostrará a los usuarios y no a la lista de audiencia. Los usuarios incluidos en la lista de audiencia verán la tasa de audiencia.
<?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"
Tasa de miembros oculta solo para usuarios de la lista de audiencia
En este ejemplo de tarifa privada, se especifica el tipo exact de tratamiento de la IU oculto de la tarifa para miembros, modificado con el texto adicional "más Wi-Fi gratis". Este tratamiento de la IU se mostrará a los usuarios que coincidan con la lista de público.
<?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>
Interfaz de usuario transparente/visible
Este ejemplo muestra cómo especificar la tarifa de los miembros con dos tratamientos de interfaz de usuario (interfaz de usuario transparente y visible) para los usuarios en la lista de audiencia y tarifas ocultas para todos los demás usuarios.
<?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>
Modifica el tratamiento de la IU para las tarifas privadas.
El elemento <RateModification> aparece en el siguiente lugar de la jerarquía XML de reglas de tarifas:
+<RateRuleSettings>+<UserRateCondition>+<RateRule>+<UserRateCondition>+<RateIneligibility>+<RateModification>
Atributos
El elemento <RateModification> no tiene ningún atributo.
Elementos secundarios
El elemento <RateModification> tiene los siguientes elementos secundarios:
| Elemento hijo | ¿Obligatorio? | Tipo | Description |
|---|---|---|---|
<HotelAmenity> |
Optional | enum | Combine con Estos son los valores válidos:
|
<PriceMultiplier> |
Optional | float | Modifica el precio multiplicando este valor por la tarifa base, los impuestos y las comisiones. Por ejemplo, si Esto te permite aplicar un descuento a todas las tarifas que cumplan una determinada regla tarifaria. |
Ejemplos de tarifas privadas
Servicio del hotel
Tarifa para miembros oculta para todos los usuarios (descuentos de banda) + wifi gratis
<?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>
Multiplicador de precios
Aplica un descuento del 5% a las tarifas para dispositivos móviles en el feed de precios
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="mobile">
<RateModification>
<PriceMultiplier>0.95</PriceMultiplier>
</RateModification>
<UserRateCondition>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>