En esta página se proporciona una referencia de los mensajes Hint Request, los mensajes Hint Response y los mensajes Query, basados en XML de Google.
<Hint>
(mensaje Hint Response)
Es el elemento raíz de un mensaje Hint Response. Los mensajes Hint Response indican qué combinaciones de hoteles e itinerarios deben cambiar de precio. Se envían para responder a los mensajes Hint Request de Google.
Los mensajes Hint Response deben indicar únicamente los hoteles cuyos precios hayan cambiado desde la última vez que Google recibió un mensaje Hint Response válido de tus servidores.
Los mensajes Hint Response usan uno de los siguientes métodos para indicar qué precios de hoteles e itinerarios debe cambiar Google:
- Itinerarios exactos: combinación de la fecha de entrada y la duración de la estancia.
- Periodos de entrada: intervalo de fechas de entrada, desde la primera fecha de entrada hasta la última.
- Estancias desglosadas o itinerarios desglosados
En los mensajes Hint Response, cada método requiere una sintaxis diferente.
Para obtener más información, consulta el artículo Mensajes Hint Response.
Sintaxis
El elemento <Hint>
usa una sintaxis diferente en función del tipo de mensaje Hint Response:
Itinerarios exactos
A continuación, se muestra la sintaxis de los itinerarios exactos en un mensaje Hint Response:
<!-- 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>
Periodos de entrada
A continuación, se muestra la sintaxis de los periodos de entrada en un mensaje Hint Response:
<!-- 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>
Estancias desglosadas
A continuación, se muestra la sintaxis de las estancias desglosadas en un mensaje Hint Response:
<!-- 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>
Atributos
El elemento <Hint>
no tiene atributos.
Elementos secundarios
El elemento <Hint>
tiene los siguientes elementos secundarios:
Elemento secundario | ¿Es obligatorio? | Tipo | Tipo de mensaje Hint Response | Descripción |
---|---|---|---|---|
<CheckInDate> |
Obligatorio | Date | Itinerarios exactos | Fecha de entrada del itinerario. |
<FirstDate> |
Obligatorio | Date | Periodos de entrada e itinerarios desglosados | La primera fecha de un periodo de entrada o de una estancia desglosada del mensaje Hint Response. Las fechas son inclusivas. |
<Item> |
Obligatorio | Object | Todos | Contenedor para actualizar el hotel o el itinerario. |
<LastDate> |
Obligatorio* | Date | Periodos de entrada e itinerarios desglosados | La última fecha de un periodo de entrada o de una estancia desglosada del mensaje Hint Response. Las fechas son inclusivas.
* Este elemento es opcional en las estancias desglosadas. |
<LengthOfStay> |
Obligatorio | Integer | Itinerarios exactos | Número de noches del itinerario, expresado como un número entero positivo. |
<Property> |
Obligatorio | String | Todos | ID de un hotel, el mismo de la lista de hoteles. El número de elementos <Property> que se pueden especificar en un único bloque <Item> depende del tipo de mensaje Hint Response:
|
<Stay> |
Obligatorio | Object | Itinerarios exactos | Contenedor para los elementos <CheckinDate> y <LengthOfStay> del mensaje Hint Response de un itinerario exacto. En cada elemento <Item> solo se puede incluir un elemento <Stay> . |
<StaysIncludingRange> |
Obligatorio | Object | Itinerarios desglosados | Contenedor para los elementos <FirstDate> y <LastDate> del mensaje Hint Response de una estancia desglosada. |
Ejemplos
Itinerarios exactos
En este ejemplo se definen varios itinerarios en el mensaje Hint Response de un mismo hotel:
<!-- 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>
Periodos de entrada
En este ejemplo se indican dos hoteles cuyos precios han cambiado y hay que volver a obtenerlos. Google obtiene todos los itinerarios de las propiedades 12345 y 67890 entre el 3 y el 6 de julio:
<!-- 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>
Ten en cuenta que, para que se puedan incluir varias propiedades en un único elemento <Item>
de un mensaje de periodos de entrada, se debe asignar el valor "checkin_range" a <MultipleItineraries>
en <QueryControl>
.
Estancias desglosadas
En este ejemplo se muestran dos usos distintos de estancias desglosadas; uno para un intervalo de noches y otro para una sola noche:
<!-- 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>
Ten en cuenta que, para que se puedan incluir varias propiedades en un único elemento <Item>
de un mensaje de estancias desglosadas, se debe asignar el valor "affected_dates" a <MultipleItineraries>
en <QueryControl>
.
En estos ejemplos, Google envía un mensaje <Query>
al que se debe responder con un mensaje <Transaction>
que incluya las actualizaciones de precios de los hoteles e itinerarios que se indican.
<HintRequest>
Es el elemento raíz de un mensaje Hint Request. Google envía un mensaje Hint Request a tu servidor y espera una respuesta en la que se especifiquen los hoteles e itinerarios cuyos precios han cambiado desde la última vez que recibió un mensaje Hint Response válido de tu servidor.
Si hay cambios en los precios, Google envía un mensaje <Query>
para obtener datos de los precios actualizados de los hoteles e itinerarios que se indican.
Para obtener más información, consulta el artículo Mensajes Hint Request.
Sintaxis
El elemento <HintRequest>
usa la siguiente sintaxis:
Sintaxis
<?xml version="1.0" encoding="UTF-8"?> <HintRequest> <LastFetchTime>last_fetch_time</LastFetchTime> </HintRequest>
Atributos
El elemento <HintRequest>
no tiene atributos.
Elementos secundarios
El elemento <HintRequest>
tiene los siguientes elementos secundarios:
Elemento secundario | Tipo | Descripción |
---|---|---|
<LastFetchTime> |
DateTime | Última vez que Google recibió un mensaje Hint Response válido como respuesta a un mensaje Hint Request.
Si esta fecha es anterior a la última vez que se actualizaron los precios en tu servidor, deberías responder con un mensaje Hint Response que indique qué hoteles han cambiado. Para obtener más información, consulta el artículo Mensajes Hint Response. |
Ejemplos
Mensaje Hint Request
Este es un ejemplo de un mensaje 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>
Es el elemento raíz de un mensaje Query. Los mensajes Query son solicitudes de Google para recibir actualizaciones de precios o metadatos. Se usan con los modos de envío Pull y Changed Pricing.
Hay dos tipos de mensajes Query:
- Precios: Google solicita actualizaciones de precios para los hoteles especificados. Al recibir un mensaje Query de precios, debes responder con un mensaje
<Transaction>
que incluya la información de precios solicitada en los elementos<Result>
.Las consultas de precios en tiempo real son un tipo especial de mensajes Query que Google usa para solicitar actualizaciones de precios en tiempo real.
Para obtener más información, consulta el artículo sobre la descripción general de los precios.
- Metadatos: Google solicita actualizaciones de metadatos de las habitaciones y las configuraciones de habitación de los hoteles especificados. Al recibir un mensaje Query de metadatos, debes responder con un mensaje
<Transaction>
que incluya los datos de las habitaciones y de las configuraciones de habitación en los elementos<PropertyDataSet>
.Para obtener más información, consulta la sección sobre metadatos de la configuración de habitación.
La sintaxis de los mensajes varía en función de cada tipo. Ambos tipos se describen en esta sección.
Sintaxis
El elemento <Query>
usa la siguiente sintaxis:
Sintaxis
<?xml version="1.0" encoding="UTF-8"?> <Query latencySensitive="true_or_false"> <!-- The "latencySensitive" attribute appears only with Live Pricing Queries --> <!-- PRICING QUERIES --> <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> <!-- Only for Live Pricing Queries --> <DeadlineMs>deadline</DeadlineMs> <Context> <Occupancy>total_number_of_guests</Occupancy> <UserCountry>country_code</UserCountry> <UserDevice>device_type</UserDevice> </Context> <!-- METADATA QUERIES --> <HotelInfoProperties> <Property>property_ID</Property> ... </HotelInfoProperties> </Query>
Atributos
El elemento <Query>
puede contener un atributo: <LatencySensitive>
.
El atributo <LatencySensitive>
es opcional. Si se incluye y se le asigna el valor true
, la consulta es de precios en tiempo real. Para que Google haga consultas con el atributo <LatencySensitive>
, envía una solicitud a tu Administrador técnico de cuentas.
Elementos secundarios
El elemento <Query>
tiene los siguientes elementos secundarios:
Elemento secundario | Tipo de consulta | Tipo | Descripción |
---|---|---|---|
<AffectedNights> |
Precios | Integer | Número de noches de una estancia desglosada. Este elemento se usa únicamente en las consultas de precios de estancias desglosadas con Changed Pricing. |
<Checkin> |
Precios | Date | Fechas de un cambio de precio concreto. |
<Context> |
Precios (solo para consultas de precios en tiempo real) | Object | Especifica ciertos parámetros de las consultas de precios en tiempo real. Algunos elementos secundarios son:
El elemento |
<FirstDate> |
Precios | Date | Fecha de inicio de un intervalo de itinerarios a los que se aplican los precios. Este elemento se usa solo para las consultas de precios de periodos de entrada con Changed Pricing. |
<HotelInfoProperties> |
Metadatos | String | Una o varias propiedades sobre las que Google solicita actualizaciones de metadatos de las habitaciones y la Configuración de habitación en un mensaje Query de metadatos. Este elemento puede contener uno o varios elementos <Property> que especifican los IDs de propiedad de los hoteles. |
<LastDate> |
Precios | Date | Fecha de finalización de un intervalo de itinerarios a los que se aplican los precios. Este elemento se usa solo para las consultas de precios de periodos de entrada con el método Pull with Hints. |
<Nights> |
Precios | Integer | Número de noches de un itinerario concreto, hasta un máximo de 30. |
<PropertyList> |
Precios | Object | Uno o varios ID de hoteles cuyos precios deben actualizarse.
Define cada hotel en un elemento <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
Ejemplos
Consulta de precios
En este ejemplo se muestra un mensaje Query de precios que solicita la actualización de los precios de un conjunto de hoteles, disponibles durante 3 noches, a partir del 10 de junio del 2018:
<?xml version="1.0" encoding="UTF-8"?> <Query> <Checkin>2018-06-10</Checkin> <Nights>3</Nights> <PropertyList> <Property>pid5</Property> <Property>pid8</Property> <Property>pid13</Property> <Property>pid21</Property> </PropertyList> </Query>
Consulta de metadatos
En este ejemplo se muestra un mensaje Query de metadatos:
<?xml version="1.0" encoding="UTF-8"?> <Query> <HotelInfoProperties> <Property>pid5</Property> <Property>pid8</Property> <Property>pid13</Property> <Property>pid21</Property> </HotelInfoProperties> </Query>
Para ver más ejemplos, como consultas de precios de estancias desglosadas y periodos de entrada, echa un vistazo a los ejemplos de mensajes Query.
<Context>
El elemento <Context>
describe una consulta de precios en tiempo real e incluye información como el número y el tipo de huéspedes, así como el país y el dispositivo del usuario.
No se pueden usar varios elementos <Context>
con países o dispositivos de usuario diferentes. Si se usan varios elementos <Context>
para consultar ocupaciones distintas, debes incluir el precio de cada ocupación como una Configuración de habitación adicional para la propiedad o el itinerario correspondiente. Cada propiedad o itinerario debe tener un único bloque <Result>
con los precios de varias ocupaciones.
Para ver la información de la respuesta a la consulta <Context>
, echa un vistazo a <OccupancyDetails>.
Sintaxis
El elemento <Context>
usa la siguiente sintaxis:
Sintaxis
<?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>
Elementos secundarios
El elemento <Context>
tiene los siguientes elementos secundarios:
Elemento secundario | Tipo de consulta | Tipo | Descripción |
---|---|---|---|
<Occupancy> |
Precios | Integer | Indica el número total de huéspedes. Aunque no es obligatorio, las consultas con Nota: Es posible que el elemento |
<OccupancyDetails> |
Precios | Object | Viene precedido del elemento <Occupancy> . Indica los tipos de huéspedes, como por ejemplo:
Aunque no es obligatorio, las consultas con Nota: Es posible que el elemento |
<UserCountry> |
Precios | String | Filtra las tarifas por el país donde se encuentra el usuario. El valor es un código de país de dos letras, como "US" para Estados Unidos, o un código regional, como "EU" para Europa. Las consultas con |
<UserDevice> |
Precios | String | Filtra las tarifas por el tipo de dispositivo desde el que el usuario hace la búsqueda. Valores posibles:
Las consultas con |
Ejemplos
Ocupación
En este ejemplo se muestra una consulta de precios en tiempo real de <Occupancy>
en <Context>
. La consulta corresponde a tres adultos.
<?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>
Información sobre la ocupación
En este ejemplo se muestra una consulta de precios en tiempo real de <OccupancyDetails>
en <Context>
. La consulta corresponde a cuatro huéspedes, dos de los cuales son niños, y con ella se busca una tarifa aplicable a una reserva de huéspedes de EE. UU. desde un dispositivo móvil:
<?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>
Varios contextos
En este ejemplo se muestra el uso de un elemento <Context>
adicional en una consulta de precios en tiempo real.
<?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>