Cette section fournit une documentation de référence sur l'API Google Messages Hint request Messages de réponse d'indication et Messages de demande.
<Hint>
(message de réponse d'indication)
Élément racine d'un message Hint response. Messages de réponse d'indication spécifie les combinaisons d'hôtel ou de séjour dont les prix doivent être mis à jour. Ce sont vos Réponse à un message Hint request de Google.
Un message de réponse d'indication ne doit spécifier que les hôtels dont les prix ont modifié depuis la dernière fois que Google a reçu une réponse d'indication réussie de la part de vos serveurs.
Les messages Hint response utilisent l'une des méthodes suivantes pour spécifier les hôtels et les séjours dont les prix doivent être modifiés sur Google :
Séjours exacts: combinaison de la date d'arrivée et la durée du séjour.
Plage de dates d'arrivée: indique la plage de dates d'arrivée. dates, commençant par la première date d'arrivée et se terminant par la date d'arrivée.
Séjours inclus dans une période (ou séjours inclus dans une période)
Chacune de ces méthodes nécessite une syntaxe différente pour la réponse d'indication .
Pour en savoir plus, consultez la section Messages de réponse d'indication.
Syntaxe
L'élément <Hint>
utilise une syntaxe différente selon le type d'indice
Message de réponse:
Séjours exacts
Le code suivant indique la syntaxe des séjours exacts dans une réponse d'indication. message:
<!-- 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>
Plages d'arrivée
Vous trouverez ci-dessous la syntaxe des plages d'arrivée dans une réponse d'indication. message:
<!-- 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>
Séjours inclus dans une période
Voici la syntaxe des séjours inclus dans une période dans un message Hint response :
<!-- 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>
Attributs
L'élément <Hint>
contient un attribut facultatif: id
. Lorsqu'il est fourni, il est inclus en tant qu'attribut hintId
dans les messages <Query>
envoyés en fonction de cet élément <Hint>
.
Éléments enfants
L'élément <Hint>
comporte les éléments enfants suivants :
Élément enfant | Obligatoire ? | Type | Type de réponse d'indication | Description |
---|---|---|---|---|
<CheckInDate> | Required | Date | Séjours exacts | Date d'arrivée pour l'itinéraire. |
<FirstDate> | Required | Date | Plages de dates d'arrivée et itinéraires inclus dans une période | Première date d'une plage de dates d'arrivée ou plage de dates reste le message de réponse d'indication. Les dates sont incluses. |
<Item> | Required | Object | Tous | Conteneur pour l'hôtel/le séjour à mettre à jour. |
<LastDate> | Required* | Date | Plages de dates d'arrivée et itinéraires inclus dans une période | Dernière date d'une plage de dates d'arrivée reste le message de réponse d'indication. Les dates sont incluses. * Cet élément est facultatif pour les séjours inclus dans une période. |
<LengthOfStay> | Required | integer | Séjours exacts | Nombre de nuits pour le séjour, exprimé sous forme de valeur positive entier. |
<Property> | Required | string | Tous | ID de l'hôtel, qui apparaît dans la liste d'hôtels. Le nombre
d'éléments
|
<Stay> | Required | Object | Séjours exacts | Un conteneur pour <CheckinDate> et
Éléments <LengthOfStay> pour un itinéraire exact
Message de réponse. Chaque <Item> ne peut contenir qu'un seul
<Stay> |
<StaysIncludingRange> | Required | Object | Séjours inclus dans une période | Un conteneur pour <FirstDate> et
Éléments <LastDate> dans une réponse d'indication pour des séjours inclus dans une période
. |
Exemples
Séjours exacts
L'exemple suivant définit plusieurs séjours pour un même établissement un message de réponse d'indication:
<!-- 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>
Plages d'arrivée
L'exemple suivant spécifie deux hôtels dont les prix ont changé et doivent être extraits à nouveau. Google récupère tous les itinéraires entre le 3 juillet et le 3 juillet 6 pour les propriétés 12345 et 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>
Séjours inclus dans une période
L'exemple suivant illustre deux utilisations différentes des séjours inclus dans une période : un séjour avec une plage de plusieurs nuits et un autre d'une seule nuit :
<!-- 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>
Pour chacun de ces exemples, Google répond avec un <Query>
. Vous devez
puis répondre avec un <Transaction>
qui inclut les mises à jour des prix pour le
les hôtels/séjours spécifiés.
<HintRequest>
Élément racine d'un message Hint request. Google envoie une demande d'indication message à votre serveur et attend une réponse spécifiant les hôtels et séjours dont les prix ont changé depuis la dernière fois que Google a reçu une la réponse d'indication réussie de votre serveur.
En cas de changement de prix, Google envoie un message <Query>
qui extrait les données tarifaires mises à jour pour les hôtels et séjours indiqués.
Pour en savoir plus, consultez Messages Hint request.
Syntaxe
L'élément <HintRequest>
utilise la syntaxe suivante :
Syntaxe
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
<LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>
Attributs
L'élément <HintRequest>
ne comporte aucun attribut.
Éléments enfants
L'élément <HintRequest>
comporte les éléments enfants suivants :
Élément enfant | Type | Description |
---|---|---|
<LastFetchTime> | DateTime | Dernière fois que Google a reçu un message de réponse d'indication
à un message Hint request.
Si cette date est postérieure à la dernière fois que vous mis à jour les prix sur votre serveur, répondez par un Indice Message de réponse spécifiant les hôtels modifiés. En l'absence d'une récupération réussie récente, la valeur valeur d'intervalle fixe (pour éviter des problèmes plus graves avec des en attente). La valeur actuelle de l'intervalle fixe est de 1 000 secondes, mais sont susceptibles d'être modifiées. Pour plus d'informations, consulter Messages de réponse d'indication. |
Exemples
Voici un exemple de message Hint request:
Message Hint request
L'exemple suivant présente un message Hint request :
<?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>
Élément racine d'un message Query
. Query
messages sont des requêtes
de Google pour mettre à jour
les prix ou les métadonnées. Ils sont utilisés avec les modes
et "Requête de prix modifiés"
modes d'envoi.
Il existe trois types de messages Query
:
Requête de prix en temps réel:Google répond à la demande spécifique de l'utilisateur en demandant une mise à jour des prix en temps réel. Lorsque les partenaires reçoivent une
Live pricing query
s'affiche, les partenaires doivent renvoyer un message<Transaction>
qui contient les informations tarifaires demandées dans les éléments<Result>
.Avec la tarification contextuelle:Google met à jour son cache de prix en fonction des contextes qui sont historiquement populaires. Lorsque vous recevez un
With context query
, vous devez répondre avec un message<Transaction>
contenant le les informations tarifaires demandées dans les éléments<Result>
.Métadonnées:Google demande la mise à jour des métadonnées des chambres et des offres de chambres. pour les hôtels spécifiés. Lorsque vous recevez un message
Metadata Query
, vous doit répondre par un message<Transaction>
spécifiant les données relatives à chambres et offres de chambres dans les éléments<PropertyDataSet>
.
Pour en savoir plus, consultez la présentation des tarifs. pour les requêtes de prix et les métadonnées des offres de chambres pour les requêtes de métadonnées.
Les trois différents types de syntaxes sont les suivants:
Syntaxe
L'élément <Query>
utilise la syntaxe suivante :
Requête de prix en temps réel
<?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>
Avec contexte
<?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>
Métadonnées
<HotelInfoProperties>
<Property>property_ID</Property>
...
</HotelInfoProperties>
Attributs
L'élément <Query>
peut contenir un seul attribut: latencySensitive
.
L'attribut latencySensitive
est facultatif. Si fourni et défini sur
true
, cela indique que la requête est de type Live Pricing Query
. Pour que Google envoie des requêtes avec l'attribut latencySensitive
, contactez votre responsable de compte technique.
Éléments enfants
L'élément <Query>
comporte les éléments enfants suivants :
Élément enfant | Type de requête | Type | Description |
---|---|---|---|
<AffectedNights> | Pricing | integer | Nombre de nuits d'un séjour inclus dans une période. Cet élément n'est utilisé que pour les requêtes de prix des séjours inclus dans une période en mode Requête de prix modifiés. |
<Checkin> | Pricing | Date | Dates d'un changement de prix spécifique. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | Pour les requêtes de prix en temps réel, spécifie certains paramètres sous lesquels
la requête est effectuée. Les éléments enfants sont les suivants:
L'élément |
<FirstDate> | Pricing | Date | Date de début d'un ensemble de séjours auxquels s'applique. Cet élément n'est utilisé que pour les requêtes sur les prix d'une plage de dates d'arrivée en mode Requête de prix modifiés. |
<HotelInfoProperties> | Metadata | string | Un ou plusieurs établissements dont Google souhaite mettre à jour
les métadonnées de chambre et d'offre de chambres dans un message de métadonnées Query .
Cet élément peut contenir un ou plusieurs <Property>
spécifiant les ID d'établissements hôteliers. |
<LastDate> | Pricing | Date | Date de fin d'un ensemble de séjours auxquels s'applique. Cet élément n'est utilisé que pour les tarifs d'une plage de dates d'arrivée les requêtes utilisées avec le mode d'envoi Pull + Hints. |
<Nights> | Pricing | integer | Nombre de nuits pour un séjour donné (jusqu'à 30). |
<PropertyList> | Pricing | Object | Un ou plusieurs ID d'hôtels pour lesquels les prix doivent être mis à jour. Définissez chaque hôtel dans un élément <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Exemples
Requête de prix
L'exemple suivant illustre un message de demande de prix qui demande un prix des mises à jour pour un ensemble d'hôtels, disponibles pour trois nuits et à partir du 10 juin 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>
Requête de prix en temps réel
L'exemple suivant illustre une requête de prix en temps réel avec un temps de réponse. limite de 500 millisecondes:
<?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>
Avec requête contextuelle
<?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>
Requête de métadonnées
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
Pour obtenir d'autres exemples, y compris une plage de dates de séjour inclus dans une période et d'arrivée,
requêtes de prix, consultez les exemples de message Query
.
<Context>
L'élément <Context>
décrit les informations relatives à un Live pricing query
, comme le nombre et le type de clients, le pays de l'utilisateur et l'appareil de l'utilisateur.
Les <Context>
multiples ne seront jamais utilisés avec des pays ou des utilisateurs différents
appareils des utilisateurs. Lorsque plusieurs <Context>
sont utilisés pour interroger plusieurs
nombre de personnes, fournissez chaque tarif en tant qu'offre de chambres supplémentaire
pour l'établissement ou le séjour en question. Chaque établissement ou séjour doit
avoir un seul bloc <Result>
avec les prix pour plusieurs nombres de personnes ;
inclus.
Pour obtenir les détails de la réponse à la requête <Context>
, consultez
<OccupancyDetails>
Syntaxe
L'élément <Context>
utilise la syntaxe suivante :
Syntaxe
<?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>
Éléments enfants
L'élément <Context>
comporte les éléments enfants suivants :
Élément enfant | Type de requête | Type | Description |
---|---|---|---|
<Occupancy> | Pricing | integer | Spécifie le nombre total de clients. Bien que cela ne soit pas obligatoire, les requêtes avec Remarque: |
<OccupancyDetails> | Pricing | Object | Est précédé de <Occupancy> . Spécifie les invités par
y compris:
Bien que ce ne soit pas obligatoire, les requêtes avec Remarque : |
<UserCountry> | Pricing | string | Filtre les tarifs en fonction du pays où se trouve l'utilisateur. Cette valeur est une
Code pays à deux lettres, comme Les requêtes pour lesquelles |
<UserDevice> | Pricing | string | Filtre les tarifs en fonction du type d'appareil à partir duquel l'utilisateur effectue sa recherche. Valeurs possibles :
Les requêtes pour lesquelles |
Exemples
Nombre de personnes
L'exemple suivant présente une requête de prix en temps réel pour <Occupancy>
dans <Context>
. La requête de prix en temps réel concerne trois adultes.
<?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>
Détails du nombre de personnes
L'exemple suivant illustre une requête de prix en temps réel avec
<OccupancyDetails>
dans <Context>
.
La requête de prix en temps réel concerne quatre personnes, dont deux
sont des enfants, et cherchent un tarif applicable à une réservation effectuée aux États-Unis auprès de
un appareil mobile:
<?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>
Contextes multiples
L'exemple suivant montre comment utiliser un élément <Context>
supplémentaire
dans une requête de prix en temps réel.
<?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>