As tarifas condicionais são um tipo de regra de tarifação que permite oferecer tarifas diferentes para itinerários com base em critérios como dispositivo, país ou se o usuário fez login no Google.
Quando você tem mais de uma tarifa pública ou condicional para um itinerário ou uma Categoria de quarto, o usuário vê a tarifa mais baixa. O Google sempre escolhe a menor taxa qualificada para o usuário.
Informações gerais
As tarifas condicionais ficam visíveis nos slots de preço padrão e exibidas apenas para os usuários com pesquisas que atendem aos critérios da tarifa condicional associada. Esses critérios podem se basear no seguinte:
- Dispositivo do usuário final
- País do usuário final
- Preferência de idioma do usuário final
- Subconjunto com amostragem reduzida de todos os usuários
- Se o usuário final está conectado
Para ativar as tarifas condicionais, modifique o seguinte:
Arquivo XML de regras de tarifação: define as condições em que as tarifas condicionais são aplicadas.
Feed de preços: use o elemento
<Rate>
em uma Mensagem de transação para definir as tarifas.Arquivo da página de destino: adicione valores específicos da regra de tarifação aos links diretos.
Tarifas condicionais específicas para dispositivos
As tarifas específicas por dispositivo são tarifas de hotel que só ficam visíveis e podem ser reservadas por usuários em um dispositivo específico, como smartphone, tablet ou computador. As tarifas são fornecidas pelos parceiros do Google, e os usuários finais podem conferir e reservar as mesmas tarifas específicas do dispositivo no site do parceiro.
Tarifas condicionais específicas do país
As tarifas específicas de um país são tarifas de hotéis visíveis e que só podem ser reservadas por usuários que pesquisam hotéis de um país específico. O Google determina o país usando o endereço IP do usuário final. As tarifas são fornecidas pelos parceiros do Google, e os usuários finais podem consultar e reservar as mesmas tarifas específicas para cada país no próprio site do parceiro.
Tarifas condicionais para idiomas específicos
As tarifas específicas de idiomas ficam visíveis apenas para os usuários que pesquisam hotéis com uma configuração de idioma específica no Google. As condições
específicas do idioma são definidas usando o elemento <LanguageCode>
.
Tarifas condicionais reduzidas
As taxas condicionais reduzidas são visíveis apenas para um subconjunto aleatório de todos
os usuários qualificados. A taxa de amostragem é definida usando o elemento <MaxUsersPercent>
e calculada da seguinte maneira:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
Tarifas condicionais para login
As taxas de login só são visíveis para usuários que fizeram login com uma Conta do
Google. Os parceiros do Google fornecem as tarifas, e os usuários podem visualizar e reservar
as tarifas no próprio site do parceiro. As taxas de login são definidas usando o
elemento <UserSignedIn>
.
Como o Google sempre seleciona a menor tarifa qualificada, se uma tarifa condicional
for maior que o preço definido no nível do <Result>
, a tarifa condicional
nunca será selecionada. Para evitar isso, remova a
taxa no nível <Result>
e condicione todas as taxas. Como alternativa, pergunte ao seu gerente técnico de contas
sobre o uso de uma regra de tarifação padrão para preços definidos no nível do <Result>
.
Criar um arquivo XML de regras de tarifação
As regras de tarifação para tarifas condicionais são definidas usando um arquivo XML de regras de tarifação. Para mais informações, consulte a Referência XML de regras de tarifação.
Atualizar o feed de preços
As tarifas condicionais são definidas usando o elemento em uma Mensagem de transação.
O elemento <Rate>
também pode ser usado como vários elementos filhos de <Rates>
nos elementos <RoomBundle>
ou <Result>
. Para usá-lo como uma tarifa
condicional, defina o valor do atributo rate_rule_id
para que corresponda ao
ID da regra de tarifação definido no arquivo XML das regras de tarifação.
Se você não tiver uma taxa de ocupação dupla pública padrão, defina o elemento filho <Baserate>
da mensagem <Result>
como -1
. Qualquer <Rates>
condicional enviado ao Google nesse caso será considerado válido.
Exemplos
Base + condicional
O exemplo a seguir mostra uma Mensagem de transação que contém uma taxa básica e uma 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)
O exemplo a seguir mostra uma Mensagem de transação que contém uma única
taxa em um <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 vários
O exemplo a seguir mostra uma Mensagem de transação que contém várias
taxas em um <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>
Não há hóspedes duplos públicos
O exemplo a seguir mostra uma Mensagem de transação que contém tarifa condicional sem taxa pública de ocupação dupla:
<?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>
Atualizar o arquivo da página de destino
Para garantir que os usuários finais qualificados possam reservar a taxa com desconto por um link direto, modifique o arquivo da página de destino. Também é possível que outras implementações sejam necessárias no site de reserva para exibir corretamente as tarifas com desconto.
Esperamos que os parceiros respeitem o preço mostrado no link direto da tarifa condicional.
Em um link direto dinâmico, você pode incluir a regra de tarifação pelo nome, o
atributo id
do elemento <RateRule>
, com a variável RATE-RULE-ID
.
O exemplo a seguir adiciona o ID da regra de tarifação:
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)
O arquivo da página de destino também é compatível com a diretiva IF-RATE-RULE-ID
, que permite definir condicionalmente partes do URL, com base na existência da regra de tarifação:
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)
Neste exemplo, escolhemos entre duas páginas de destino que dependem da definição do ID da regra de tarifação.
Para mais informações, consulte Como usar variáveis e condições.