Tarifas condicionais

As tarifas condicionais são um tipo de regra de tarifa que permite oferecer tarifas diferentes para itinerários com base em critérios como o dispositivo, o país ou o login do usuário no Google.

Quando você tem mais de uma tarifa pública ou condicional para um itinerário ou categoria de quarto, o usuário vê a tarifa mais baixa. O Google sempre escolhe a tarifa mais baixa qualificada para o usuário.

Visão geral

As tarifas condicionais aparecem nos slots de preços padrão e são mostradas apenas para usuários com pesquisas que atendem aos critérios da tarifa condicional associada. Esses critérios podem ser baseados em:

Para ativar as tarifas condicionais, modifique o seguinte:

Tarifas condicionais específicas do dispositivo

As tarifas específicas para dispositivos são tarifas de hotéis que só podem ser visualizadas e reservadas por usuários em um dispositivo específico, como um 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.

fenced_rates

Tarifas condicionais específicas do país

As tarifas específicas do país são tarifas de hotéis que só são visíveis e podem ser reservadas por usuários que procuram hotéis em 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 conferir e reservar as mesmas tarifas específicas do país no site específico do país do parceiro.

Tarifas condicionais específicas da linguagem

As tarifas específicas de idioma só aparecem para usuários que pesquisam hotéis com uma configuração de idioma específica no Google. As condições específicas da linguagem são definidas usando o elemento <LanguageCode>.

O idioma não é especificado nas mensagens de solicitação de With Context queries. Portanto, se você especificar <LanguageCode> nas regras de taxa, a resposta com o contexto precisará incluir todas as taxas relevantes específicas do idioma.

Tarifas condicionais com amostragem reduzida

As tarifas condicionais com downsampling só ficam visíveis para um subconjunto aleatório de todos os usuários qualificados. A taxa de amostragem é definida usando o elemento <MaxUsersPercent> e calculada usando o seguinte:

MaxUsersPercent = (number of users selected to view rate)/(total eligible users)

Tarifas condicionais de login

As taxas de usuários conectados são visíveis apenas para usuários que fizeram login com uma Conta do Google. Os parceiros do Google fornecem as tarifas, e os usuários podem conferir e reservar as tarifas no site do parceiro. As taxas de login são definidas usando o elemento <UserSignedIn>.

Como o Google sempre seleciona a tarifa qualificada mais baixa, se uma tarifa condicional for maior que o preço definido no nível <Result>, ela 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 taxa padrão para os preços definidos no nível <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 usar como uma tarifa condicional, defina o valor do atributo rate_rule_id para corresponder ao ID da regra de tarifação que você definiu 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 enviada ao Google nesse caso será considerada válida.

Exemplos

Base + condicional

O exemplo a seguir mostra uma mensagem de transação que contém uma taxa base e uma taxa 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 único

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 múltiplo

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>

Sem ocupação dupla pública

O exemplo a seguir mostra uma mensagem de transação que contém tarifa condicional sem tarifa 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 tarifa com desconto usando um link direto, modifique seu arquivo de página de destino. Outras implementações também podem ser necessárias no site de reservas para mostrar e atender 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, é possível incluir a regra de taxa 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)&currency=(USER-CURRENCY)&prid=(RATE-RULE-ID)

O arquivo da página de destino também oferece suporte à diretiva IF-RATE-RULE-ID, que permite definir partes do URL condicionalmente, com base na existência da regra de taxa:

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)&currency=(USER-CURRENCY)

Esse exemplo escolhe entre duas páginas de destino, dependendo se o ID da regra de taxa está definido.

Para mais informações, consulte Como usar variáveis e condições.