Messaggi Hint Response

Quando Google invia un messaggio Hint Request, i tuoi server devono rispondere con un messaggio Hint Response che specifica gli hotel con prezzi modificati rispetto all'ultima volta in cui Google ha ricevuto un messaggio Hint Response valido dagli stessi server. In caso di modifiche ai prezzi, Google invia un elemento <Query> che recupera i dati aggiornati sui prezzi per gli hotel e gli itinerari indicati.

Per una panoramica del processo di rideterminazione dei prezzi, consulta la pagina Panoramica dei prezzi.

I messaggi Hint Response utilizzano i seguenti metodi per rideterminare i prezzi degli hotel selezionati e dei relativi itinerari:

L'elemento principale di un messaggio Hint Response è <Hint>. Per richiedere l'aggiornamento di un hotel o di un itinerario, utilizza uno o più <Item> elementi. Un singolo messaggio Hint Response può definire un numero illimitato di elementi <Item>.

Ogni messaggio Hint Response deve specificare almeno un <Property> elemento per ogni <Item>. L'elemento <Property> identifica un hotel utilizzando gli stessi ID presenti nell' elenco hotel. Per impostazione predefinita, devi specificare un solo ID hotel per ogni <Item> blocco. Tuttavia, puoi indicare a Google di consentire più hotel in un blocco <Item> se utilizzi intervalli di date del check-in o soggiorni con intervallo di date per rideterminare i prezzi.

Flusso di richiesta e risposta degli itinerari esatti

I messaggi Hint possono essere basati su singoli itinerari, ad esempio la combinazione di data del check-in e durata del soggiorno. In questo caso, devi specificare una data di check-in e la durata del soggiorno per i tuoi hotel e Google recupererà i nuovi dati sui prezzi solo per l'itinerario in questione.

Risposta del partner

Il seguente messaggio Hint Response definisce una singola proprietà e un unico itinerario:

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

Risposta di Google

Google risponde al tuo messaggio Hint Response con un <Query> simile al seguente:

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

Crea <Transaction>

Dovrai quindi creare un elemento <Transaction> con gli aggiornamenti dei prezzi per l' hotel per il seguente soggiorno:

5/20/23 - 5/23/23

Flusso di richiesta e risposta degli intervalli di date del check-in

Un messaggio Hint Response può specificare un intervallo di date di check-in, che inizia con la prima data di check-in e termina con l'ultima data di check-in. Quando Google recupera i nuovi dati sui prezzi, estrae gli itinerari per ogni data del check-in per l'hotel che iniziano da queste date e si estendono fino alla durata del soggiorno indicata.

Date con intervallo di date del partner

L'esempio seguente di messaggio Hint Response definisce una singola proprietà con un intervallo di date per il check-in:

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

Risposta di Google

Google risponde a questo messaggio Hint Response con <Query> simile a quanto segue:

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

Crea <Transaction>

Dovrai quindi creare un elemento <Transaction> con gli aggiornamenti dei prezzi per i seguenti soggiorni per quell'hotel:

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

In questo esempio viene utilizzata una durata del soggiorno di 5 notti. La durata predefinita del soggiorno è di 30 giorni.

Flusso di richiesta e risposta dei soggiorni con intervallo di date

Un messaggio Hint Response può includere un intervallo di date modificate. In questo modo, Google sa che deve recuperare tutti gli itinerari interessati da queste date. L'insieme effettivo di itinerari recuperati è in funzione sia dell'insieme di date con modifiche, sia della durata massima del soggiorno.

Soggiorni con intervallo di date del partner

L'esempio di messaggio Hint Response seguente utilizza soggiorni con intervallo di date:

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

Risposta di Google

Google risponde al tuo messaggio Hint Response con un <Query> simile al seguente:

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

Crea <Transaction>

Dovrai quindi creare un elemento <Transaction> con gli aggiornamenti dei prezzi per il hotel per i seguenti soggiorni:

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

Soggiorni con intervallo di date: limiti di batch e suddivisione delle query

Google limita ogni query pull a un massimo di 10.000 combinazioni di coppie hotel-itinerario (un hotel, una data di check-in e una durata del soggiorno). Per un suggerimento relativo a un soggiorno con intervallo di date Ranged Stay, il numero di combinazioni viene calcolato utilizzando la formula del trapezio per calcolare il numero di combinazioni di coppie hotel-itinerario per le query relative ai soggiorni con intervallo di date:

$$ \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}} $$

Dove:

  • Date Span: il numero inclusivo di giorni compresi tra <FirstDate> e <LastDate> (intervallo di date = LastDate - FirstDate + 1).
  • LOS: la durata massima del soggiorno richiesta nel suggerimento (ad esempio, <AffectedNights>14</AffectedNights>).
  • \(N_{\text{hotel_batch_size}}\): il numero di proprietà incluse nel batch di query (configurato tramite hotel_batch_size).

Cosa succede quando un suggerimento supera i 10.000 elementi?

Se gli elementi calcolati superano 10.000, Google suddivide automaticamente il carico di lavoro delle query:

  1. Tentativo iniziale (soggiorno con intervallo di date): viene inviata una finestra di date più piccola che copre l'inizio dell'intervallo utilizzando <AffectedNights>.
  2. Primo fallback (se supportato: intervallo di date del check-in): tenteremo di inviare i restanti intervalli di date più piccoli come query relative all'intervallo di date del check-in utilizzando <Nights> (query di seguito).
  3. Fallback finale (itinerari esatti): torneremo a espandere l'insieme di query ai singoli itinerari esatti.
<!-- 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>
  • Mantieni equilibrate le dimensioni dei batch di proprietà: se aggiorni finestre di date di grandi dimensioni (ad esempio da 180 a 365 giorni) con durate del soggiorno di 14 o più notti, chiedi al tuo responsabile tecnico dell'account Google di impostare hotel_batch_size su un valore inferiore per evitare che i suggerimenti attivino le suddivisioni.
  • Limita i suggerimenti: quando invii una notifica a Google in merito alle modifiche dei prezzi, limita gli intervalli <FirstDate> e <LastDate> agli intervalli di date specifici in cui le tariffe sono effettivamente cambiate, anziché inviare un anno solare completo.
  • Se i suggerimenti coprono intervalli di date di grandi dimensioni: assicurati che il parser accetti o all'interno dei blocchi contenenti <FirstDate> e <LastDate> in modo che sia possibile utilizzare più tipi di query con intervallo di date per soddisfare le richieste pull.