Dieser Abschnitt enthält eine Referenz für die XML-basierten Hinweisanfragenachrichten, Hinweisantwortnachrichten und Anfragenachrichten von Google.
<Hint>
(Hinweisantwortnachricht)
Das Stammelement einer Hinweisantwortnachricht. In Hinweisantwortnachrichten wird angegeben, für welche Hotel- oder Reiseplankombinationen Preise aktualisiert werden sollen. Sie sind Ihre Antwort auf eine Hinweisanfragenachricht von Google.
Eine Hinweisantwortnachricht sollte nur die Hotels angeben, deren Preise sich geändert haben, seit Google die letzte erfolgreiche Hinweisantwort von Ihren Servern erhalten hat.
In Hinweisantwortnachrichten wird mit einer der folgenden Methoden angegeben, für welche Hotels und Reisepläne Google die Preise aktualisieren soll:
Genaue Reisepläne: Eine Kombination aus Anreisedatum und Aufenthaltsdauer.
Check-in-Zeiträume: Gibt einen Check-in-Zeitraum an, der mit dem ersten Check-in-Datum beginnt und mit dem letzten Check-in-Datum endet.
Aufenthalte in bestimmten Zeiträumen (oder Reisepläne mit bestimmten Zeiträumen)
Jede dieser Methoden erfordert eine andere Syntax für die Hinweisantwortnachricht.
Weitere Informationen finden Sie unter Hinweisantwortnachrichten.
Syntax
Das Element <Hint>
verwendet je nach Typ der Hinweisantwortnachricht eine andere Syntax:
Genaue Reisepläne
Im Folgenden wird die Syntax für genaue Reisepläne in einer Hinweisantwortnachricht dargestellt:
<!-- 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>
Check-in-Zeiträume
Im Folgenden wird die Syntax für Check-in-Zeiträume in einer Hinweisantwortnachricht dargestellt:
<!-- 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>
Aufenthalte in bestimmten Zeiträumen
Im Folgenden wird die Syntax für Aufenthalte in bestimmten Zeiträumen in einer Hinweisantwortnachricht dargestellt:
<!-- 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>
Attribute
Das <Hint>
-Element enthält ein optionales Attribut: id
. Wenn angegeben, wird es als hintId
-Attribut in <Query>
-Nachrichten eingefügt, die auf dieser <Hint>
basieren.
Untergeordnete Elemente
Das <Hint>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Art der Hinweisantwort | Beschreibung |
---|---|---|---|---|
<CheckInDate> | Required | Date | Genaue Reisepläne | Das Check-in-Datum für den Reiseplan. |
<FirstDate> | Required | Date | Check-in-Zeiträume und Reisepläne mit bestimmten Zeiträumen | Das erste Datum des Zeitraums für eine Hinweisantwortnachricht für einen Check-in-Zeitraum oder einen Aufenthalt in bestimmten Zeiträumen. Dieses Datum wird einbezogen. |
<Item> | Required | Object | Alle | Ein Container für das zu aktualisierende Hotel/den zu aktualisierenden Reiseplan. |
<LastDate> | Required* | Date | Check-in-Zeiträume und Reisepläne mit bestimmten Zeiträumen | Das letzte Datum des Zeitraums für eine Hinweisantwortnachricht für einen Check-in-Zeitraum oder einen Aufenthalt in bestimmten Zeiträumen. Dieses Datum wird einbezogen. * Dieses Element ist optional für Aufenthalte in bestimmten Zeiträumen. |
<LengthOfStay> | Required | integer | Genaue Reisepläne | Die Anzahl der Übernachtungen des Reiseplans als positive ganze Zahl. |
<Property> | Required | string | Alle | Die ID eines Hotels mit der gleichen ID wie die Hotelliste. Die Anzahl der
|
<Stay> | Required | Object | Genaue Reisepläne | Ein Container für die Elemente <CheckinDate> und <LengthOfStay> in einer Hinweisantwortnachricht für genaue Reisepläne. Jedes <Item> kann nur einen einzelnen <Stay> enthalten. |
<StaysIncludingRange> | Required | Object | Reisepläne mit bestimmten Zeiträumen | Ein Container für die Elemente <FirstDate> und <LastDate> in einer Hinweisantwortnachricht für einen Aufenthalt in bestimmten Zeiträumen. |
Beispiele
Genaue Reisepläne
Im folgenden Beispiel werden mehrere Reisepläne für eine einzelne Unterkunft als Hinweisantwortnachricht definiert:
<!-- 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>
Check-in-Zeiträume
Im folgenden Beispiel werden zwei Hotels angegeben, deren Preise geändert wurden und noch einmal abgerufen werden sollen. Google ruft alle Reisepläne zwischen dem 3. und 6. Juli für die Unterkünfte 12345 und 67890 ab:
<!-- 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>
Aufenthalte in bestimmten Zeiträumen
Im folgenden Beispiel werden zwei verschiedene Verwendungen von Aufenthalten in bestimmten Zeiträumen verwendet – eine für mehrere Übernachtungen und eine für eine einzelne Übernachtung:
<!-- 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>
Für jedes dieser Beispiele antwortet Google mit einer <Query>
und Sie sollten mit einer <Transaction>
antworten, die Preisaktualisierungen für die angegebenen Hotels/Reisepläne enthält.
<HintRequest>
Das Stammelement einer Hinweisanfragenachricht. Google sendet eine Hinweisanfragenachricht an Ihren Server und erwartet eine Antwort, in der die Hotels und Reisepläne angegeben werden, deren Preise sich geändert haben, seit Google die letzte erfolgreiche Hinweisantwort von Ihren Servern erhalten hat.
Wenn Preise geändert wurden, ruft Google die aktualisierten Preisdaten für die angegebenen Hotels und Reisepläne in einer <Query>
ab.
Weitere Informationen finden Sie unter Hinweisanfragenachrichten.
Syntax
Das <HintRequest>
-Element verwendet die folgende Syntax:
Syntax
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
<LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>
Attribute
Das <HintRequest>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <HintRequest>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Typ | Beschreibung |
---|---|---|
<LastFetchTime> | DateTime | Der Zeitpunkt, zu dem Google zuletzt eine Hinweisantwortnachricht auf eine Hinweisanfragenachricht erhalten hat.
Wenn dieser Zeitpunkt vor Ihrer zuletzt durchgeführten Preisaktualisierung liegt, sollten Sie in einer Hinweisantwortnachricht angeben, welche Hoteldaten sich geändert haben. Wenn es in letzter Zeit keinen erfolgreichen Abruf gab, wird dieser Wert auf einen festen Intervallwert gesetzt, um schwerwiegendere Probleme mit großen Backlogs zu vermeiden. Der aktuelle Wert für das feste Intervall beträgt 1.000 Sekunden, kann aber geändert werden. Weitere Informationen finden Sie unter Hinweisantwortnachrichten. |
Beispiele
Das folgende Beispiel zeigt eine Hinweisanfragenachricht:
Hinweisanfragenachricht
Das folgende Beispiel zeigt eine Hinweisanfragenachricht:
<?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>
Das Stammelement einer Query
-Nachricht. Query
-Nachrichten sind Google-Anfragen zu Preis- oder Metadatenaktualisierungen. Sie werden mit den Übermittlungsmodi „Pull“ und „Geänderter Preis“ verwendet.
Nachrichten mit Preisabfragen
Preisabfragenachrichten beschreiben die Hotel- und Reiseplankombinationen, für die Sie Preise angeben.
Wenn Ihr Server eine Abfragenachricht zu Preisen erhält, sollte er mit einer <Transaction>
-Nachricht mit den angefragten Preisinformationen reagieren.
Weitere Informationen finden Sie in der Preisübersicht.
Es gibt drei spezielle Arten von Query
-Nachrichten:
Livepreise:Google reagiert auf eine bestimmte Nutzeranfrage, in der eine Preisaktualisierung in Echtzeit angefordert wird. Wenn Partner eine
Live pricing query
-Nachricht erhalten, sollten sie mit einer<Transaction>
-Nachricht antworten, die die angeforderten Preisinformationen in<Result>
-Elementen enthält.Mit Kontextpreisen:Google aktualisiert seinen Preiscache anhand von Kontexten, die in der Vergangenheit beliebt waren. Wenn Sie eine
With context query
-Nachricht erhalten, sollten Sie mit einer<Transaction>
-Nachricht antworten, die die angeforderten Preisinformationen in<Result>
-Elementen enthält.Metadaten: Google fordert Metadatenaktualisierungen für die Zimmer und Zimmerpakete der angegebenen Hotels an. Wenn Sie eine
Metadata Query
-Nachricht erhalten, sollten Sie mit einer<Transaction>
-Nachricht antworten, in der Daten zu den Zimmern und Zimmerpaketen in<PropertyDataSet>
-Elementen angegeben werden. Weitere Informationen finden Sie unter Zimmerpaket-Metadaten.
Syntax
Das <Query>
-Element verwendet die folgende Syntax:
Preisanfrage
<?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>
Livepreise
<?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>
Mit Kontext
<?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>
Metadaten
<HotelInfoProperties>
<Property>property_ID</Property>
...
</HotelInfoProperties>
Attribute
Das <Query>
-Element kann ein Attribut enthalten: latencySensitive
.
Das latencySensitive
-Attribut ist optional. Wenn dieses bereitgestellt und auf true
festgelegt ist, bedeutet dies, dass die Anfrage eine Live Pricing Query
ist. Wenn Sie möchten, dass Google Abfragen mit dem latencySensitive
-Attribut sendet, wenden Sie sich an Ihren Technical Account Manager (TAM).
Untergeordnete Elemente
Das <Query>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Anfragetyp | Typ | Beschreibung |
---|---|---|---|
<AffectedNights> | Pricing | integer | Die Anzahl der Übernachtungen für einen Aufenthalt in einem bestimmten Zeitraum. Dieses Element wird nur für Preisabfragen bezüglich des Aufenthalts in bestimmten Zeiträumen im Modus „Geänderte Preise“ verwendet. |
<Checkin> | Pricing | Date | Die Datumsangaben für eine bestimmte Preisänderung. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | Gibt für Livepreisabfragen bestimmte Parameter an, unter denen die Abfrage ausgeführt wird. Untergeordnete Elemente sind:
Das |
<FirstDate> | Pricing | Date | Das Startdatum einer Reihe von Reiseplänen, auf die der Preis angewendet wird. Dieses Element wird nur für Preisabfragen bezüglich des Check-in-Datumsbereichs im Modus „Geänderte Preise“ verwendet. |
<HotelInfoProperties> | Metadata | string | Eine oder mehrere Unterkünfte, für die Google in einer Metadaten-Query -Nachricht eine Aktualisierung der Zimmer- und Zimmerpaketmetadaten benötigt.
Dieses Element kann ein oder mehrere <Property> -Elemente enthalten, die Hotel-Property-IDs angeben. |
<LastDate> | Pricing | Date | Das Enddatum einer Reihe von Reiseplänen, auf die der Preis angewendet wird. Dieses Element wird nur für Preisabfragen bezüglich des Check-in-Datumsbereichs im Pull-Modus mit Hinweisen verwendet. |
<Nights> | Pricing | integer | Die Anzahl der Übernachtungen für einen bestimmten Reiseplan (maximal 30). |
<PropertyList> | Pricing | Object | Eine oder mehrere IDs für Hotels, für die Preisaktualisierungen erforderlich sind. Definieren Sie jedes Hotel in einem <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Beispiele
Preisanfrage
Das folgende Beispiel zeigt eine Preisanfragenachricht, mit der Preisaktualisierungen für eine Reihe von Hotels für einen Aufenthalt von 3 Nächten ab dem 23. Mai 2023 angefragt werden.
<?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>
Livepreisabfrage
Das folgende Beispiel zeigt eine Livepreisabfrage mit einer Reaktionszeit von 500 Millisekunden:
<?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>
Mit Kontextabfrage
<?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>
Metadatenabfrage
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
Weitere Beispiele, einschließlich Anfragen zu Aufenthalten in bestimmten Zeiträumen und Check-in-Zeiträume, finden Sie unter Beispiele für Query
-Nachrichten.
<Context>
Mit dem Element <Context>
werden Informationen für eine Live pricing query
beschrieben, einschließlich Anzahl und Typ der Gäste, Nutzerland und Nutzergerät.
Mehrere <Context>
werden nie mit verschiedenen Nutzerländern oder Nutzergeräten verwendet. Wenn mehrere <Context>
zur Anfrage mehrerer Belegungen verwendet werden, stellen Sie jeden Belegungspreis als zusätzliches Zimmerpaket für das entsprechende Hotel oder den entsprechenden Reiseplan bereit. Jede Unterkunft oder jeder Reiseplan sollte einen einzelnen <Result>
-Block mit den Preisen für mehrere Belegungen enthalten.
Die Antwortdetails für die <Context>
-Anfrage finden Sie unter <OccupancyDetails>
.
Syntax
Das <Context>
-Element verwendet die folgende Syntax:
Syntax
<?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>
Untergeordnete Elemente
Das <Context>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Abfragetyp | Typ | Beschreibung |
---|---|---|---|
<Occupancy> | Pricing | integer | Gibt die Gesamtzahl der Gäste an. Obwohl Anfragen mit Hinweis: |
<OccupancyDetails> | Pricing | Object | <Occupancy> ist vorangestellt. Gibt die Gäste nach Typ an. Dazu gehören:
Obwohl Anfragen mit Hinweis: |
<UserCountry> | Pricing | string | Filtert Preise nach dem Land, in dem sich der Nutzer befindet. Der Wert besteht aus einem zweistelligen Ländercode wie Anfragen mit definiertem |
<UserDevice> | Pricing | string | Filtert die Preise nach dem Typ des Geräts, über das der Nutzer sucht. Mögliche Werte:
Anfragen mit definiertem |
Beispiele
Anwesenheit
Das folgende Beispiel zeigt eine Livepreisabfrage für <Occupancy>
in <Context>
. Die Livepreisabfrage ist für 3 erwachsene Gäste.
<?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>
Details zur Belegung
Das folgende Beispiel zeigt eine Livepreisabfrage mit <OccupancyDetails>
in <Context>
.
Die Livepreisabfrage ist für 4 Gäste, von denen 2 Kinder sind. Sie sucht nach einem Preis, der für eine Buchung über ein Mobilgerät für Gäste aus den USA gilt:
<?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>
Mehrere Kontexte
Das folgende Beispiel zeigt die Verwendung eines zusätzlichen <Context>
-Elements in einer Livepreisabfrage.
<?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>