Zapytania dotyczące zapytań

Wiadomości z zapytaniami to prośby Google o aktualizacje cen lub metadanych. Są one używane w przypadku trybów dostarczania Pobieranie cen z podpowiedziami i Zmiana cen.

Elementem głównym wiadomości zapytania jest <Query>.

Struktura wiadomości zapytania zależy od typu wiadomości:

  • Ceny: Google wysyła wiadomość z zapytaniem o aktualizacje cen w przypadku określonych hoteli.

  • Metadane: Google wysyła wiadomość z zapytaniem, w której prosi o dane dotyczące pokoju i informacje o pakiecie w określonych hotelach.

Podczas konfiguracji początkowej określasz punkt końcowy, którego Google używa w przypadku zapytań i zapytań o ceny na żywo. Aby uzyskać więcej informacji, skontaktuj się z menedżerem technicznym konta.

Google wysyła wiadomość Query jako żądanie HTTP POST z nagłówkiem Content-Type ustawionym na „application/xml” i nagłówkiem User-Agent ustawionym na Google-HotelAdsPrices. Wyjątek od tej reguły występuje podczas ręcznego testowania integracji punktu końcowego ceny za pomocą Google-TravelAds-Live. Przykładowe zapytania mogą zawierać nagłówek User-Agent lub nie.

Szczegółowe informacje o formatowaniu wiadomości z zapytaniami znajdziesz w dokumentacji XML zapytań.

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 o cenę, powinien odpowiedzieć wiadomością <Transaction> zawierającą żądane informacje o cenie.

Więcej informacji znajdziesz w omówieniu cen.

Istnieją 3 specjalne typy wiadomości Query:

  1. Ceny na żywo: jeśli ta opcja jest włączona, zapytania są wysyłane, gdy użytkownik aktywnie przegląda ceny określonego obiektu lub kombinacji planu podróży, a Ty masz określony czas na odpowiedź.

  2. Z kontekstem: jeśli ta opcja jest włączona, rekomendacje dotyczące kontekstu użytkownika są uwzględniane w każdym zapytaniu wysyłanym do Ciebie przez Google. Rekomendacje odzwierciedlają najczęstsze typy użytkowników, którzy wyszukują daną kombinację obiektu lub planu podróży. Stosowanie się do tych rekomendacji może zwiększyć skuteczność Twoich odpowiedzi.

  3. Metadane: jest to prośba o szczegółowe informacje o pokojach i pakietach w przypadku określonych obiektów.

Zapytania o rzeczywistą cenę

Zapytania o ceny w czasie rzeczywistym to żądania Google dotyczące aktualizacji cen w czasie rzeczywistym w odpowiedzi na wyszukiwania użytkowników. Google otrzymuje od użytkownika żądanie wyszukiwania obejmujące hotel lub plan podróży. Ponieważ dane o cenach są niedostępne lub nieaktualne, Google w momencie wyszukiwania wysyła do Ciebie żądanie aktualizacji ceny. W przypadku zapytań o ceny na żywo Google próbuje uzyskać cenę i wyświetlić ją w wynikach w momencie wyszukiwania.

Wszystkie żądania zapytań o rzeczywistą cenę mają limit czasu odpowiedzi, który zwykle wynosi do 4000 milisekund. Ten limit jest określony w żądaniu zapytania o ceny na żywo. Jeśli odpowiedź nie zostanie udzielona w określonym czasie, nie będziesz mieć możliwości skorzystania z danej okazji. Zalecamy jednak podanie ceny, aby można było ją zapisać w pamięci podręcznej i wykorzystać w przyszłości. Połączenie w celu przesłania odpowiedzi pozostaje otwarte przez 10 minut lub zgodnie z konfiguracją partnera.

Zapytania o ceny na żywo są też kontekstowe i mogą pobierać ceny dla tych parametrów: kraj użytkownika, typ urządzenia, liczba osób (liczba gości) oraz to, czy są to dorośli czy dzieci. Dzięki zapytaniom o rzeczywiste ceny możesz wyświetlać bardziej aktualne ceny, które pasują do wyszukiwania klienta.

Zapytania o rzeczywistą cenę mają być dodatkowym mechanizmem aktualizacji cen. Głównym mechanizmem zmiany cen jest nadal pobieranie lub zmiana cen. Zapytania o ceny rzeczywiste pomagają wypełnić luki, w których Google nie ma cen kombinacji hoteli lub planów podróży.

Zasady korzystania z zapytań o ceny w czasie rzeczywistym

  • Brak danych w pamięci podręcznej dla danego planu podróży, ponieważ jest on nietypowy, np. daty są bardzo odległe lub hotel jest bardzo rzadko wyszukiwany.

  • Żądana data nie jest datą domyślną.

Uwaga: domyślne daty nie kwalifikują się do zapytań o ceny rzeczywiste. Zapytania o rzeczywiste ceny są wysyłane tylko w przypadku dat innych niż domyślne.

Google zwykle zapisuje w pamięci podręcznej wyniki cen na żywo, aby nie wysyłać ponownie zapytań o ten sam hotel lub plan podróży. Może wysyłać żądania dotyczące zarówno kombinacji pojedynczego hotelu lub planu podróży, jak i kombinacji wielu hoteli lub pojedynczego planu podróży.

Funkcja Ceny na żywo z kontekstem umożliwia Google wysyłanie konkretnych żądań cen na żywo na podstawie typu urządzenia użytkownika, kraju, z którego wyszukuje on informacje, oraz liczby osób, w tym dzieci. Zarówno wiadomość zapytania, jak i wiadomość transakcji są rozwijane, aby zawierały element <Context>, który definiuje parametry zapytania. Ceny otrzymane z zapytań o ceny na żywo z kontekstem mogą być przechowywane w pamięci podręcznej jako pakiet z pokojem, jeśli jest to cena dla określonej liczby osób, lub jako cena warunkowa, jeśli jest to cena dla kraju użytkownika lub urządzenia użytkownika.

Zapytania z kontekstem

Zapytania kontekstowe to zwykłe prośby o zaktualizowanie naszej bazy danych w przypadku określonych kombinacji usług lub tras. Zawierają one listę kontekstów użytkowników, które są popularne w przypadku tych kombinacji. Jeśli używane są stawki warunkowe, wysyłanie stawek dla wszystkich możliwych kontekstów użytkownika może być kosztowne, dlatego możesz użyć tej listy kontekstów użytkownika, aby ograniczyć odpowiedź. Zwracanie cen tylko w przypadku określonych kontekstów użytkownika obejmuje zdecydowaną większość odpowiednich zapytań użytkowników.

Jeśli chcesz otrzymywać zapytania With Context, skontaktuj się z opiekunem klienta ds. technicznych. Mogą potwierdzić, że jesteś gotowy(-a) na otrzymywanie takich wiadomości, a następnie dostosować konfigurację, aby zacząć wysyłać do Ciebie w zapytaniach konteksty użytkowników.

Wiadomości z zapytaniami o metadane

Wiadomości z zapytaniem o metadane zawierają szczegółowe informacje o pokojach i pakietach dla określonych obiektów.

Gdy otrzymasz wiadomość z zapytaniem o metadane, musisz odpowiedzieć wiadomością <Transaction>, która określa ceny żądanych usług w elementach <Result>.

Więcej informacji znajdziesz w artykule Określanie metadanych pokoju i pakietu.

Zapytania kontrolne

W tej sekcji opisujemy, jak możesz kontrolować, które obiekty i plany podróży mogą być przedmiotem zapytań od Google.

Granice planu podróży

Możliwe granice zapytań o ceny określasz za pomocą parametru <ItineraryCapabilities>. Określasz reguły, które wyznaczają zakres dat i maksymalną długość pobytu, które obsługujesz.

Możesz ustawić wartości domyślne dla parametrów <MaxAdvancePurchase><MaxLengthOfStay>, które będą stosowane do wszystkich kombinacji hoteli lub planów podróży. Możesz też zdefiniować te ustawienia dla grup hoteli.

Przykłady wiadomości z zapytaniem

Ta sekcja zawiera kilka przykładów zapytań o ceny i zapytań o metadane. Dodatkowe przykłady znajdziesz w dokumentacji XML zapytania.

Przykładowy plan podróży

Ten przykład pokazuje żądanie ceny <Query>, które prosi o aktualizacje cen dla 4 hoteli, dostępnych na 3 noce, począwszy 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>

W tym przykładzie żądamy aktualizacji cen dla każdego hotelu:

5/23/18 - 6/26/18

Przykład zapytania o rzeczywistą cenę

Poniższy przykład pokazuje zapytanie o rzeczywistą cenę z limitem czasu odpowiedzi wynoszącym 500 milisekund:

<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
     be configured to be displayed, on request, by Google. This attribute is only
     displayed for a Live Pricing Query request -->
  <Checkin>2023-05-23</Checkin>
  <Nights>2</Nights>
  <DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
     received by. This element is only displayed for a Live Pricing Query request -->
  <PropertyList>
    <Property>6781291</Property>
  </PropertyList>
<!-- Note that Context tags are potentially repeatable -->
  <Context>
<!-- The total number of guests occupying the room (adults+children) -->
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
      <Children>
        <Child age="5"/>
      </Children>
    </OccupancyDetails>
<!-- The user was located in the US when this search was made -->
    <UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
    <UserDevice>mobile</UserDevice>
  </Context>
</Query>

Ten przykład zawiera żądanie ceny pojedynczego hotelu:

6/23/23 - 6/25/23

Przykładową odpowiedź na to zapytanie znajdziesz w pliku XML dotyczącym cen i zasobów reklamowych pokoi (transakcje).

Przykłady zapytań z kontekstem

Oto przykłady zapytania With Context:

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

Zapytanie z kontekstem, w tym informacjami o zajętości

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>2025-07-10</Checkin>
  <Nights>2</Nights>
  <PropertyContextList>
    <PropertyContext>
      <Property>8675309</Property>
      <Context>
        <UserCountry>US</UserCountry>
      </Context>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="7"/>
        </Children>
      </OccupancyDetails>
    </PropertyContext>
    <PropertyContext>
      <Property>8675310</Property>
      <Context>
        <UserCountry>GB</UserCountry>
      </Context>
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
    </PropertyContext>
  </PropertyContextList>
</Query>

W przypadku zapytań kontekstowych określa tylko kontekst kraju użytkownika. W przyszłości takie zapytania mogą też określać urządzenie użytkownika.

Zakresy dat zameldowania

Jeśli używasz funkcji Zmienione ceny, struktura wiadomości zapytania zależy od typu wskazówki, którego używasz w przypadku zakresów dat zameldowania, dokładnych planów podróży lub planów podróży w zakresie. Więcej informacji o każdym z tych typów podpowiedzi znajdziesz w artykule Wiadomości z odpowiedzią na podpowiedź.

Poniższy przykład pokazuje komunikat o cenach <Query> dla zakresów dat zameldowania:

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

W tym przykładzie żądane są aktualizacje cen w przypadku tych pobytów (w przypadku każdego hotelu):

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/24/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

Pobyty w określonym przedziale cenowym

Poniższy przykład pokazuje komunikat o cenach <Query> w przypadku pobytów o różnej długości:

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

W tym przykładzie żądamy aktualizacji cen dla każdego hotelu:

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/25/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23

Pobytów Plus, które rozpoczęły się przed daną nocą (ale obejmują tę noc):

5/20/23 - 5/23/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23

Wiadomość z zapytaniem o metadane

Poniższy przykład pokazuje komunikat <Query>, który wysyła żądanie aktualizacji metadanych pokoju i informacji o pakietach dla kilku obiektów:

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

Na ten typ wiadomości z zapytaniem odpowiadasz wiadomością o transakcji, która zawiera metadane pokoju i pakietu. Więcej informacji znajdziesz w artykule Określanie metadanych pokoju i pakietu.