Zapytanie i dokument XML wskazówek

Ta sekcja zawiera informacje o wiadomościach z prośbą o wskazówkę, wiadomościach z odpowiedzią na prośbę o wskazówkęwiadomościach z zapytaniem w formacie XML Google.

<Hint> (wiadomość z odpowiedzią)

Element główny wiadomości z odpowiedzią. Wiadomości z podpowiedziami określają, które kombinacje hoteli lub planów podróży powinny zostać ponownie wycenione. Są one odpowiedzią na wiadomość z prośbą o wskazówkę od Google.

Wiadomość Hint Response powinna zawierać tylko te hotele, których ceny zmieniły się od czasu, gdy Google otrzymało z Twoich serwerów ostatnią pomyślną odpowiedź Hint Response.

Query

W wiadomościach z odpowiedzią na podpowiedź stosuje się jedną z tych metod, aby określić, które hotele i plany podróży powinny zostać ponownie wycenione przez Google:

  • Dokładne plany podróży: połączenie daty zameldowania i długości pobytu.

  • Zakresy dat zameldowania: określa zakres dat zameldowania, od pierwszej do ostatniej daty zameldowania.

  • Pobyty w określonym przedziale czasu (lub plany podróży w określonym przedziale czasu)

Każda z tych metod wymaga innej składni wiadomości Hint Response.

Więcej informacji znajdziesz w sekcji Wiadomości z odpowiedzią na podpowiedź.

Składnia

Element <Hint> używa innej składni w zależności od typu wiadomości Hint Response:

Dokładne plany podróży

Poniżej przedstawiono składnię dokładnych planów podróży w wiadomości Hint Response:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>hotel_ID</Property>
    ...
    <Stay>
      <CheckInDate>checkin_date</CheckInDate>
      <LengthOfStay>number_of_nights</LengthOfStay>
    </Stay>
  </Item>
  ...
</Hint>

Zakresy zameldowania

Poniżej przedstawiono składnię zakresów odprawy w wiadomości Hint Response:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>hotel_ID</Property>
    [...]

    <!-- Required -->
    <FirstDate>first_checkin_date</FirstDate>
    <!-- Required -->
    <LastDate>last_checkin_date</LastDate>
  </Item>
  ...
</Hint>

Pobyty w określonym przedziale czasu

Poniżej przedstawiono składnię pobytów w określonym przedziale w wiadomości Hint Response:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>1458700</Property>
    <Property>5418701</Property>
    <StaysIncludingRange>
      <!-- Required -->
      <FirstDate>2025-04-28</FirstDate>
      <!-- Optional -->
      <LastDate>2025-04-29</LastDate>
    </StaysIncludingRange>
  </Item>
  ...
</Hint>

Atrybuty

Element <Hint> zawiera atrybut opcjonalny: id. Jeśli jest podany, jest uwzględniany jako atrybut hintId w wiadomościach <Query> wysyłanych na podstawie tego <Hint>.

Elementy potomne

Element <Hint> ma te elementy podrzędne:

Element podrzędny Wymagany? Typ Typ odpowiedzi Opis
<CheckInDate> Required Date Dokładne plany podróży Data zameldowania w przypadku planu podróży.
<FirstDate> Required Date Zakresy zameldowania i trasy z zakresem Pierwsza data z zakresu dat dla zakresu zameldowania lub zakresowego komunikatu odpowiedzi z podpowiedzią dotyczącą pobytu. Wyniki zawierają użyte daty.
<Item> Required Object Wszystkie Kontener z hotelem lub planem podróży, który ma zostać zaktualizowany.
<LastDate> Required* Date Zakresy zameldowania i trasy z zakresem

Ostatnia data zakresu dat dla zakresu zameldowania lub zakresowego komunikatu podpowiedzi dotyczącego pobytu. Wyniki zawierają użyte daty.

* Ten element jest opcjonalny w przypadku pobytów w określonym zakresie dat.

<LengthOfStay> Required integer Dokładne plany podróży Liczba nocy w planie podróży wyrażona jako dodatnia liczba całkowita.
<Property> Required string Wszystkie

Identyfikator hotelu, który jest taki sam jak w liście hoteli. Liczba elementów <Property>, które możesz podać w jednym bloku <Item>, zależy od typu wiadomości z odpowiedzią na podpowiedź:

  • Dokładne plany podróży: do 100 hoteli.
  • Zakresy odprawy: więcej niż 1, jeśli w wiadomości <QueryControl> ustawisz <MultipleItineraries> na "checkin_range" .
  • Pobyt w określonym przedziale czasu: więcej niż 1, jeśli w wiadomości <QueryControl> ustawisz <MultipleItineraries> na "affected_dates" .
<Stay> Required Object Dokładne plany podróży Kontener na elementy <CheckinDate><LengthOfStay> w odpowiedzi z dokładnym planem podróży. Każdy element <Item> może zawierać tylko jeden element <Stay>.
<StaysIncludingRange> Required Object Plany podróży z zakresem Kontener elementów <FirstDate><LastDate> w wiadomości z odpowiedzią na wskazówkę dotyczącą pobytu w określonym zakresie.

Przykłady

Dokładne plany podróży

W tym przykładzie zdefiniowano wiele planów podróży dla jednej nieruchomości w wiadomości Hint Response:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2018-07-03</CheckInDate>
      <LengthOfStay>3</LengthOfStay>
    </Stay>
  </Item>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2018-07-03</CheckInDate>
      <LengthOfStay>4</LengthOfStay>
    </Stay>
  </Item>
</Hint>

Zakresy zameldowania

Poniższy przykład określa 2 hotele, których ceny uległy zmianie i które należy ponownie pobrać. Google otrzymuje wszystkie plany podróży w przypadku obiektów 12345 i 67890 w okresie od 3 do 6 lipca:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>12345</Property>
    <Property>67890</Property>
    <FirstDate>2018-07-03</FirstDate>
    <LastDate>2018-07-06</LastDate>
  </Item>
</Hint>

Pobyty w określonym przedziale czasu

Poniższy przykład pokazuje 2 różne zastosowania pobytów w określonym przedziale czasu: w przypadku zakresu nocy i w przypadku jednej nocy:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <!-- Google fetches prices for all itineraries (first and last date are set) -->
  <Item>
    <Property>12345</Property>
    <StaysIncludingRange>
      <FirstDate>2018-07-03</FirstDate>
      <LastDate>2018-07-06</LastDate>
    </StaysIncludingRange>
  </Item>

  <!-- Google fetches prices for a single night (first date only) -->
  <Item>
    <Property>67890</Property>
    <StaysIncludingRange>
      <FirstDate>2018-07-03</FirstDate>
    </StaysIncludingRange>
  </Item>
</Hint>

W każdym z tych przykładów Google odpowiada komunikatem <Query>, a Ty powinieneś(-aś) przesłać odpowiedź <Transaction> zawierającą aktualizacje cen dla określonych hoteli lub tras.

<HintRequest>

Element główny wiadomości z prośbą o podpowiedź. Google wysyła do Twojego serwera wiadomość z prośbą o wskazówkę i oczekuje odpowiedzi, która określa hotele i plany podróży, których ceny uległy zmianie od czasu, gdy Google otrzymało z Twojego serwera prawidłową odpowiedź z wskazówką.

Jeśli nastąpią zmiany cen, Google wyśle <Query>, które pobierze zaktualizowane dane o cenach wskazanych hoteli i tras.

Więcej informacji znajdziesz w artykule Wiadomości z prośbą o wskazówkę.

Składnia

Element <HintRequest> ma tę składnię:

Składnia

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
  <LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>

Atrybuty

Element <HintRequest> nie ma atrybutów.

Elementy potomne

Element <HintRequest> ma te elementy podrzędne:

Element podrzędny Typ Opis
<LastFetchTime> DateTime Ostatni raz, gdy Google udało się uzyskać odpowiedź na wiadomość z prośbą o wskazówkę.

Jeśli ten czas jest starszy niż ostatnia aktualizacja cen na serwerze, należy odpowiedzieć wiadomością Hint Response, w której określisz, w przypadku których hoteli nastąpiły zmiany.

Jeśli ostatnie pobieranie nie powiodło się, wartość zostanie ustawiona na stały interwał (aby uniknąć poważniejszych problemów z dużymi zaległościami). Obecna stała wartość interwału wynosi 1000 sekund, ale może ulec zmianie.

Więcej informacji znajdziesz w artykule Komunikaty odpowiedzi na podpowiedzi.

Przykłady

Poniższy przykład przedstawia wiadomość z prośbą o podpowiedź:

wiadomość z prośbą o podpowiedź

Poniższy przykład pokazuje wiadomość z prośbą o podpowiedź:

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest id="ABCDEF" timestamp="2018-06-07T16:20:00Z">
  <LastFetchTime>2018-03-25T00:04:09Z</LastFetchTime>
</HintRequest>

<Query>

Element główny wiadomości Query. Query wiadomości to żądania od Google dotyczące aktualizacji cen lub metadanych. Są one używane w przypadku trybów dostarczania Pull i Changed pricing.

Wiadomości z zapytaniami o ceny

Wiadomości z zapytaniem o cenę określają kombinacje obiektu i planu podróży, dla których podajesz ceny.

Gdy serwer otrzyma wiadomość z zapytaniem pricing, powinien odpowiedzieć wiadomością <Transaction> zawierającą żądane informacje o cenach.

Więcej informacji znajdziesz w omówieniu cen.

Istnieją 3 specjalne typy wiadomości Query:

  • Ceny na żywo: Google odpowiada na konkretną prośbę użytkownika, który prosi o aktualizację ceny w czasie rzeczywistym. Gdy partnerzy otrzymają komunikat Live pricing query, powinni odpowiedzieć komunikatem <Transaction>, który zawiera żądane informacje o cenach w elementach <Result>.

  • W przypadku cen kontekstowych: Google aktualizuje pamięć podręczną cen na podstawie kontekstów, które były popularne w przeszłości. Gdy otrzymasz komunikat With Context query, musisz odpowiedzieć komunikatem <Transaction> zawierającym żądane informacje o cenach w elementach <Result>.

    • Z zapytaniami kontekstowymi dotyczącymi pojedynczego miejsca

      Podając stawki w odpowiedzi na zapytania z kontekstem, należy przesyłać tylko stawkę odpowiadającą określonemu kontekstowi. Obłożenie w przypadku ceny podstawowej wymaga co najmniej 2 osób, więc jeśli w przypadku ceny podstawowej podana jest 1 osoba, zostanie to zignorowane i nadal będzie traktowane jako obłożenie podwójne. W takim przypadku przekaż cenę podstawową jako niedostępną i użyj zagnieżdżonej ceny w ramach ceny za 1 osobę. Zapoznaj się z przykładem odpowiedzi z kontekstem. Możesz użyć zmienionych cen z kontekstem, aby połączyć stawki, ustawiając atrybut mergeable na "true". Więcej informacji

    • Zmiana cen (wcześniej znane jako pobieranie z podpowiedziami) z kontekstem

      Gdy wyślesz <Transaction> odpowiedź na wiadomość w odpowiedzi na zapytanie o zmienione ceny z kontekstem, Google potraktuje ją jako pełne zastąpienie informacji o cenach i dostępności w przypadku danego hotelu lub planu podróży, a wszystkie stawki zależne od kontekstu zostaną wykluczone z odpowiedzi i usunięte z pamięci podręcznej.

      Aby zapobiec nadpisaniu, w elemencie <Result> w wiadomości <Transaction> ustaw atrybut mergeable na "true". Google dołącza do odpowiedzi stawki z istniejących stawek zapisanych w pamięci podręcznej dla podanego kontekstu. Jeśli nie używasz atrybutu z możliwością łączenia, musisz przesłać w odpowiedzi wszystkie stawki we wszystkich odpowiednich kontekstach.

    • Zapytanie o ceny na żywo z kontekstem

      Zapytanie o rzeczywiste ceny z kontekstem ma domyślnie atrybut z możliwością scalania, więc ustawianie tego atrybutu nie jest wymagane. Stawkę lub stawki musisz przesłać tylko w przypadku konkretnych kontekstów, o które poprosi Google, jeśli wszystkie pozostałe konteksty pozostają bez zmian. Jeśli zmieniły się inne konteksty, musisz wyraźnie przesłać zmiany dotyczące tych kontekstów. W przeciwnym razie nowe stawki nie zostaną zaktualizowane w pamięci podręcznej Google.

  • Metadane: Google wysyła prośby o aktualizacje metadanych pokoi i pakietów pokoi w przypadku określonych hoteli. Gdy otrzymasz wiadomość Metadata Query, musisz odpowiedzieć wiadomością <Transaction>, która zawiera dane o pokojach i pakietach pokoi w elementach <PropertyDataSet>. Więcej informacji znajdziesz w artykule Metadane pakietu Room Bundle.

Składnia

Element <Query> ma tę składnię:

Zapytanie o cenę

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <PropertyList>
    <Property>hotel_id</Property>
    ...
  </PropertyList>
</Query>

Ceny na żywo

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
  <FirstDate>YYYY-MM-DD</FirstDate>
  <LastDate>YYYY-MM-DD</LastDate>
  <!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
  <AffectedNights>number_of_nights</AffectedNights>
  <PropertyList>
    <Property>hotel_id</Property>
    ...
  </PropertyList>
  <!-- See documentation below for <Context> -->
  <Context>
   ...
  </Context>
</Query>

Zapytanie z kontekstem

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
  <FirstDate>YYYY-MM-DD</FirstDate>
  <LastDate>YYYY-MM-DD</LastDate>
  <!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
  <AffectedNights>number_of_nights</AffectedNights>
  <PropertyContextList>
    <PropertyContext>
      <Property>hotel_id</Property>
      ...
      <!-- See documentation below for <Context> -->
      <Context>
      ...
      </Context>
    </PropertyContext>
  </PropertyContextList>
</Query>

Metadane

<HotelInfoProperties>
  <Property>property_ID</Property>
  ...
</HotelInfoProperties>

Atrybuty

Element <Query> może zawierać jeden atrybut: latencySensitive.

Atrybut latencySensitive jest opcjonalny. Jeśli to pole jest podane i ma wartość true, oznacza to, że zapytanie jest Live Pricing Query. Aby Google wysyłało zapytania z atrybutem latencySensitive, skontaktuj się z Technicznym menedżerem konta.

Elementy potomne

Element <Query> ma te elementy podrzędne:

Element podrzędny Typ zapytania Typ Opis
<AffectedNights> Pricing integer Liczba nocy w przypadku pobytu w określonym przedziale czasu. Ten element jest używany tylko w przypadku zapytań o ceny za pobyt w określonym przedziale czasu, które są używane w przypadku zmiany cen.
<Checkin> Pricing Date Daty konkretnej zmiany ceny.
<Context> Pricing (Live Pricing Queries only) <Context> W przypadku zapytań o ceny na żywo określa parametry, w ramach których jest wysyłane zapytanie. Elementy podrzędne to:
  • <Occupancy>: łączna liczba gości
  • <OccupancyDetails>: rodzaj gości, np. dorośli lub dzieci.
  • <UserCountry>: kraj, w którym znajduje się użytkownik.
  • <UserDevice>: rodzaj urządzenia, którego gość użył do wyszukania hotelu, np. "mobile, „tablet” lub „desktop”;

Element <Context> może być powtarzany w jednym żądaniu, co umożliwia wysyłanie zapytań o różne obłożenie. Listę elementów podrzędnych, składnię i przykłady znajdziesz w sekcji <Context>.

<FirstDate> Pricing Date Data rozpoczęcia zakresu planów podróży, do których ma zastosowanie cena. Ten element jest używany tylko w przypadku zapytań dotyczących zakresu dat zameldowania w przypadku cen w ramach zmiany cen.
<HotelInfoProperties> Metadata string Co najmniej 1 usługa, dla której Google chce zaktualizować metadane pokoju i pakietu pokoi w wiadomości z metadanymi Query. Ten element może zawierać co najmniej 1 element <Property>, który określa identyfikatory obiektów hotelowych.
<LastDate> Pricing Date Data zakończenia zakresu planów podróży, do których ma zastosowanie cena. Ten element jest używany tylko w przypadku zapytań dotyczących zakresu dat zameldowania, które są używane z funkcją Pull + Hints.
<Nights> Pricing integer Liczba nocy w przypadku konkretnego planu podróży (maksymalnie 30).
<PropertyList> Pricing Object

Co najmniej 1 identyfikator hotelu, który wymaga aktualizacji cen.

Określ każdy hotel w elemencie <Property>. Wartość to ciąg tekstowy, który pasuje do identyfikatora hotelu na liście hoteli. Na przykład:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

Przykłady

Zapytanie o cenę

Ten przykład pokazuje wiadomość zapytania o cenę, która zawiera prośbę o aktualizacje cen dla zestawu hoteli dostępnych na 3 noce od 23 maja 2023 r.:

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </PropertyList>
</Query>

Zapytanie o rzeczywistą cenę

Poniższy przykład pokazuje zapytanie o ceny na żywo z limitem czasu odpowiedzi wynoszącym 500 milisekund:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>5</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>8675309</Property>
  </PropertyList>
  <Context>
    <Occupancy>4</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="8"/>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

Zapytanie z kontekstem

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <!-- In the future, device might be specified -->
      <Context><UserCountry>US</UserCountry></Context>
      <Context><UserCountry>GB</UserCountry></Context>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Property>8675311</Property>
      <Context><UserCountry>CA</UserCountry></Context>
    </PropertyContext>
  </PropertyContextList>
</Query>

Odpowiedź kontekstowa

Poniższy przykład pokazuje, jak ustawić stawkę podstawową na unavailable(-1) dla jednej osoby i zagnieździć stawki w elemencie <Occupancy>.

<?xml version="1.0" encoding="UTF-8"
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2025-11-19T18:36:48Z">
<Result>
  <Property>6781291</Property>
  <Checkin>2026-01-15</Checkin>
  <Nights>1</Nights>
  <!-- Base rate is set to -1 to indicate unavailability for the default (2-person) occupancy -->
  <Baserate currency="USD">-1</Baserate>
  <Tax currency="USD">0</Tax>
  <OtherFees currency="USD">0</OtherFees>
  <Rates>
    <!-- Nested Rate for Single Occupancy -->
    <Rate rate_rule_id="rule-951">
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
      <Baserate currency="USD">150.00</Baserate>
      <Tax currency="USD">15.00</Tax>
      <OtherFees currency="USD">5.00</OtherFees>
    </Rate>
  <!-- Other nested rates for different occupancies or room types could be included here if available -->
  </Rates>
</Result>
</Transaction>

Zapytanie o metadane

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <HotelInfoProperties>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </HotelInfoProperties>
</Query>

Więcej przykładów, w tym zapytań o ceny w przypadku pobytu w określonym przedziale czasu i przedziale dat zameldowania, znajdziesz w Queryprzykładach wiadomości.

<Context>

Element <Context> opisuje informacje dotyczące Live pricing query, w tym liczbę i rodzaj gości, kraj użytkownika i urządzenie użytkownika.

Wiele <Context> nigdy nie będzie używanych w przypadku różnych krajów użytkowników ani urządzeń użytkowników. Jeśli do wysyłania zapytań o wiele rodzajów zakwaterowania używasz wielu elementów <Context>, podaj cenę każdego rodzaju zakwaterowania jako dodatkowy pakiet pokoi dla odpowiedniego obiektu lub planu podróży. Każdy obiekt lub plan podróży powinien mieć jeden blok <Result> z cenami dla różnych liczb osób.

Szczegóły odpowiedzi na zapytanie <Context> znajdziesz w <OccupancyDetails>.

Składnia

Element <Context> ma tę składnię:

Składnia

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
  <Checkin>date</Checkin>
  <Nights>number_of_nights</Nights>
  <DeadlineMs>number_of_milliseconds</DeadlineMs>
  <PropertyList>
    <Property>property_ID</Property>
  </PropertyList>
  <Context>
    <Occupancy>total_number_of_guests</Occupancy>
    <OccupancyDetails>
      <NumAdults>number_of_adults</NumAdults>
      <Children>
        <Child age=age_of_one_child_guest/>
        <Child age=age_of_one_child_guest/>
      </Children>
    </OccupancyDetails>
    <UserCountry>end_user_country</UserCountry>
    <UserDevice>user_device_type</UserDevice>
  </Context>
</Query>

Elementy potomne

Element <Context> ma te elementy podrzędne:

Element podrzędny Typ zapytania Typ Opis
<Occupancy> Pricing integer Określa łączną liczbę gości.

Zapytania z parametrem <Occupancy> powinny (choć nie jest to obowiązkowe) zwracać wiadomość o transakcji z odpowiednimi pakietami pokoi zdefiniowanymi dla każdego parametru <Occupancy>. Jeśli jednak pakiety pokoi są niedostępne, zalecamy określenie elementu <Occupancy>.

Uwaga:<Occupancy> może nie zawsze pojawiać się w zapytaniu. W takich przypadkach należy zwrócić ceny wszystkich wariantów.

<OccupancyDetails> Pricing Object Poprzedza go <Occupancy>. Określa gości według typu, w tym:
  • <NumAdults>: liczba dorosłych gości
  • <Children><Child="age">: określa, którzy goście są dziećmi (zwykle w wieku 0–17 lat), i opcjonalnie zawiera wiek każdego dziecka.

Zapytania z parametrem <OccupancyDetails> powinny generować wiadomość o transakcji z odpowiednimi pakietami pokoi zdefiniowanymi dla każdego parametru <Occupancy>, ale jeśli pakiety pokoi są niedostępne, zalecamy określenie elementu <OccupancyDetails>.

Uwaga: znak <OccupancyDetails> może nie zawsze pojawiać się w zapytaniu. W takich przypadkach należy założyć, że wszyscy goście to osoby dorosłe.

<UserCountry> Pricing string

Filtruje stawki według kraju, w którym znajduje się użytkownik. Wartość to 2-literowy kod kraju, np. "US" w przypadku Stanów Zjednoczonych, lub kod regionu, np. "EU" w przypadku „Europy”.

Zapytania z określonym parametrem <UserCountry> powinny zwracać komunikat o transakcji z odpowiednim blokiem <Rates> zdefiniowanym dla kraju, którego dotyczy zapytanie.

<UserDevice> Pricing string

Filtruje stawki według typu urządzenia, z którego użytkownik prowadzi wyszukiwanie. Możliwe wartości:

  • mobile
  • desktop
  • tablet

Zapytania z określonym parametrem <UserDevice> powinny generować komunikat o transakcji z odpowiednim blokiem <Rates> zdefiniowanym dla typu urządzenia, którego dotyczy zapytanie.

Przykłady

Liczba osób

Poniższy przykład pokazuje zapytanie o ceny na żywo dla <Occupancy> w ramach <Context>. Zapytanie o ceny na żywo dotyczy 3 osób dorosłych.

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>4</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>45617</Property>
  </PropertyList>
  <Context>
    <Occupancy>3</Occupancy>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

Szczegóły obłożenia

Poniższy przykład pokazuje zapytanie o ceny na żywo z parametrem <OccupancyDetails> w ramach parametru <Context>. Zapytanie o ceny na żywo dotyczy 4 gości, z których 2 to dzieci. Szuka ono ceny obowiązującej w przypadku rezerwacji dokonanej przez gościa ze Stanów Zjednoczonych na urządzeniu mobilnym:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>5</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>8675309</Property>
  </PropertyList>
  <Context>
    <Occupancy>4</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="4"/>
        <Child age="12"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

Wiele kontekstów

W tym przykładzie pokazano użycie dodatkowego elementu <Context> w zapytaniu o ceny na żywo.

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
  <Checkin>2017-06-07</Checkin>
  <Nights>4</Nights>
  <DeadlineMs>500</DeadlineMs>
  <PropertyList>
    <Property>45617</Property>
  </PropertyList>
  <Context>
    <Occupancy>3</Occupancy>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
  <Context>
    <Occupancy>6</Occupancy>
    <OccupancyDetails>
      <NumAdults>4</NumAdults>
      <Children>
        <Child age="6"/>
        <Child age="10"/>
      </Children>
    </OccupancyDetails>
    <UserCountry>US</UserCountry>
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>