Messages de réponse d'indication

Lorsque nous envoyons un message Hint Request, vos serveurs doivent y répondre avec un message de réponse d'indication. Celui-ci doit spécifier les hôtels dont les prix ont changé depuis la dernière fois où nous avons reçu un message de réponse d'indication de la part de vos serveurs. En cas de changement de prix, Google envoie ensuite un message <Query> qui extrait les données tarifaires mises à jour pour les hôtels et séjours indiqués.

Pour en savoir plus sur le processus de modification des prix, consultez la section Présentation des prix.

Les messages de réponse d'indication utilisent les méthodes suivantes pour modifier les prix des hôtels sélectionnés et de leurs séjours :

L'élément racine d'un message de réponse d'indication est <Hint>. Pour demander la mise à jour d'un hôtel ou d'un séjour, utilisez un ou plusieurs <Item> éléments. Un message de réponse d'indication peut définir plusieurs éléments <Item>.

Chaque message de réponse d'indication doit comporter au moins un élément <Property> pour chaque <Item>. L'élément <Property> identifie un hôtel en utilisant le même ID que celui défini dans la liste d'hôtels pour l'établissement concerné. Par défaut, vous spécifiez un identifiant d'hôtel unique pour chaque <Item> bloc. Toutefois, vous pouvez nous indiquer plusieurs hôtels dans un bloc "<Item>" si vous utilisez des plages de dates d'arrivée ou des séjours inclus dans une période pour mettre à jour vos prix.

Flux des messages de requête et de réponse pour un séjour exact

Les messages d'indication peuvent être basés sur des séjours individuels (combinaison d'une date d'arrivée et d'une durée de séjour). Dans ce cas, vous spécifiez une date d'arrivée et une durée de séjour pour vos hôtels, et nous récupérons les nouvelles données tarifaires uniquement pour ce séjour.

Réponse du partenaire

Le message de réponse Hint request suivant définit une seule propriété et un seul séjour :

<Hint>
  <Item>
    <Property>12345</Property>
    <Stay>
      <CheckInDate>2023-05-20</CheckInDate>
      <LengthOfStay>3</LengthOfStay>
    </Stay>
  </Item>
</Hint>

La réponse de Google

Nous répondons à votre message de réponse d'indication par un message <Query> semblable à ce qui suit :

<Query>
  <Checkin>2023-05-20</Checkin>
  <Nights>3</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>

Créer <Transaction>

Vous devez ensuite créer un <Transaction> en mettant à jour les prix de l' hôtel pour le séjour suivant :

5/20/23 - 5/23/23

Flux des messages de requête et de réponse pour une plage de dates d'arrivée

Un message de réponse Hint request peut spécifier une plage de dates d'arrivée, allant de la première date d'arrivée à la dernière date d'arrivée. Lors nous récupérons de nouvelles données tarifaires, notre système extrait les séjours correspondant à chaque date d'arrivée à l'hôtel spécifiée et à la durée du séjour indiquée.

Plage de dates du partenaire

Dans l'exemple ci-dessous, le message de réponse d'indication définit un hôtel et une plage de dates d'arrivée :

<Hint>
  <Item>
    <Property>12345</Property>
    <FirstDate>2023-05-20</FirstDate>
    <LastDate>2023-05-23</LastDate>
  </Item>
</Hint>

La réponse de Google

Nous y répondons par un message <Query> semblable à celui-ci :

<Query>
  <FirstDate>2023-05-20</FirstDate>
  <LastDate>2023-05-23</LastDate>
  <Nights>5</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>

Créer <Transaction>

Vous devez ensuite créer un message <Transaction> en mettant à jour les prix de l'hôtel pour les séjours suivants :

5/20/23 - 5/21/23
5/20/23 - 5/22/23
5/20/23 - 5/23/23
5/20/23 - 5/24/23
5/20/23 - 5/25/23

5/21/23 - 5/22/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/21/23 - 5/25/23
5/21/23 - 5/26/23

5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23
5/22/23 - 5/26/23
5/22/23 - 5/27/23

Dans cet exemple, la durée du séjour est de cinq nuits. La durée du séjour par défaut est de 30 jours.

Flux des messages de requête et de réponse pour des séjours inclus dans une période

Un message de réponse d'indication peut inclure une plage de dates qui ont changé. Cela nous indique que nous devons récupérer tous les séjours concernés par ces dates. Le groupe de séjours récupéré combine à la fois les dates avec les prix modifiés et la durée maximale du séjour indiquée.

Séjours inclus dans une période du partenaire

L'exemple de message de réponse Hint request ci-dessous utilise des séjours inclus dans une période :

<Hint>
  <Item>
    <Property>12345</Property>
    <StaysIncludingRange>
      <FirstDate>2023-05-20</FirstDate>
      <LastDate>2023-05-23</LastDate>
    </StaysIncludingRange>
  </Item>
</Hint>

La réponse de Google

Nous répondons à votre message de réponse d'indication par un message <Query> semblable à ce qui suit :

<Query>
  <FirstDate>2023-05-20</FirstDate>
  <LastDate>2023-05-23</LastDate>
  <AffectedNights>3</AffectedNights>
  <PropertyList>
    <Property>12345</Property>
    <Property>67891</Property>
  </PropertyList>
</Query>

Créer <Transaction>

Vous devez ensuite créer un message <Transaction> en mettant à jour les prix de l'hôtel pour les séjours suivants :

5/17/23 - 5/20/23

5/18/23 - 5/20/23
5/18/23 - 5/21/23

5/19/23 - 5/20/23
5/19/23 - 5/21/23
5/19/23 - 5/22/23

5/20/23 - 5/21/23
5/20/23 - 5/22/23
5/20/23 - 5/23/23

5/21/23 - 5/22/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

5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23

Séjours inclus dans une période : limites de regroupement et division des requêtes

Nous limitons chaque requête d'extraction à un maximum de 10 000 combinaisons hôtel/séjour (hôtel, date d'arrivée et durée du séjour). Pour une indication de séjour inclus dans une période, le nombre de combinaisons est calculé à l'aide de la formule du trapèze pour calculer le nombre de combinaisons hôtel/séjour pour les requêtes de séjours inclus dans une période :

$$ \text{Total Items} = \left( \text{Date Span} \times \text{LOS} + \frac{\text{LOS} \times (\text{LOS} + 1)}{2} \right) \times N_{\text{hotel_batch_size}} $$

Où :

  • Date Span : nombre inclusif de jours entre <FirstDate> et <LastDate> (Date Span = LastDate - FirstDate + 1).
  • LOS : durée maximale du séjour demandée dans l'indication (par exemple, <AffectedNights>14</AffectedNights>).
  • \(N_{\text{hotel_batch_size}}\): nombre d'établissements inclus dans le lot de requêtes (configuré via hotel_batch_size).

Que se passe-t-il lorsqu'une indication dépasse 10 000 éléments ?

Si le nombre d'éléments calculé dépasse 10 000, Google divise automatiquement la charge de travail de la requête :

  1. Première tentative (séjour inclus dans une période) : une plus petite fenêtre de dates couvrant le début de votre plage est envoyée à l'aide de <AffectedNights>.
  2. Première solution de repli (si elle est compatible, plage de dates d'arrivée) : nous tentons d'envoyer les restes plus petits de votre plage de dates en tant que requêtes de plage de dates d'arrivée à l'aide de <Nights> (requête ci-dessous).
  3. Dernière solution de repli (séjours exacts) : nous revenons à l'extension de l'ensemble de requêtes aux séjours exacts individuels.
<!-- Example: Remainder batch dispatched after a split -->
<Query>
  <FirstDate>2026-10-01</FirstDate>
  <LastDate>2026-10-31</LastDate>
  <Nights>14</Nights>
  <PropertyList>
    <Property>12345</Property>
  </PropertyList>
</Query>
  • Équilibrez la taille des lots d'établissements : si vous mettez à jour de grandes fenêtres de dates (par exemple, de 180 à 365 jours) avec des durées de séjour de 14 nuits ou plus, demandez à votre responsable de compte technique Google de définir une valeur inférieure pour hotel_batch_size afin d'empêcher les indications de déclencher des divisions.
  • Limitez les indications : lorsque vous informez Google des modifications de prix, limitez les plages <FirstDate> et <LastDate> aux intervalles de dates spécifiques où les tarifs ont réellement changé, plutôt qu'envoyer une année civile complète.
  • Si vos indications couvrent de grandes plages de dates : assurez-vous que votre analyseur accepte ou dans les blocs contenant <FirstDate> et <LastDate> afin que plusieurs types de requêtes incluses dans une période puissent être utilisés pour répondre aux requêtes d'extraction.