Dieser Abschnitt enthält eine Referenz für die XML-basierte Hinweisanfragenachrichten Hinweisantwortnachrichten und Anfragenachrichten.
<Hint>
(Hinweisantwortnachricht)
Das Stammelement einer Hinweisantwortnachricht. Hinweisantwortnachrichten angeben, für welche Hotel-Reiseplan-Kombinationen Preisaktualisierungen erfolgen sollen. Sie sind Ihre Antwort auf eine Hinweisanfragenachricht von Google.
In einer Hinweisantwortnachricht sollten nur die Hotels angegeben sein, deren Preise seit der letzten erfolgreichen Hinweisantwort von Google geändert wurde. auf euren Servern.
In Hinweisantwortnachrichten wird mit einer der folgenden Methoden angegeben, welche Hotels und Reisepläne, deren Preise von Google aktualisiert werden sollen:
Genaue Reisepläne: Eine Kombination aus Anreisedatum und Aufenthaltsdauer.
Check-in-Zeiträume: Gibt den Check-in-Zeitraum an. Daten, die mit dem ersten Check-in-Datum beginnen und mit dem letzten Check-in-Datum.
Aufenthalte in bestimmten Zeiträumen (oder Reisepläne mit bestimmten Zeiträumen)
Jede dieser Methoden erfordert eine andere Syntax für die Hinweisantwort. angezeigt.
Weitere Informationen finden Sie unter Hinweisantwortnachrichten.
Syntax
Das <Hint>
-Element verwendet je nach Typ des Hinweises eine andere Syntax.
Antwortnachricht:
Genaue Reisepläne
Im Folgenden wird die Syntax für genaue Reisepläne in einer Hinweisantwort dargestellt. Nachricht:
<!-- 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 Hinweisantwort dargestellt: Nachricht:
<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<!-- Can be > 1 if MultipleItineraries is "checkin_range" in your
QueryControl message -->
<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 Hinweisantwort dargestellt: Nachricht:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<!-- Can be > 1 if MultipleItineraries is "affected_dates" in your
QueryControl message -->
<Property>hotel_ID</Property>
[...]
<StaysIncludingRange>
<!-- Required -->
<FirstDate>first_date</FirstDate>
<!-- Optional -->
<LastDate>last_date</LastDate>
</StaysIncludingRange>
</Item>
...
</Hint>
Attribute
Das <Hint>
-Element enthält ein optionales Attribut: id
. Wann?
angegeben, wird er als Attribut hintId
in <Query>
eingefügt
Nachrichten, die auf Grundlage dieser <Hint>
gesendet wurden
Untergeordnete Elemente
Das <Hint>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Hinweisantworttyp | Beschreibung |
---|---|---|---|---|
<CheckInDate> | Required | Date | Genaue Reisepläne | Das Check-in-Datum des Reiseplans. |
<FirstDate> | Required | Date | Check-in-Zeiträume und Reisepläne mit bestimmten Zeiträumen | Das erste Datum des Zeitraums für einen Check-in-Zeitraum oder einen Zeitraum Stay HintResponse-Nachricht. Datumsangaben sind inklusive. |
<Item> | Required | Object | Alle | Ein Container für das zu aktualisierende Hotel bzw. 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 einen Check-in-Zeitraum oder einen Zeitraum Stay HintResponse-Nachricht. Datumsangaben sind inklusive. * Dieses Element ist für Aufenthalte in bestimmten Zeiträumen optional. |
<LengthOfStay> | Required | integer | Genaue Reisepläne | Die Anzahl der Übernachtungen für den Reiseplan, ausgedrückt als positiv Integer |
<Property> | Required | string | Alle | Die ID eines Hotels mit der gleichen ID wie die Hotelliste. Die Zahl
von
|
<Stay> | Required | Object | Genaue Reisepläne | Ein Container für <CheckinDate> und
<LengthOfStay> -Elemente in einem Hinweis zu exakten Reiseplänen
Antwortnachricht. Jedes <Item> -Element darf nur ein
<Stay> . |
<StaysIncludingRange> | Required | Object | Reisepläne mit bestimmten Zeiträumen | Ein Container für <FirstDate> und
Hinweisantwort für <LastDate> Elemente in einer Aufenthaltsdauer in bestimmten Zeiträumen
angezeigt. |
Beispiele
Genaue Reisepläne
Im folgenden Beispiel werden mehrere Reisepläne für eine einzelne Unterkunft definiert eine Hinweisantwortnachricht:
<!-- 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 sich geändert haben, und sollte erneut abgerufen werden. Google ruft alle Reisepläne zwischen dem 3. Juli und dem Juli ab 6 für die Properties 12345 und 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>
Wenn Sie für eine Nachricht zum Check-in-Bereich mehrere
in einer einzelnen <Item>
, wird der Wert von
<MultipleItineraries>
in <QueryControl>
muss auf
"checkin_range"
Aufenthalte in bestimmten Zeiträumen
Das folgende Beispiel zeigt zwei verschiedene Anwendungsfälle für Aufenthalte in bestimmten Zeiträumen: mehrere Nächte und den anderen für eine einzelne Nacht:
<!-- 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 eine Nachricht zum Aufenthalt in bestimmten Zeiträumen können Sie mehrere
in einer einzelnen <Item>
, wird der Wert von
<MultipleItineraries>
in <QueryControl>
muss auf
"affected_dates"
Auf jedes dieser Beispiele antwortet Google mit einem <Query>
. Sie sollten sich
Antworten Sie dann mit einer <Transaction>
, die Preisaktualisierungen für den
angegebene Hotels/Reisepläne.
<HintRequest>
Das Stammelement einer Hinweisanfragenachricht. Google sendet eine Hinweisanfrage an Ihren Server gesendet und erwartet eine Antwort, in der die Hotels und Reiseplänen, deren Preise sich geändert haben, seit Google das letzte Mal ein erfolgreiche Hinweisantwort von Ihrem Server.
Wenn es Preisänderungen gibt, sendet Google eine <Query>
, die
ruft die aktualisierten Preisdaten für die angegebenen Hotels und Reisepläne 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 erhalten hat
zu einer Hinweisanfragenachricht.
Wenn dieser Zeitpunkt älter ist als das letzte Mal, auf Ihrem Server aktualisiert haben, sollten Sie mit einem Hinweis Antwortnachricht, die angibt, welche Hotels sich geändert haben. Wenn in letzter Zeit kein erfolgreicher Abruf erfolgt ist, wird dieser Wert auf fester Intervallwert (zur Vermeidung schwerwiegender Probleme bei großen Rückstände). Der aktuelle Wert für das feste Intervall beträgt 1.000 Sekunden, ist aber Änderungen vorbehalten. Weitere Informationen Weitere Informationen finden Sie unter HintResponse-Nachrichten. |
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 Anfragen
um Preis- oder Metadatenaktualisierungen zu erhalten. Sie werden sowohl mit der Pull-Methode
und Übermittlungsmodi für geänderte Preise.
Es gibt drei Arten von Query
-Nachrichten:
Livepreise: Google reagiert auf eine bestimmte Nutzeranfrage und fordert eine Preisaktualisierung in Echtzeit. Wenn Partner eine
Live pricing query
erhalten sollten Partner mit einer<Transaction>
-Nachricht antworten, die enthält angeforderte Preisinformationen in<Result>
-Elementen.Mit Kontextpreisen:Google aktualisiert seinen Preis-Cache je nach Kontext die historisch beliebt sind. Wenn du eine
With context query
erhältst Nachricht senden, sollten Sie mit einer<Transaction>
-Nachricht antworten, die die in<Result>
-Elementen Preisinformationen angefordert.Metadaten: Google fordert Metadatenaktualisierungen für die Zimmer und Zimmerpakete an. für die angegebenen Hotels. Wenn du eine
Metadata Query
-Nachricht erhältst, mit einer<Transaction>
-Nachricht antworten, die Daten zur Zimmer und Zimmerpakete in<PropertyDataSet>
-Elementen.
Weitere Informationen finden Sie in der Preisübersicht für Preisabfragen und Zimmerpaket-Metadaten für Metadatenabfragen.
Die Syntax der drei verschiedenen Typen wird im Folgenden beschrieben.
Syntax
Das <Query>
-Element verwendet die folgende Syntax:
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 Attribut latencySensitive
ist optional. Wenn angegeben und festgelegt auf
true
gibt sie an, dass die Abfrage ein Live Pricing Query
ist. Um Google zu senden,
mit dem Attribut latencySensitive
erhalten, wenden Sie sich an Ihr 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 verwendet nur für Preisabfragen für Aufenthalte in bestimmten Zeiträumen, die mit „Geänderte Preise“ verwendet werden. |
<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 gestellt wird. Zu den untergeordneten Elementen gehören:
<ph type="x-smartling-placeholder">
Das |
<FirstDate> | Pricing | Date | Das Startdatum einer Reihe von Reiseplänen, bis zu denen der Preis berechnet wird gilt. Dieses Element wird nur für Preise für den Check-in-Zeitraum verwendet Abfragen für „Geänderte Preise“. |
<HotelInfoProperties> | Metadata | string | Eine oder mehrere Unterkünfte, die Google aktualisieren möchte
Zimmer- und Zimmerpaketmetadaten in einer Query -Metadatennachricht. Dieses Element
kann ein oder mehrere <Property> -Elemente enthalten, die
Hotel-Unterkunfts-IDs angeben. |
<LastDate> | Pricing | Date | Das Enddatum einer Reihe von Reiseplänen, bis zu denen der Preis berechnet wird gilt. Dieses Element wird nur für Preise für den Check-in-Zeitraum verwendet Abfragen, die mit Pull + Hinweisen verwendet werden |
<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
Preisabfrage
Das folgende Beispiel zeigt eine Preisanfragenachricht, in der Updates für eine Reihe von Hotels für 3 Nächte verfügbar. Ab dem 10. Juni 2018:
<?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 Antwortzeit. von 500 Millisekunden an:
<?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, 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>
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 Aufenthalt in bestimmten Zeiträumen und Check-in-Zeitraum
Preisabfragen finden Sie in den Beispielen für Query
-Nachrichten.
<Context>
Das Element <Context>
beschreibt Informationen zu einem Live pricing query
,
einschließlich Anzahl und Art der Gäste, Land des Nutzers und Nutzergerät.
Mehrere <Context>
werden niemals mit unterschiedlichen Nutzerländern oder
Geräte der Nutzer. Wenn mehrere <Context>
zur Abfrage mehrerer
Belegungen, geben Sie jeden Belegungspreis als zusätzliches Zimmerpaket an.
für die entsprechende Unterkunft bzw. den entsprechenden Reiseplan. Für jede Unterkunft bzw. jeden Reiseplan sollte ein
einen einzelnen <Result>
-Block mit den Preisen für mehrere
Belegungen enthalten.
Die Antwortdetails für die <Context>
-Abfrage 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. Abfragen mit Hinweis: |
<OccupancyDetails> | Pricing | Object | <Occupancy> ist vorangestellt. Gibt Gäste nach Typ an,
einschließlich:
Abfragen mit Hinweis : |
<UserCountry> | Pricing | string | Filtert Preise nach dem Land, in dem sich der Nutzer befindet. Der Wert ist ein
Aus 2 Buchstaben bestehender Ländercode wie Abfragen, bei denen |
<UserDevice> | Pricing | string | Filtert Preise nach dem Typ des Geräts, von dem aus der Nutzer sucht. Mögliche Werte:
Abfragen, bei denen |
Beispiele
Anwesenheit
Das folgende Beispiel zeigt eine Livepreisabfrage für <Occupancy>
.
innerhalb von <Context>
. Die Abfrage für Livepreise bezieht sich auf 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 Abfrage für Livepreise gilt für 4 Gäste, von denen 2
Kinder sind und wünscht sich einen Preis für eine US-Gästebuchung bei
auf einem Mobilgerät:
<?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>