As tarifas condicionais são um tipo de regra de tarifação que permite oferecer tarifas diferentes 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 Categoria de quarto, o usuário verá a tarifa mais baixa. O Google sempre escolhe a tarifa qualificada para o usuário.
Visão geral
As tarifas condicionais estão visíveis nos slots de preços padrão e são exibidas apenas aos usuários cujas pesquisas atendam 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 reduzido de todos os usuários
- Se o usuário final está conectado
Para ativar tarifas condicionais, modifique o seguinte:
Arquivo XML das regras de tarifação: Defina as condições em que as tarifas condicionais são aplicadas.
Feed de preços: use o
<Rate>
em uma Mensagem de transação para definir as taxas.Arquivo da página de destino: adicionar valores específicos da regra de tarifação aos seus links diretos.
Tarifas condicionais para dispositivos
As tarifas específicas para dispositivos são aquelas que só podem ser vistas e reservadas para usuários em um dispositivo específico, como celular, tablet ou computador. As taxas são fornecidos pelos parceiros do Google, e os usuários finais podem ver e reservar os mesmos tarifas específicas por dispositivo no site do parceiro.
Tarifas condicionais específicas de um país
As tarifas específicas por país são aquelas que só podem ser reservadas ou visualizadas por usuários que estão pesquisando hotéis de um país específico. Google determina o país usando o endereço IP do usuário final. As taxas são fornecidas pelos parceiros do Google, e os usuários finais podem ver e reservar as mesmas ofertas no site específico do país do parceiro.
Tarifas condicionais para idiomas
As tarifas específicas ao idioma são visíveis apenas para os usuários que estão pesquisando hotéis.
enquanto usam uma
configuração específica de idioma no Google. Específicos do idioma
as condições são definidas usando o elemento <LanguageCode>
.
Tarifas condicionais com redução de amostragem
As tarifas condicionais reduzidas são visíveis apenas para um subconjunto aleatório de todas
usuários qualificados. A taxa de amostragem é definida usando o método <MaxUsersPercent>
e calculada usando o seguinte:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
Tarifas condicionais para usuários conectados
As tarifas de login ficam visíveis apenas para os usuários que se conectarem com uma conta
do Compute Engine. Os parceiros do Google fornecem as tarifas, e os usuários podem visualizar e reservar
as tarifas no site do parceiro. As taxas de login são definidas usando o
<UserSignedIn>
.
Como o Google sempre seleciona a menor taxa qualificada, se uma tarifa condicional
for maior que o preço definido no nível do <Result>
, a tarifa condicional
nunca será selecionado. Para evitar isso, remova o
conv. em <Result>
ao nível e condição de 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 Para mais informações, consulte a documentação do XML de regras de tarifação Referência.
Atualizar seu feed de preços
As tarifas condicionais são definidas usando o elemento de 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 condição
padrão, defina o valor do atributo rate_rule_id
para corresponder
o ID da regra de tarifação que você definiu no arquivo XML das regras de tarifação.
Se você não tiver uma tarifa de ocupação dupla padrão, defina a <Baserate>
.
elemento filho da mensagem <Result>
para -1
. Qualquer condição
Neste caso, os <Rates>
enviados ao Google serão considerados válidos.
Exemplos
Base + condicional
O exemplo a seguir mostra uma Mensagem de transação que contém uma mensagem base 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 abaixo de <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
tarifas abaixo de <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 tem ocupação dupla pública
O exemplo a seguir mostra uma Mensagem de transação que contém Tarifa condicional sem tarifa pública para dois hóspedes:
<?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 o preço com desconto por meio de um , modifique sua página de destino arquivo. Implementação adicional também podem ser necessárias no site de reservas para mostrar e cumprir 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, é possível 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 oferece suporte à diretiva IF-RATE-RULE-ID
, que permite
você define condicionalmente partes do URL, dependendo se a regra de tarifação
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)
Este exemplo escolhe entre duas páginas de destino, dependendo se a taxa ID de regra estiver definido.
Para mais informações, consulte Como usar variáveis e Condições.