Messages de requête

Les messages de requête sont des requêtes que Google vous envoie 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:Google envoie un message de requête dans lequel il demande des données sur les chambres et les offres de chambres des hôtels spécifiés.

Vous définissez le point de terminaison auquel Google envoie 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 d'établissement et de séjour pour lesquelles vous fournissez 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 de messages Query spéciaux:

  1. Prix en temps réel:si cette option est activée, des requêtes sont envoyées lorsqu'un utilisateur consulte activement les prix de la combinaison d'établissement ou de séjour spécifiée. Vous disposez d'un délai pour répondre.

  2. Avec contexte:si cette option est activée, des 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 la propriété ou les combinaisons d'itinéraires données. Suivre ces recommandations peut améliorer l'efficacité de vos réponses.

  3. Métadonnées:demande d'informations sur les chambres et les formules 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 Google vous envoie pour obtenir en temps réel une mise à jour de vos prix en vue de répondre aux recherches des utilisateurs. Google reçoit 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, Google vous demande 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 pouvez 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 concernant l'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 le même séjour. Il peut être utilisé à la fois pour des combinaisons hôtel/séjour et des combinaisons plusieurs hôtels/un seul séjour.

La fonctionnalité de prix en temps réel en contexte nous permet de cibler nos requêtes de prix en temps réel 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/ou 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

Avec Context, les requêtes 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. Ils contiennent une liste des contextes utilisateur populaires pour ces combinaisons. Si vous utilisez les tarifs sous conditions, les tarifs d'envoi pour tous les contextes utilisateur possibles peuvent être coûteux. Vous pouvez donc utiliser cette liste de contextes utilisateur pour limiter votre réponse. Le fait de renvoyer des 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 (TAM). Il peut confirmer que vous êtes prêt à recevoir ces messages, puis effectuer un ajustement de 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 offres de chambres pour les établissements 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 hôtels demandés 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/ou 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 d'hôtels ou de séjours. 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 d'autres exemples dans la documentation de référence XML sur les requêtes.

Exemple de séjour

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 (messages de transaction).

Avec un exemple de requête de contexte

L'exemple suivant montre une requête With Context:

<?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>

Avec les requêtes contextuelles, le contexte du pays de l'utilisateur est uniquement spécifié. À l'avenir, de telles requêtes pourront également spécifier l'appareil et l'occupation de l'utilisateur.

Plages de dates d'arrivée

Si vous utilisez le mode d'envoi "Requête de prix modifiés", alors 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 offres de chambres 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 offres de chambres. Pour en savoir plus, consultez la section Définir des métadonnées de chambres et de formules.