Les messages de requête sont des requêtes que nous vous envoyons pour la mise à jour de vos tarifs et de vos métadonnées. Ils sont utilisés avec les modes d'envoi "Pull" et "Requête de prix modifiés".
L'élément racine des messages de requête est <Query>
.
La structure du message de requête dépend du type de message :
Prix : Google envoie un message de requête dans lequel il demande la mise à jour des prix pour les hôtels spécifiés.
Métadonnées : nous envoyons un message de requête dans lequel nous exigeons les données sur les chambres et les formules pour les hôtels spécifiés.
Vous définissez le point de terminaison auquel nous envoyons les messages de requête et les requêtes de prix en temps réel lors de la configuration initiale. Pour en savoir plus, contactez votre responsable de compte technique (TAM).
Google envoie un message de requête à l'aide d'une requête HTTP POST
dont l'en-tête Content-Type
est défini sur "application/xml" et l'en-tête User-Agent
sur Google-HotelAdsPrices
. Toutefois, cette règle ne s'applique pas lorsque l'intégration du point de terminaison des prix est testée manuellement via Google-TravelAds-Live
. Ces exemples de requêtes peuvent ou non contenir l'en-tête User-Agent
.
Pour plus d'informations sur la mise en forme détaillée des messages de requête, consultez la documentation de référence XML.
Messages de requête de prix
Les messages de requête de prix spécifient les combinaisons hôtel/séjour pour lesquelles vous devez fournir les prix.
Lorsque votre serveur reçoit un message de requête de prix, il doit renvoyer un message <Transaction>
comportant les informations tarifaires requises.
Pour en savoir plus, consultez Présentation des tarifs.
Il existe trois types spéciaux de messages Query :
Prix en temps réel : si cette option est activée, les requêtes sont envoyées lorsqu'un utilisateur recherche activement les prix pour la combinaison hôtel/séjour spécifiée. Vous disposez d'un délai spécifique pour répondre.
Avec contexte : si cette option est activée, les recommandations de contexte utilisateur sont incluses dans chaque requête que Google vous envoie. Elles reflètent les types d'utilisateurs les plus courants qui recherchent les combinaisons de propriétés ou d'itinéraires données. Le suivi de ces recommandations peut améliorer l'efficacité de vos réponses.
Métadonnées : il s'agit d'une demande d'informations sur les chambres et les séjours organisés pour les établissements spécifiés.
Requêtes de prix en temps réel
Les requêtes de prix en temps réel sont des requêtes que nous vous envoyons pour obtenir en temps réel une mise à jour de vos prix en vue de répondre aux recherches d'un utilisateur. Nous recevons une requête de recherche d'un utilisateur pour une combinaison hôtel/séjour. Étant donné que les données tarifaires ne sont alors pas disponibles ou pas à jour, nous vous demandons de mettre à jour vos prix au moment de la recherche. Lorsque nous vous envoyons une requête de prix en temps réel, nous tentons d'obtenir un prix pour l'afficher dans les résultats lors de la recherche.
Toutes les requêtes de prix en temps réel ont un temps de réponse limité, généralement inférieur à 4 000 millisecondes. Cette limite est spécifiée dans la requête de prix en temps réel. Si aucune réponse ne peut être fournie dans le délai imparti, vous ne pourrez pas participer aux enchères pour cette opportunité. C'est ce qu'on appelle une "participation manquée". Toutefois, nous vous recommandons de fournir un prix afin qu'il puisse être mis en cache et utilisé pour de futures opportunités. La connexion pour la réponse reste ouverte pendant 10 minutes ou aussi longtemps que spécifié dans la configuration du partenaire.
Les requêtes de prix en temps réel sont également contextuelles et peuvent récupérer les prix pour les paramètres suivants : pays de l'utilisateur, type d'appareil, nombre de personnes (nombre de clients) et profil des clients (adultes ou enfants). Les requêtes de prix en temps réel vous permettent d'afficher des prix plus à jour qui correspondent à ce que le client a recherché.
Les requêtes de prix en temps réel constituent un système secondaire de mise à jour des prix. Le mécanisme principal de mise à jour des prix reste soit "Pull", soit "Requête de prix modifiés". Les requêtes de prix en temps réel permettent d'obtenir des tarifs pour des combinaisons hôtel/séjour que nous n'avons pas.
Règles d'utilisation des requêtes de prix en temps réel
Nous ne disposons d'aucune donnée en cache pour le séjour en question, parce que le séjour demandé est inhabituel (par exemple, les dates sont très lointaines) ou l'hôtel fait rarement l'objet d'une recherche.
La date demandée n'est pas une date par défaut.
: Remarque : Les dates par défaut ne sont pas éligibles pour les requêtes de prix en temps réel. Les requêtes de prix en temps réel ne sont envoyées que pour des dates définies spécifiquement par les voyageurs.
En général, nous mettons en cache les résultats d'une requête de prix en temps réel, ce qui nous permet de ne pas envoyer d'autres requêtes de ce type pour le même hôtel ou séjour. Elle peut être utilisée à la fois pour des combinaisons hôtel/séjour et des combinaisons plusieurs hôtels/un seul séjour.
La fonctionnalité Prix en temps réel avec contexte permet à Google d'envoyer des requêtes de prix en temps réel spécifiques en fonction du type d'appareil d'un utilisateur, du pays dans lequel il effectue la recherche et du nombre de personnes (y compris les enfants). Le message de requête et le message de transaction sont développés pour inclure l'élément <Context>
qui définit les paramètres de requête. Les prix reçus en réponse aux requêtes de prix en temps réel en contexte peuvent être mis en cache sous la forme d'une offre de chambres (s'il s'agit d'un prix pour un nombre de personnes précis) et d'un tarif sous conditions (s'il s'agit d'un prix spécifique au pays ou au type d'appareil de l'utilisateur).
Avec les requêtes de contexte
Les requêtes de contexte sont des demandes régulières de mise à jour de notre base de données pour les combinaisons de propriétés ou d'itinéraires spécifiées. Elles contiennent une liste de contextes utilisateur populaires pour ces combinaisons. Si vous utilisez des tarifs sous conditions, l'envoi de tarifs pour tous les contextes utilisateur possibles peut être coûteux. Vous pouvez donc utiliser cette liste de contextes utilisateur pour limiter votre réponse. Le fait de renvoyer les prix uniquement pour les contextes utilisateur spécifiés couvre la grande majorité des requêtes utilisateur pertinentes.
Si vous souhaitez recevoir des requêtes "Avec contexte", contactez votre responsable de compte technique. Il peut confirmer que vous êtes prêt à recevoir de tels messages, puis ajuster la configuration pour commencer à vous envoyer des contextes utilisateur dans les requêtes.
Messages de requête de métadonnées
Les messages de requête de métadonnées contiennent des informations sur les chambres et les formules pour les hôtels spécifiés.
Lorsque vous recevez un message de requête de métadonnées, vous devez renvoyer un message <Transaction>
comportant les tarifs pour les propriétés demandées dans les éléments <Result>
.
Pour en savoir plus, consultez Définir des métadonnées de chambres et de formules.
Requêtes de contrôle
Cette section explique comment vous pouvez déterminer les hôtels et les séjours pour lesquels nous pouvons envoyer des messages de requête.
Limites concernant le séjour
L'élément <ItineraryCapabilities>
permet de fixer des limites aux requêtes de prix. Vous devez définir les règles qui déterminent la plage de dates et la durée maximale des séjours que vous acceptez.
Vous pouvez définir des valeurs par défaut pour <MaxAdvancePurchase>
et <MaxLengthOfStay>
qui s'appliquent à toutes les combinaisons hôtel/séjour. Vous pouvez également définir ces paramètres pour des groupes d'hôtels.
Exemples de messages de requête
Cette section présente plusieurs exemples de messages de requêtes de prix et un exemple de message de requête de métadonnées. Vous trouverez également d'autres exemples dans la documentation de référence sur les requêtes XML.
Exemple d'itinéraire
L'exemple suivant présente une requête de prix <Query>
afin d'obtenir une mise à jour des tarifs de quatre hôtels, pour trois nuits, à partir du 23 mai 2023 :
<?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>
Dans cet exemple, le message demande la mise à jour des prix pour chaque hôtel :
5/23/18 - 6/26/18
Exemple de requête de prix en temps réel
L'exemple suivant présente une requête de prix en temps réel dont le temps de réponse est limité à 500 millisecondes :
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
be configured to be displayed, on request, by Google. This attribute is only
displayed for a Live Pricing Query request -->
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
received by. This element is only displayed for a Live Pricing Query request -->
<PropertyList>
<Property>6781291</Property>
</PropertyList>
<!-- Note that Context tags are potentially repeatable -->
<Context>
<!-- The total number of guests occupying the room (adults+children) -->
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
<Children>
<Child age="5"/>
</Children>
</OccupancyDetails>
<!-- The user was located in the US when this search was made -->
<UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
<UserDevice>mobile</UserDevice>
</Context>
</Query>
Dans cet exemple, le message demande le prix d'un seul hôtel :
6/23/23 - 6/25/23
Vous trouverez des exemples de messages de transaction répondant à cette requête dans la documentation de référence XML sur la tarification et l'inventaire des chambres (transactions).
Exemples de requêtes avec contexte
Voici des exemples de requêtes avec contexte :
Requête de base avec contexte
<?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>
Requête avec contexte incluant l'occupation
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2025-07-10</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<Context>
<UserCountry>US</UserCountry>
</Context>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="7"/>
</Children>
</OccupancyDetails>
</PropertyContext>
<PropertyContext>
<Property>8675310</Property>
<Context>
<UserCountry>GB</UserCountry>
</Context>
<Occupancy>1</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
</OccupancyDetails>
</PropertyContext>
</PropertyContextList>
</Query>
"Avec les requêtes contextuelles uniquement" spécifie le contexte du pays de l'utilisateur. À l'avenir, ces requêtes pourront également spécifier l'appareil de l'utilisateur.
Plages de dates d'arrivée
Si vous utilisez le mode d'envoi "Requête de prix modifiés", la structure du message de requête dépend du type d'indication utilisé pour les plages de dates d'arrivée, les séjours exacts ou les séjours inclus dans une période. Pour en savoir plus sur chacun de ces types d'indications, consultez Messages Hint Response.
L'exemple suivant présente un message de requête de prix <Query>
pour une plage de dates d'arrivée :
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<FirstDate>2023-05-23</FirstDate>
<LastDate>2023-05-26</LastDate>
<Nights>3</Nights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
Dans cet exemple, le message demande la mise à jour des prix pour les séjours suivants (pour chaque hôtel) :
5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/24/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23
Séjours inclus dans une période
L'exemple suivant présente un message de requête de prix <Query>
pour des séjours inclus dans une période :
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<FirstDate>2023-05-23</FirstDate>
<LastDate>2023-05-26</LastDate>
<AffectedNights>3</AffectedNights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
Dans cet exemple, le message demande la mise à jour des prix pour chaque hôtel :
5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/25/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23
Cette requête s'applique également aux séjours débutant avant (mais incluant) la nuit du jour d'arrivée :
5/20/23 - 5/23/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23
Message de requête de métadonnées
L'exemple suivant présente un message de requête <Query>
où nous voulons obtenir une mise à jour des métadonnées pour les informations sur les chambres et les séjours organisés de plusieurs hôtels :
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
Pour répondre à ce type de message de requête, vous devez envoyer un message de transaction comportant les métadonnées des chambres et des formules. Pour en savoir plus, consultez Définir des métadonnées de chambres et de formules.