Tarifs sous conditions

Les tarifs sous conditions sont un type de règle d'offres qui vous permet de proposer différents tarifs pour des séjours en fonction de critères tels que l'appareil ou le pays de l'utilisateur, ou s'il est connecté à Google.

Si vous proposez plusieurs tarifs publics ou sous conditions pour un séjour ou une offre de chambres, le tarif le plus bas s'affiche. Google choisit toujours le tarif éligible le plus bas pour l'utilisateur.

Présentation

Les tarifs sous conditions sont visibles dans les emplacements de tarification standards et ne s'affichent que pour les utilisateurs dont les recherches répondent aux critères du tarif associé. Ces critères peuvent être basés sur les éléments suivants:

Pour activer les tarifs sous conditions, modifiez les éléments suivants:

Tarifs sous conditions spécifiques à l'appareil

Les tarifs spécifiques à l'appareil sont les tarifs de l'hôtel qui ne sont visibles et ne peuvent être réservés que par les utilisateurs d'un appareil spécifique, comme un mobile, une tablette ou un ordinateur. Ces tarifs sont fournis par les partenaires de Google, et les utilisateurs finaux peuvent consulter et réserver les mêmes tarifs spécifiques à l'appareil sur le site du partenaire.

fenced_rates

Tarifs sous conditions spécifiques à un pays

Les tarifs spécifiques à un pays correspondent aux tarifs de l'hôtel qui ne sont visibles et ne peuvent être réservés que par les utilisateurs qui recherchent des hôtels dans un pays spécifique. Google détermine le pays à l'aide de l'adresse IP de l'utilisateur final. Ces tarifs sont fournis par les partenaires de Google, et les utilisateurs finaux peuvent consulter et réserver les mêmes tarifs spécifiques à chaque pays sur le site du partenaire.

Tarifs sous conditions spécifiques à la langue

Les tarifs spécifiques à la langue ne sont visibles que par les utilisateurs qui recherchent des hôtels tout en utilisant un paramètre de langue spécifique dans Google. Les conditions spécifiques à une langue sont définies à l'aide de l'élément <LanguageCode>.

Tarifs sous conditions sous-échantillonnés

Les tarifs sous conditions sous-échantillonnés ne sont visibles que par un sous-ensemble aléatoire de tous les utilisateurs éligibles. Le taux d'échantillonnage est défini à l'aide de l'élément <MaxUsersPercent> et calculé à l'aide de la commande suivante:

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

Tarifs sous conditions pour les utilisateurs connectés

Les tarifs en cas de connexion ne sont visibles que par les utilisateurs connectés à un compte Google. Les partenaires de Google fournissent les tarifs, et les utilisateurs peuvent les consulter et les réserver sur leur propre site. Les tarifs en cas de connexion sont définis à l'aide de l'élément <UserSignedIn>.

Étant donné que Google sélectionne toujours le tarif éligible le plus bas, si un tarif sous conditions est supérieur au prix défini au niveau <Result>, il ne sera jamais sélectionné. Pour éviter cela, supprimez le tarif au niveau de <Result> et appliquez des conditions à tous les tarifs. Vous pouvez également contacter votre responsable de compte technique sur l'utilisation d'une règle d'offres par défaut pour les prix définis au niveau <Result>.

Créer un fichier XML de règles d'offres

Les règles d'offres pour les tarifs sous conditions sont définies à l'aide d'un fichier XML de règles d'offres. Pour en savoir plus, consultez la documentation de référence XML sur les règles d'offres.

Mettre à jour votre flux des prix

Les tarifs sous conditions sont définis à l'aide de l'élément dans un message Transaction.

L'élément <Rate> peut également être utilisé comme plusieurs éléments enfants de <Rates> dans les éléments <RoomBundle> ou <Result>. Pour l'utiliser comme tarif sous conditions, vous devez définir la valeur de l'attribut rate_rule_id de sorte qu'elle corresponde à l'identifiant de règle d'offres que vous avez défini dans le fichier XML de règles d'offres.

Si vous n'avez pas de tarif public par défaut pour une chambre pour deux personnes, définissez l'élément enfant <Baserate> du message <Result> sur -1. Toute valeur <Rates> conditionnelle envoyée à Google dans ce cas est considérée comme valide.

Exemples

Base + Conditions

L'exemple suivant présente un message Transaction contenant un tarif de base et un tarif sous conditions:

<?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 unique

L'exemple suivant présente un message Transaction contenant un seul tarif sous <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 multiple

L'exemple suivant présente un message Transaction contenant plusieurs tarifs dans une <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>

Pas de chambre double pour une personne publique

L'exemple suivant présente un message Transaction contenant un tarif sous conditions sans tarif public pour une chambre pour deux personnes:

<?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>

Mettre à jour votre fichier de pages de destination

Pour vous assurer que les utilisateurs finaux éligibles peuvent réserver au tarif réduit via un lien profond, modifiez votre fichier de page de destination. Une implémentation supplémentaire peut également être nécessaire sur le site Web de réservation pour afficher et appliquer correctement les tarifs réduits.

Les partenaires sont censés respecter le prix affiché via le lien profond de tarif sous conditions.

Dans un lien profond dynamique, vous pouvez inclure la règle d'offres par son nom, l'attribut id de l'élément <RateRule>, avec la variable RATE-RULE-ID.

Dans l'exemple suivant, l'identifiant de la règle d'offres est ajouté:

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)

Le fichier de page de destination accepte également la directive IF-RATE-RULE-ID, qui vous permet de définir des parties de l'URL de manière conditionnelle, selon que la règle d'offres 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)&currency=(USER-CURRENCY)

Cet exemple choisit entre deux pages de destination, selon que l'ID de la règle d'offres est défini ou non.

Pour en savoir plus, consultez Utiliser des variables et des conditions.