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 de réponse d'indication. Messages de réponse d'indication spécifie les combinaisons hôtel/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 de réponse d'indication utilisent l'une des méthodes suivantes pour spécifier hôtels et séjours dont Google doit mettre à jour les prix:
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 -->
<!-- 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>
Séjours inclus dans une période
Voici la syntaxe des séjours inclus dans une période dans une réponse d'indication message:
<!-- 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>
Attributs
L'élément <Hint>
contient un attribut facultatif: id
. Quand ?
fournie, elle est incluse en tant qu'attribut hintId
dans <Query>
messages envoyés à partir de ce <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 | Identifiant d'un hôtel, qui doit être identique à celui figurant 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 doit être récupérée à 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>
Pour qu'un message de plage d'arrivée puisse spécifier plusieurs
propriétés dans un seul élément <Item>
, la valeur de
<MultipleItineraries>
dans <QueryControl>
doit être défini sur
"checkin_range"
Séjours inclus dans une période
L'exemple suivant présente deux utilisations différentes des séjours inclus dans une période, l'une pour et l'autre pour 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>
Notez que pour qu'un message de séjour inclus dans une période puisse spécifier plusieurs
propriétés dans un seul élément <Item>
, la valeur de
<MultipleItineraries>
dans <QueryControl>
doit être défini sur
"affected_dates"
Pour chacun de ces exemples, Google renvoie un <Query>
. Vous devez
puis répondre avec un <Transaction>
qui inclut les mises à jour de 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 une réponse d'indication réussie de votre serveur.
En cas de changement de prix, Google envoie une <Query>
qui
récupère 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, consultez la section Messages de réponse d'indication. |
Exemples
Voici un exemple de message Hint request:
Message Hint request
Voici un exemple de 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 les modes d'envoi des prix modifiés.
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.
La syntaxe des trois types différents est décrite ci-dessous.
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
avec l'attribut latencySensitive
, contactez votre responsable de compte technique
responsable de compte technique (TAM).
É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 est utilisé Uniquement pour les requêtes de prix de séjours inclus dans une période utilisées avec le 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:
<ph type="x-smartling-placeholder">
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 tarifs d'une plage de dates d'arrivée des requêtes utilisées avec le 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 éléments <Property> :
spécifier 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 identifiants 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 pour un ensemble d'hôtels, disponibles pour trois nuits. À 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 présente 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 de Live pricing query
.
y compris le nombre et le type d'invités, le pays 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
veuillez indiquer chaque nombre de personnes en tant qu'offre de chambres supplémentaire
pour l'établissement/le séjour correspondant. Chaque établissement/séjour doit comporter
un seul bloc <Result>
avec les prix de plusieurs
nombre 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 contenant Remarque: |
<OccupancyDetails> | Pricing | Object | Est précédé de <Occupancy> . Spécifie les invités par type,
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 illustre 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
invités.
<?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>
Informations sur le 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>