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:
- Urządzenie użytkownika
- Kraj użytkownika
- Ustawienia języka przez użytkowników
- Przekształcony podzbiór wszystkich użytkowników
- Sprawdzanie, czy użytkownik jest zalogowany
Aby włączyć ceny warunkowe, zmodyfikuj te elementy:
Plik XML z regułami dotyczącymi stawek: Określ warunki, jakie muszą spełniać ceny warunkowe.
Plik danych z cenami: użyj pliku
<Rate>
w wiadomości dotyczącej transakcji, aby ustawić stawki.Plik strony docelowej: dodaj wartości reguły stawki dla precyzyjnych linków.
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.
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)¤cy=(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)¤cy=(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.