Questa sezione fornisce un riferimento per i file di Google Messaggi Hint Request, messaggi Hint Response, e Messaggi Query.
<Hint>
(messaggio Hint Response)
L'elemento principale di un messaggio Hint Response. Messaggi Hint Response specificare per quali combinazioni hotel/itinerario il prezzo deve essere aggiornato. Sono le tue risposta a un messaggio Hint Request di Google.
Un messaggio Hint Response deve specificare solo gli hotel i cui prezzi hanno è cambiato dall'ultima volta che Google ha ricevuto un Hint Response con esito positivo da nei tuoi server.
I messaggi Hint Response utilizzano uno dei seguenti metodi per specificare quale hotel e itinerari che Google deve ridefinire i prezzi:
Itinerari esatti: una combinazione di data di check-in e durata del soggiorno.
Intervalli di date di check-in: specifica un intervallo di date di check-in. date, che iniziano con la prima data di check-in e terminano con l'ultima data del check-in.
Soggiorni con intervallo di date (o itinerario con intervallo di date)
Ognuno di questi metodi richiede una sintassi diversa per Hint Response .
Per ulteriori informazioni, consulta la sezione Messaggi Hint Response.
Sintassi
L'elemento <Hint>
utilizza una sintassi diversa a seconda del tipo di Hint
Messaggio di risposta:
Itinerari esatti
Di seguito viene mostrata la sintassi per gli itinerari esatti in una risposta Hint Response messaggio:
<!-- 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>
Intervalli di check-in
Di seguito viene mostrata la sintassi per gli intervalli di check-in in una risposta Hint messaggio:
<!-- 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>
Soggiorni con intervallo di date
Di seguito viene mostrata la sintassi per i soggiorni con intervallo di date in una risposta Hint messaggio:
<!-- 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>
Attributi
L'elemento <Hint>
contiene un attributo facoltativo: id
. Quando
specificato, è incluso come attributo hintId
in <Query>
messaggi inviati in base a <Hint>
.
Elementi secondari
L'elemento <Hint>
ha i seguenti elementi secondari:
Elemento secondario | Obbligatorio? | Tipo | Tipo di Hint Response | Descrizione |
---|---|---|---|---|
<CheckInDate> | Required | Date | Itinerari esatti | La data del check-in per l'itinerario. |
<FirstDate> | Required | Date | Intervalli di check-in e itinerari con intervallo di date | La prima data dell'intervallo di date per un intervallo di check-in o incluso mantieni il messaggio Hint Response. Le date sono incluse. |
<Item> | Required | Object | Tutte | Un contenitore per l'hotel/itinerario da aggiornare. |
<LastDate> | Required* | Date | Intervalli di check-in e itinerari con intervallo di date | L'ultima data dell'intervallo di date per un intervallo di check-in o incluso mantieni il messaggio Hint Response. Le date sono incluse. * Questo elemento è facoltativo per i soggiorni con intervallo di date. |
<LengthOfStay> | Required | integer | Itinerari esatti | Il numero di notti per l'itinerario, espresso come valore positivo numero intero. |
<Property> | Required | string | Tutte | L'ID di un hotel, utilizzato nello stesso ID dell'elenco hotel. Il numero
di
|
<Stay> | Required | Object | Itinerari esatti | Un contenitore per <CheckinDate> e
Suggerimento <LengthOfStay> elementi in un itinerario esatto
Messaggio di risposta. Ogni elemento <Item> può contenere solo un singolo
<Stay> . |
<StaysIncludingRange> | Required | Object | Itinerari con intervallo di date | Un contenitore per <FirstDate> e
Suggerimento risposta di <LastDate> elementi in un soggiorno con intervallo di date
. |
Esempi
Itinerari esatti
L'esempio seguente definisce più itinerari per una singola proprietà un messaggio Hint Response:
<!-- 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>
Intervalli di check-in
L'esempio seguente specifica due hotel i cui prezzi sono stati modificati deve essere recuperato di nuovo. Google individua tutti gli itinerari tra il 3 e il 3 luglio 6 per le proprietà 12345 e 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>
Tieni presente che, affinché un messaggio relativo all'intervallo di check-in consenta di specificare
in un singolo elemento <Item>
, il valore
<MultipleItineraries>
in <QueryControl>
deve essere impostato su
"checkin_range"
,
Soggiorni con intervallo di date
L'esempio seguente mostra due diversi utilizzi dei soggiorni con intervallo di date, uno per intervallo di notti e l'altro per una singola notte:
<!-- 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>
Tieni presente che, affinché un messaggio relativo a un soggiorno con intervallo di date possa specificare più
in un singolo elemento <Item>
, il valore
<MultipleItineraries>
in <QueryControl>
deve essere impostato su
"affected_dates"
,
Per ognuno di questi esempi, Google risponde con un valore <Query>
e dovresti
quindi rispondi con un <Transaction>
che include gli aggiornamenti di prezzo per
hotel/itinerario specificati.
<HintRequest>
L'elemento principale di un messaggio Hint Request. Google invia una richiesta Hint al tuo server e si aspetta una risposta che specifichi gli hotel e itinerari i cui prezzi sono cambiati dall'ultima volta in cui Google ha ricevuto un una risposta Hint Response riuscita dal tuo server.
In caso di variazioni di prezzo, Google invia un <Query>
che
Recupera i dati aggiornati sui prezzi per gli hotel e gli itinerari indicati.
Per ulteriori informazioni, consulta la sezione Messaggi Hint Request.
Sintassi
L'elemento <HintRequest>
utilizza la seguente sintassi:
Sintassi
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
<LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>
Attributi
L'elemento <HintRequest>
non ha attributi.
Elementi secondari
L'elemento <HintRequest>
ha i seguenti elementi secondari:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<LastFetchTime> | DateTime | L'ultima volta che Google ha ricevuto un messaggio Hint Response.
a un messaggio Hint Request.
Se questo periodo di tempo è precedente all'ultima volta prezzi aggiornati sul tuo server, devi rispondere con un Messaggio di risposta che specifica quali hotel sono stati modificati. Se di recente non è stato eseguito un recupero, verrà impostato su valore di intervallo fisso (per evitare problemi più seri con arretrati). L'attuale valore dell'intervallo fisso è 1000 secondi, ma è soggetti a modifiche. Per ulteriori informazioni, consulta la sezione Messaggi Hint Response. |
Esempi
L'esempio seguente mostra un messaggio Hint Request:
Messaggio Hint Request
L'esempio seguente mostra un messaggio 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'elemento principale di un messaggio Query
. Query
messaggi sono richieste
da Google per aggiornamenti su prezzi o metadati. Vengono utilizzati sia con le modalità di
e Prezzo modificato nelle modalità di invio.
Esistono tre tipi di messaggi Query
:
Prezzi in tempo reale: Google risponde alla richiesta di una specifica utente, chiedendo un aggiornamento dei prezzi in tempo reale. Quando i partner ricevono un
Live pricing query
i partner devono rispondere con un messaggio<Transaction>
che contiene le informazioni sui prezzi richieste negli elementi<Result>
.Con i prezzi contestuali: Google aggiorna la cache dei prezzi in base ai contesti che sono storicamente popolari. Quando ricevi un
With context query
devi rispondere con un messaggio<Transaction>
che contenga il le informazioni sui prezzi richieste negli elementi<Result>
.Metadati:Google richiede aggiornamenti sui metadati per camere e pacchetti camera. per gli hotel specificati. Quando ricevi un messaggio di
Metadata Query
, deve rispondere con un messaggio<Transaction>
che specifica i dati relativi a camere e pacchetti camera in elementi<PropertyDataSet>
.
Per saperne di più, consulta la Panoramica dei prezzi per query sui prezzi e per i metadati dei pacchetti camera per le query sui metadati.
La sintassi per i tre diversi tipi è descritta di seguito.
Sintassi
L'elemento <Query>
utilizza la seguente sintassi:
Prezzi in tempo reale
<?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>
Con contesto
<?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>
Metadati
<HotelInfoProperties>
<Property>property_ID</Property>
...
</HotelInfoProperties>
Attributi
L'elemento <Query>
può contenere un attributo: latencySensitive
.
L'attributo latencySensitive
è facoltativo. Se fornito e impostato su
true
, indica che la query è Live Pricing Query
. Per fare in modo che Google invii
query con l'attributo latencySensitive
, rivolgiti al tuo account tecnico
Responsabile (TAM).
Elementi secondari
L'elemento <Query>
ha i seguenti elementi secondari:
Elemento secondario | Tipo di query | Tipo | Descrizione |
---|---|---|---|
<AffectedNights> | Pricing | integer | Il numero di notti per un soggiorno con intervallo di date. Questo elemento è utilizzato solo per le query sui prezzi dei soggiorni con intervallo di date utilizzate con la modalità Prezzo modificato. |
<Checkin> | Pricing | Date | Le date di una determinata variazione di prezzo. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | Per le query sui prezzi in tempo reale, specifica alcuni parametri in base ai quali
viene effettuata la query. Gli elementi secondari includono:
L'elemento |
<FirstDate> | Pricing | Date | La data di inizio per una serie di itinerari a cui i prezzi . Questo elemento viene utilizzato solo per i prezzi relativi all'intervallo di date di check-in utilizzate con la modalità Prezzo modificato. |
<HotelInfoProperties> | Metadata | string | Una o più proprietà per cui Google richiede l'aggiornamento
Metadati di camera e pacchetto camera in un messaggio Query di metadati. Questo elemento
può contenere uno o più elementi <Property> che
specificare gli ID degli hotel. |
<LastDate> | Pricing | Date | La data di fine per una serie di itinerari a cui i prezzi . Questo elemento viene utilizzato solo per i prezzi relativi all'intervallo di date di check-in utilizzate con la modalità Pull + Hints. |
<Nights> | Pricing | integer | Il numero di notti per un determinato itinerario, fino a 30. |
<PropertyList> | Pricing | Object | Uno o più ID hotel che richiedono aggiornamenti dei prezzi. Definisci ogni hotel in un elemento <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Esempi
Query sui prezzi
L'esempio seguente mostra un messaggio Query sui prezzi che richiede il prezzo aggiornamenti per un gruppo di hotel, disponibili per 3 notti, a partire dal 10 giugno 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>
Query sui prezzi in tempo reale
L'esempio seguente mostra una query sui prezzi in tempo reale con un tempo di risposta limite di 500 millisecondi:
<?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>
Con query di contesto
<?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>
Query sui metadati
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
Per altri esempi, tra cui soggiorno con intervallo di date e intervallo di date del check-in
query sui prezzi, guarda gli esempi di messaggi di Query
.
<Context>
L'elemento <Context>
descrive le informazioni relative a Live pricing query
,
inclusi il numero e il tipo di ospiti, il paese dell'utente e il dispositivo dell'utente.
Non verranno mai utilizzati più elementi <Context>
con paesi o paesi degli utenti diversi
e i dispositivi degli utenti. Quando vengono utilizzati più <Context>
per eseguire query
numero di persone, fornisci ogni prezzo come pacchetto camera aggiuntivo
per la proprietà/l'itinerario corrispondente. Ogni proprietà/itinerario deve avere un
un singolo blocco <Result>
con i prezzi di più
numero di persone incluso.
Per i dettagli della risposta alla query <Context>
, consulta <OccupancyDetails>
.
Sintassi
L'elemento <Context>
utilizza la seguente sintassi:
Sintassi
<?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>
Elementi secondari
L'elemento <Context>
ha i seguenti elementi secondari:
Elemento secondario | Tipo di query | Tipo | Descrizione |
---|---|---|---|
<Occupancy> | Pricing | integer | Specifica il numero totale di ospiti. Anche se non è obbligatorio, le query con Nota: |
<OccupancyDetails> | Pricing | Object | È preceduto da <Occupancy> . Specifica gli ospiti per tipo,
tra cui:
Anche se non è obbligatorio, le query con Nota: |
<UserCountry> | Pricing | string | Filtra le tariffe in base al paese in cui si trova l'utente. Il valore è un
Codice paese di due lettere, ad esempio Le query con |
<UserDevice> | Pricing | string | Filtra le tariffe in base al tipo di dispositivo da cui l'utente effettua la ricerca. Valori possibili:
Le query con |
Esempi
Numero di persone
L'esempio seguente mostra una query sui prezzi in tempo reale per <Occupancy>
in <Context>
. La query sui prezzi in tempo reale riguarda 3 adulti
ospiti.
<?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>
Dettagli numero di persone
L'esempio seguente mostra una query sui prezzi in tempo reale con
<OccupancyDetails>
in <Context>
.
La query sui prezzi in tempo reale riguarda 4 ospiti, 2 dei quali
sono bambini e chiede una tariffa applicabile alla prenotazione di un ospite negli Stati Uniti da
un dispositivo 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>
Più contesti
L'esempio seguente mostra l'utilizzo di un elemento <Context>
aggiuntivo
in una query sui prezzi in tempo reale.
<?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>