Stawki warunkowe

Ceny warunkowe to typ reguły dotyczącej cen, który umożliwia oferowanie różnych cen. według kryteriów takich jak urządzenie, kraj lub czy użytkownik zalogował się w Google.

Jeśli w planie podróży masz więcej niż jedną cenę publiczną lub warunkową pakiet pokoi, użytkownik zobaczy najniższą stawkę. Google zawsze wybiera najniższe stawki kwalifikujących się użytkowników.

Omówienie

Ceny warunkowe są widoczne w standardowych przedziałach cenowych – tylko użytkownikom, których wyszukiwania spełniają kryteria powiązanej ceny warunkowej. Kryteria te mogą być oparte na:

Aby włączyć ceny warunkowe, zmodyfikuj te elementy:

Ceny warunkowe zależnie od urządzenia

Stawki za konkretne urządzenia to ceny hotelowe, które są widoczne i możliwe do zarezerwowania tylko przez na określonych urządzeniach, np. telefonach, tabletach lub komputerach. Stawki są udostępniane przez partnerów Google, a użytkownicy mogą je przeglądać i rezerwować na stronie partnera.

fenced_rates

Ceny warunkowe w poszczególnych krajach

Stawki obowiązujące w poszczególnych krajach to stawki hotelowe, które są widoczne i dostępne tylko do zarezerwowania przez użytkowników, którzy szukają hoteli w określonym kraju. Google aby określić kraj na podstawie adresu IP użytkownika. Ceny są podane przez partnerów Google, a użytkownicy mogą zobaczyć i zarezerwować usługę w tym samym kraju na stronie partnera w danym kraju.

Ceny warunkowe w poszczególnych językach

Stawki w określonych językach są widoczne tylko dla użytkowników szukających hoteli gdy użytkownik korzysta z określonego ustawienia języka w Google. Zależnie od języka warunki są definiowane za pomocą elementu <LanguageCode>.

Niespróbkowane ceny warunkowe

Niespróbkowane stawki warunkowe są widoczne tylko dla losowego podzbioru wszystkich wartości uprawnionych użytkowników. Częstotliwość próbkowania jest określana za pomocą funkcji <MaxUsersPercent> i oblicza się go według tego:

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

Ceny warunkowe po zalogowaniu

Wskaźniki zalogowanych użytkowników są widoczne tylko dla użytkowników, którzy zalogowali się przez Google koncie. Ceny są podane przez partnerów Google, a użytkownicy mogą je wyświetlić i dokonać rezerwacji na stronie partnera. Wskaźniki zalogowanych użytkowników określa się za pomocą <UserSignedIn> element.

Google zawsze wybiera najniższą kwalifikującą się cenę, jeśli stawka warunkowa jest wyższa niż cena ustawiona na poziomie <Result>, cena warunkowa nigdy nie zostanie wybrany. Aby tego uniknąć, usuń stawka w wysokości <Result> poziomu i warunków. Możesz też skontaktować się z technicznym menedżerem konta o używaniu domyślnej reguły dotyczącej ceny dla cen ustawionych na poziomie <Result>.

Utwórz plik XML z regułami dotyczącymi cen

Reguły dotyczące cen dla cen warunkowych są zdefiniowane w pliku XML reguł dotyczących cen. Dla: więcej informacji znajdziesz w pliku XML reguł dotyczących stawek Plik referencyjny.

Aktualizowanie pliku danych z cenami

Ceny warunkowe są określane za pomocą elementu w Wiadomość dotycząca transakcji.

Elementu <Rate> można też używać jako wielu elementów podrzędnych elementu <Rates>. w elementach <RoomBundle> lub <Result>. Aby użyć ich jako warunku stawki, musisz ustawić wartość atrybutu rate_rule_id tak, aby była zgodna z identyfikator reguły dotyczącej ceny zdefiniowany w pliku XML reguł dotyczących stawek.

Jeśli nie masz domyślnej stawki za podwójne obłożenie publiczne, ustaw <Baserate> element podrzędny wiadomości <Result> wysłanej do: -1. Dowolny <Rates> wysłane do Google w tym przypadku są uznawane za prawidłowe.

Przykłady

Podstawa + warunkowa

Poniższy przykład pokazuje komunikat transakcji, który zawiera podstawę cenę i cenę warunkową:

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

Poniższy przykład pokazuje wiadomość Transakcja, która zawiera pojedynczy poniżej <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 – wiele

Poniższy przykład pokazuje wiadomość transakcji, która zawiera wiele ceny poniżej <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>

Brak publicznego dwuosobowego pokoju

Przykład poniżej pokazuje komunikat transakcji, który zawiera: cena warunkowa bez ceny za podwójne obłożenie publiczne:

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

Zaktualizuj plik strony docelowej

Aby kwalifikujący się użytkownicy mogli rezerwować obniżoną cenę w głębokim zmodyfikuj swoją stronę docelową . Dodatkowe wdrożenie mogą być też potrzebne w witrynie rezerwacji, aby prawidłowo wyświetlić i zrealizować obniżonych cenach.

Oczekujemy, że partnerzy będą przestrzegać ceny wyświetlanej za pomocą precyzyjnego linku zawierającego stawkę warunkową.

W dynamicznym precyzyjnym linku możesz uwzględnić regułę dotyczącą ceny poprzez jej nazwę, Atrybut id elementu <RateRule> ze zmienną RATE-RULE-ID.

W przykładzie poniżej dodano identyfikator reguły dotyczącej ceny:

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)

Plik strony docelowej obsługuje też dyrektywę IF-RATE-RULE-ID, która umożliwia warunkowo definiujesz części adresu URL, w zależności od tego, czy reguła istnieje:

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)

Ten przykład umożliwia wybór między 2 stronami docelowymi w zależności od tego, czy stawka identyfikator reguły.

Więcej informacji znajdziesz w sekcji Korzystanie ze zmiennych Warunki.