Las tarifas condicionales son un tipo de regla de tarifas que te permite ofrecer tarifas diferentes para itinerarios, según criterios como el dispositivo del usuario, el país o si el usuario accedió a Google.
Cuando tienes más de una tarifa pública o condicional para un itinerario o Paquete de habitación, el usuario verá la tarifa más baja. Google siempre elige la más baja apta para el usuario.
Descripción general
Las tarifas condicionales se muestran en las ranuras de precios estándar y solo se muestran a los usuarios cuyas búsquedas cumplan con los criterios de la tarifa condicional asociada. Estos criterios pueden basarse en lo siguiente:
- Dispositivo de usuario final
- País del usuario final
- Preferencia de idioma del usuario final
- Submuestreo reducido de todos los usuarios
- Si el usuario final accedió
Para habilitar las tarifas condicionales, modifica lo siguiente:
Archivo en formato XML de reglas de tarifas: Define las condiciones en las que se aplican las tarifas condicionales.
Feed de precios: Usa el
<Rate>
en un mensaje de transacción para establecer las tarifas.Archivo de página de destino: Agregar valores específicos de las reglas de tarifas a tus vínculos directos.
Tarifas condicionales específicas para dispositivos
Las tarifas específicas por dispositivo son las tarifas de hoteles que solo pueden ver y reservar las usuarios en un dispositivo específico, como un dispositivo móvil, una tablet o una computadora de escritorio. Las tarifas son proporcionados por los socios de Google, y los usuarios finales pueden ver y reservar el mismo según las tarifas específicas según el dispositivo en el sitio del socio.
Tarifas condicionales específicas de cada país
Las tarifas específicas de cada país son tarifas de hoteles que solo se pueden ver y reservar por usuarios que buscan hoteles de un país específico. Google determina el país con la dirección IP del usuario final. Se proporcionan las tarifas. por los socios de Google, y los usuarios finales pueden ver y reservar la oferta en el sitio específico de cada país del socio.
Tarifas condicionales para cada idioma
Las tarifas específicas por idioma solo son visibles para los usuarios que buscan hoteles
con una configuración de idioma específica en Google. Específico del lenguaje
se definen con el elemento <LanguageCode>
.
Tarifas condicionales de reducción de muestreo
Las tasas condicionales de reducción de muestreo son visibles solo para un subconjunto aleatorizado de todas
usuarios aptos. La tasa de muestreo se define con el <MaxUsersPercent>
y se calcula de la siguiente manera:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
Tarifas condicionales con acceso a la cuenta
Las tarifas de acceso solo son visibles para los usuarios que accedieron con una cuenta de Google
de servicio predeterminada. Los socios de Google proporcionan las tarifas, y los usuarios pueden ver y reservar
las tarifas en el sitio del socio. Las tarifas de acceso se definen con la
<UserSignedIn>
.
Dado que Google siempre selecciona la tarifa apta más baja, si se trata de una tarifa condicional
es superior al precio establecido en el nivel <Result>
, la tarifa condicional
nunca se seleccionará. Para evitarlo, quita el
de conversiones en el <Result>
nivelar y acondicionar todas las tarifas. También puedes comunicarte con tu administrador técnico de cuentas
sobre el uso de una regla de tarifas predeterminada para los precios establecidos a nivel de <Result>
.
Crea un archivo en formato XML de reglas de tarifas
Las reglas de tarifas para las tarifas condicionales se definen con un archivo en formato XML de reglas de tarifas. Para Para obtener más información, consulta el archivo XML de reglas de tarifas. Referencia.
Actualiza tu feed de precios
Las tarifas condicionales se establecen usando el elemento de una Mensaje de transacción.
El elemento <Rate>
también se puede usar como varios elementos secundarios de <Rates>
dentro de los elementos <RoomBundle>
o <Result>
. Para usarlo como condicional
debes configurar el valor del atributo rate_rule_id
para que coincida
el ID de las reglas de tarifas que definiste en el archivo en formato XML de reglas de tarifas.
Si no tienes una tarifa pública predeterminada de ocupación doble, configura el <Baserate>
Es el elemento secundario del mensaje <Result>
para -1
. Cualquier condicional
Los <Rates>
que se envíen a Google en este caso se considerarán válidos.
Ejemplos
Base + condicional
El siguiente ejemplo muestra un mensaje Transaction que contiene una base y una tarifa condicional:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
RoomBundle individual
El siguiente ejemplo muestra un mensaje Transaction que contiene un solo
Tarifa inferior a <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomBundle>
<RoomID>single</RoomID>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</RoomBundle>
<RoomBundle>
<RoomID>3</RoomID> <!-- Links to data in metadata -->
<RatePlanID>basic</RatePlanID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<ChargeCurrency>web</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">269.00</Baserate>
<Tax currency="USD">2.69</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rates>
</Rates>
</RoomBundle>
</Result>
</Transaction>
RoomBundle múltiple
El siguiente ejemplo muestra un mensaje Transaction que contiene varios
tarifas inferiores a un <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
No tiene ocupación doble pública
En el siguiente ejemplo, se muestra un mensaje Transaction que contiene Tarifa condicional sin tarifa pública de ocupación doble:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<!-- <Unavailable/> should not be specified when available nested rates
exist. -->
<Baserate currency="USD">-1</Baserate>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates. -->
<Rate rate_rule_id="mobile">
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Actualiza el archivo de tu página de destino
Para garantizar que los usuarios finales aptos puedan reservar la tarifa con descuento a través de una modifique el vínculo Página de destino predeterminado. Implementación adicional también se pueden necesitar en el sitio web de reservas para mostrar y cumplir correctamente el tarifas con descuento.
Esperamos que los socios respeten el precio que se muestra en el vínculo directo de la tarifa condicional.
En un vínculo directo dinámico, puedes incluir la regla de tarifas por su nombre,
Atributo id
del elemento <RateRule>
, con la variable RATE-RULE-ID
.
En el siguiente ejemplo, se agrega el ID de regla de tarifas:
https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)&prid=(RATE-RULE-ID)
El archivo de páginas de destino también admite la directiva IF-RATE-RULE-ID
, que permite
defines partes de la URL de forma condicional en función de si la regla de tarifas
existe:
https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)
En este ejemplo, se elige entre dos páginas de destino, en función de si la tarifa el ID de regla.
Para obtener más información, consulta Usar variables y Condiciones.