Ta sekcja zawiera odniesienie do kodu Google opartego na języku XML, Wiadomości z prośbami o wskazówki, wiadomości z odpowiedziami na podpowiedzi, i Zapytania dotyczące wiadomości.
<Hint>
(wiadomość z odpowiedzią)
Element główny wiadomości z odpowiedzią. Wiadomości z odpowiedziami na podpowiedzi określać, których kombinacji hoteli lub planów podróży chcesz zmienić. Są to Twoje odpowiedź na wiadomość żądania podpowiedzi od Google.
Komunikat z podpowiedzią powinien określać tylko te hotele, których ceny mają zmieniła się od ostatniego otrzymania przez Google prawidłowej odpowiedzi na pytanie Twoje serwery.
W wiadomościach z odpowiedziami na sugestie możesz użyć jednej z poniższych metod hotele i plany podróży, które Google powinien zmienić:
Dokładne plany podróży: połączenie daty zameldowania o długości pobytu.
Zakresy dat zameldowania: określa zakres dat zameldowania. daty rozpoczynającej się od pierwszej daty zameldowania, a kończąc ostatnim datę zameldowania.
Pokoje o określonym zakresie (lub różne plany podróży).
Każda z tych metod wymaga innej składni odpowiedzi na podpowiedź .
Więcej informacji znajdziesz w artykule Wiadomości z odpowiedziami na wskazówki.
Składnia
Element <Hint>
używa innej składni w zależności od typu wiadomości odpowiedzi:
Dokładne plany podróży
Poniżej widać składnię dokładnych planów podróży w odpowiedzi na podpowiedź wiadomość:
<!-- 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 zameldowań
Poniżej przedstawiono składnię zakresów zameldowania w wiadomości z hitem:
<!-- 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>
Zakresy długości pobytu
Poniżej widać składnię pozostających w zakresie w odpowiedzi na podpowiedzi wiadomość:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<Property>hotel_ID</Property>
[...]
<StaysIncludingRange>
<!-- Required -->
<FirstDate>first_date</FirstDate>
<!-- Optional -->
<LastDate>last_date</LastDate>
</StaysIncludingRange>
</Item>
...
</Hint>
Atrybuty
Element <Hint>
zawiera opcjonalny atrybut: id
. Kiedy
jest uwzględniony jako atrybut hintId
w <Query>
Wysłano wiadomości na podstawie: <Hint>
.
Elementy potomne
Element <Hint>
ma te elementy podrzędne:
Element podrzędny | Wymagany? | Typ | Typ odpowiedzi na podpowiedź | Opis |
---|---|---|---|---|
<CheckInDate> | Required | Date | Dokładne plany podróży | Data zameldowania w planie podróży. |
<FirstDate> | Required | Date | Zakresy odprawiania i różne plany podróży | Pierwsza data zakresu dat zameldowania pozostaw wiadomość z odpowiedzią. Daty są uwzględnione. |
<Item> | Required | Object | Wszystko | Kontener do aktualizacji hotelu lub planu podróży. |
<LastDate> | Required* | Date | Zakresy odprawiania i różne plany podróży | Ostatnia data zakresu dat zameldowania lub zakresu dat pozostaw wiadomość z odpowiedzią. Daty są uwzględnione. * Ten element jest opcjonalny w przypadku pobytu z zakresu zakresu. |
<LengthOfStay> | Required | integer | Dokładne plany podróży | Liczba nocy w planie podróży wyrażona jako dodatnia liczba całkowita. |
<Property> | Required | string | Wszystko | Identyfikator hotelu używany z tym samym identyfikatorem co na liście hoteli. Numer
z
|
<Stay> | Required | Object | Dokładne plany podróży | Kontener dla elementów <CheckinDate> i <LengthOfStay> w dokładnym planie podróży w odpowiedzi. Każdy element <Item> może zawierać tylko jeden
<Stay> |
<StaysIncludingRange> | Required | Object | Różne plany podróży | Kontener dla zasobów typu <FirstDate> i
<LastDate> elementów w odpowiedzi na pytanie dotyczące stałego pobytu
. |
Przykłady
Dokładne plany podróży
W tym przykładzie zdefiniowano wiele planów podróży dla jednej usługi.Wiadomość z wskazówką:
<!-- 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 zameldowań
Poniższy przykład wskazuje 2 hotele, których ceny uległy zmianie. powinno zostać pobrane jeszcze raz. Google otrzymuje wszystkie plany podróży między 3 a 6 lipca dla usług 12345 i 67890:
<!-- 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>
Zakresy długości pobytu
Poniższy przykład pokazuje 2 różne zastosowania przedziałów czasowych, po jednym dla zakres nocy, a drugi 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 przypadku każdego z tych przykładów Google przesyła <Query>
, a Ty
a potem prześlij odpowiedź <Transaction>
z informacjami o zmianach cen
określonych hoteli lub planów podróży.
<HintRequest>
Główny element wiadomości żądania podpowiedzi. Google wysyła żądanie wskazówek do serwera i oczekuje odpowiedzi, która określa hotele planów podróży, których ceny zmieniły się od czasu otrzymania przez Google odpowiedź z podpowiedzią została przesłana z serwera.
W przypadku zmian cen Google przesyła <Query>
z
pobiera zaktualizowane dane o cenach wybranych hoteli i planów podróży.
Więcej informacji znajdziesz w artykule Wiadomości z prośbami o wskazówki.
Składnia
Element <HintRequest>
ma taką 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 | Kiedy ostatnio udało się nam otrzymać wiadomość z odpowiedzią
na wiadomość z prośbą o podpowiedź.
Jeśli czas jest starszy niż data ostatniej aktualizacji cen na serwerze, odpowiedz za pomocą wiadomości z podpowiedzią, w której określisz, które hotele uległy zmianie. Jeśli w ostatnim czasie nie było żadnego udanego pobierania, wartość ta zostanie ustawiona na stałą wartość interwału (aby uniknąć poważnych problemów ze zaległości). Bieżąca stała wartość interwału wynosi 1000 sekund, ale jest może ulec zmianie. Aby dowiedzieć się więcej, skonsultuj się z: Wiadomości z odpowiedziami na podpowiedzi. |
Przykłady
Poniższy przykład pokazuje wiadomość z żądaniem podpowiedzi:
wiadomość z prośbą o podpowiedź
Oto przykład prośby 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>
Główny element wiadomości Query
. Query
wiadomości to prośby
od Google w celu aktualizacji cen lub metadanych. Są używane zarówno z funkcją Pull,
i zmianach cen.
trybami wyświetlania.
Istnieją 3 typy wiadomości typu Query
:
Aktywna cena: Google w odpowiedzi na konkretne pytanie użytkownika, pyta: od cen w czasie rzeczywistym. Gdy partnerzy otrzymają
Live pricing query
na wiadomość, partnerzy powinni odpowiedzieć, wysyłając wiadomość<Transaction>
z następującym zawiera żądane informacje o cenach w elementach<Result>
.Za pomocą cen kontekstowych: Google aktualizuje swoją pamięć podręczną cen na podstawie kontekstu. które są wciąż popularne. Gdy otrzymasz wiadomość
With context query
, odpowiedz wiadomością<Transaction>
zawierającą żądane informacje o cenach w elementach<Result>
.Metadane: Google prosi o aktualizację metadanych sal i pakietów pomieszczeń. w wybranych hotelach. Gdy otrzymasz wiadomość
Metadata Query
, powinien przesłać w odpowiedzi komunikat<Transaction>
, który określa dane na temat i pakiety pokojów w elementach<PropertyDataSet>
.
Więcej informacji znajdziesz w artykule Omówienie cen w przypadku zapytań o ceny i metadanych pakietu pokoi. zapytań o metadane.
Oto 3 różne typy składni:
Składnia
Element <Query>
używa tej składni:
Aktualna cena
<?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>
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. Po podaniu i ustawieniu na
true
, oznacza to, że zapytanie ma typ Live Pricing Query
. Aby Google wysyłało zapytania z atrybutem latencySensitive
, skontaktuj się z opiekunem klienta w zakresie obsługi technicznej (TAM).
Elementy potomne
Element <Query>
ma te elementy podrzędne:
Element podrzędny | Typ zapytania | Typ | Opis |
---|---|---|---|
<AffectedNights> | Pricing | integer | Liczba nocy w przypadku pobytu o określonym zakresie. Ten element jest używany tylko w przypadku zapytań o ceny zakresu objętego zmianą ceny. |
<Checkin> | Pricing | Date | Daty konkretnej zmiany ceny. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | W przypadku zapytań o ceny na żywo określa określone parametry, na podstawie których wysyłane jest zapytanie. Elementy podrzędne:
Element |
<FirstDate> | Pricing | Date | datę rozpoczęcia zakresu planów podróży, do których ma zastosowanie. Ten element jest używany tylko do określania cen w zakresie dat zameldowania zapytań używanych ze zmianą ceny. |
<HotelInfoProperties> | Metadata | string | Co najmniej jedna usługa, której dotyczy aktualizacja
metadanych pokoju i pakietu pokojów w wiadomości metadanych Query .
Ten element może zawierać co najmniej 1 <Property>
elementów, które określają identyfikatory obiektów hotelowych. |
<LastDate> | Pricing | Date | Data końcowa zakresu planów podróży, do których ma zastosowanie. Ten element jest używany tylko do określania cen w zakresie dat zameldowania zapytań używanych za pomocą pull + wskazówki. |
<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 <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Przykłady
Pytanie o cenę
Przykład poniżej pokazuje wiadomość z zapytaniem o cenę, która zawiera żądanie ceny aktualizacje dotyczące grupy hoteli, dostępne na 3 noce w dniach 10 czerwca 2018 roku:
<?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>
Pytanie o rzeczywistą cenę
Przykład poniżej przedstawia zapytanie o ceny w czasie rzeczywistym z czasem odpowiedzi. limit 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>
Za pomocą zapytania kontekstowego
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, occupancy and 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 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>
Dodatkowe przykłady, w tym pobyt w określonym zakresie i zakres dat zameldowania
zawiera przykłady wiadomości (Query
).
<Context>
Element <Context>
opisuje informacje dotyczące: Live pricing query
,
w tym liczbę i typ gości, kraj użytkownika oraz jego urządzenie.
Wiele usług <Context>
nigdy nie będzie używane w różnych krajach ani na różnych urządzeniach użytkowników. Jeśli do zapytania o wiele typów zakwaterowania używasz wielu wartości <Context>
, podaj cenę za każdą liczbę osób jako dodatkowy pakiet pokoi dla odpowiedniej usługi lub planu podróży. Każdy obiekt lub plan podróży powinny
mają jeden blok <Result>
z cenami dla wielu osób.
dołączono.
Szczegółowe informacje o odpowiedzi na zapytanie <Context>
znajdziesz w artykule
<OccupancyDetails>
Składnia
Element <Context>
ma taką 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. Chociaż nie jest to wymagane, zapytania z parametrem Uwaga: |
<OccupancyDetails> | Pricing | Object | Jest poprzedzone znakiem <Occupancy> . Określa gości według
typu, w tym:
Nie jest to obowiązkowe, ale zapytania z parametrem Uwaga: |
<UserCountry> | Pricing | string | Filtruje ceny według kraju, w którym znajduje się użytkownik. Wartość to
dwuliterowy kod kraju, np. Zapytania ze zdefiniowanym atrybutem |
<UserDevice> | Pricing | string | Filtruje dane na podstawie typu urządzenia, na którym użytkownik przeprowadza wyszukiwanie. Możliwe wartości:
Zapytania ze zdefiniowanym parametrem |
Przykłady
Liczba osób
Przykład poniżej pokazuje zapytanie o rzeczywistą cenę dla zasobu <Occupancy>
w ciągu <Context>
. Zapytanie o rzeczywistą cenę dotyczy 3 osób dorosłych
gości.
<?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 dotyczące zajętości
Poniższy przykład przedstawia zapytanie dotyczące cen na żywo z <OccupancyDetails>
w <Context>
.
Zapytanie o cenę w czasie rzeczywistym dotyczy 4 gości, z których 2
są dzieci i dotyczy ceny obowiązującej w USA jako gość od
urządzenie mobilne:
<?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
Przykład poniżej pokazuje użycie dodatkowego elementu <Context>
w zapytaniu o aktualną cenę.
<?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>