질의 메시지는 Google에서 가격 또는 메타데이터 업데이트를 요청하는 것입니다. 이러한 메시지는 가져오기 및 변동된 요금 게재 모드와 함께 사용됩니다.
질문 메시지의 루트 요소는 <Query>
입니다.
쿼리 메시지의 구조는 메시지 유형에 따라 다릅니다.
가격: Google에서 지정된 호텔의 가격 업데이트를 요청하는 Query 메시지를 보냅니다.
메타데이터: Google은 지정된 호텔의 객실 및 패키지 정보에 관한 데이터를 요청하는 쿼리 메시지를 전송합니다.
초기 구성 중에 Google에서 쿼리 메시지와 실시간 요금 쿼리에 사용하는 엔드포인트를 정의합니다. 자세한 내용은 기술계정 관리자 (TAM)에게 문의하세요.
Google은 Content-Type
헤더가 'application/xml'로 설정되고 User-Agent
헤더가 Google-HotelAdsPrices
로 설정된 HTTP POST
요청으로 쿼리 메시지를 전송합니다. 이 규칙의 예외는 Google-TravelAds-Live
을 통한 가격 엔드포인트 통합의 수동 테스트 중에 발생합니다. 샘플 쿼리에 User-Agent
헤더가 포함될 수도 있고 포함되지 않을 수도 있습니다.
Query 메시지의 자세한 형식은 Query XML 참조에서 확인할 수 있습니다.
가격 쿼리 메시지
가격 쿼리 메시지는 가격을 제공하는 숙박 시설 및 여행 일정 조합을 지정합니다.
서버가 pricing Query 메시지를 수신하면 요청된 가격 정보가 포함된 <Transaction>
메시지로 응답해야 합니다.
자세한 내용은 가격 책정 개요를 참고하세요.
쿼리 메시지에는 세 가지 특별한 유형이 있습니다.
실시간 가격: 사용자가 지정된 숙박 시설 또는 일정 조합의 가격을 적극적으로 탐색할 때 사용 설정된 경우 쿼리가 전송되며 응답할 수 있는 지정된 기간이 있습니다.
컨텍스트 포함: 사용 설정하면 Google에서 전송하는 각 쿼리에 사용자 컨텍스트 추천이 포함되며, 추천은 지정된 숙박 시설 또는 일정 조합을 검색하는 가장 일반적인 유형의 사용자를 반영합니다. 이러한 권장사항을 따르면 응답의 효율성이 향상될 수 있습니다.
메타데이터: 지정된 숙박 시설의 객실 및 패키지에 관한 세부정보를 요청합니다.
실시간 가격 쿼리
실시간 요금 쿼리는 사용자 검색에 대한 응답으로 Google이 실시간 요금 업데이트를 요청하는 것입니다. Google은 사용자로부터 호텔 또는 여행 일정 조합에 대한 검색 요청을 수신하며, 가격 데이터를 사용할 수 없거나 최신 상태가 아니므로 검색 시점에 가격 업데이트를 요청합니다. 실시간 가격 쿼리를 사용하면 Google은 검색 시점에 가격을 가져와 결과에 표시하려고 시도합니다.
모든 실시간 가격 쿼리 요청에는 응답 시간 제한이 있으며 일반적으로 최대 4,000밀리초입니다. 이 한도는 실시간 가격 쿼리 요청에 지정됩니다. 시간 제한 내에 대답을 제공할 수 없는 경우 특정 기회에 참여하지 못한 것으로 간주됩니다. 하지만 가격을 제공하면 캐시되어 향후 기회에 사용할 수 있으므로 가격을 제공하는 것이 좋습니다. 대답을 위한 연결은 10분 동안 또는 파트너의 구성에 지정된 대로 열린 상태로 유지됩니다.
실시간 가격 쿼리도 컨텍스트를 기반으로 하며 사용자 국가, 기기 유형, 숙박 인원 (투숙객 수), 투숙객이 성인인지 어린이인지 등의 매개변수에 대한 가격을 가져올 수 있습니다. 실시간 가격 쿼리를 사용하면 고객이 검색한 내용과 일치하는 최신 가격을 표시할 수 있습니다.
실시간 가격 쿼리는 가격 업데이트를 위한 보조 메커니즘으로 사용됩니다. 가격 재조정의 기본 메커니즘은 여전히 풀 또는 변경된 가격을 통한 것입니다. 실시간 가격 쿼리는 Google에 호텔 또는 여행 일정 조합의 가격이 없는 부분을 채우는 데 도움이 됩니다.
실시간 가격 쿼리 사용 규칙
요청된 여행 일정이 비정상적(예: 날짜가 매우 먼 미래이거나 호텔이 매우 드물게 검색됨)이므로 지정된 여행 일정에 대해 캐시된 데이터가 없습니다.
요청된 날짜가 기본 날짜가 아닙니다.
: 참고: 기본 날짜는 실시간 가격 쿼리에 사용할 수 없습니다. 실시간 가격 쿼리는 기본값이 아닌 날짜에 대해서만 요청됩니다.
Google은 일반적으로 동일한 호텔 또는 여행 일정이 다시 쿼리되지 않도록 실시간 가격 결과를 캐시합니다. 단일 호텔 또는 여행 일정 조합과 다중 호텔 또는 단일 여행 일정 조합을 모두 요청할 수 있습니다.
컨텍스트가 포함된 실시간 가격 기능을 사용하면 Google에서 사용자의 기기 유형, 검색하는 국가, 어린이 포함 숙박 인원수에 따라 구체적인 실시간 가격 요청을 보낼 수 있습니다. 질의 메시지와 트랜잭션 메시지가 모두 질의 매개변수를 정의하는 <Context>
요소를 포함하도록 확장됩니다. 컨텍스트가 포함된 실시간 가격 쿼리에서 수신된 가격은 특정 숙박 인원의 가격인 경우 객실 패키지로, 사용자 국가 또는 사용자 기기의 가격인 경우 조건부 요금으로 캐시될 수 있습니다.
컨텍스트 쿼리 사용
컨텍스트 쿼리는 지정된 숙박 시설 또는 일정 조합에 대한 데이터베이스를 업데이트하는 일반적인 요청입니다. 이러한 조합에 인기 있는 사용자 컨텍스트 목록이 포함되어 있습니다. 조건부 요금을 사용하는 경우 가능한 모든 사용자 컨텍스트에 대한 요금을 전송하는 데 비용이 많이 들 수 있으므로 이 사용자 컨텍스트 목록을 사용하여 응답을 제한할 수 있습니다. 지정된 사용자 컨텍스트의 가격만 반환하면 대부분의 관련 사용자 쿼리를 처리할 수 있습니다.
컨텍스트 포함 질문을 수신하려면 기술계정 관리자 (TAM)에게 문의하세요. 이러한 메시지를 수신할 준비가 되었는지 확인한 다음 구성을 조정하여 쿼리에서 사용자 컨텍스트를 전송하기 시작할 수 있습니다.
메타데이터 쿼리 메시지
메타데이터 쿼리 메시지에는 지정된 속성의 객실 및 패키지 정보에 대한 세부정보가 포함됩니다.
메타데이터 쿼리 메시지를 수신하면 <Result>
요소에서 요청된 속성의 가격을 지정하는 <Transaction>
메시지로 응답해야 합니다.
자세한 내용은 룸 및 패키지 메타데이터 정의를 참고하세요.
쿼리 제어
이 섹션에서는 Google의 쿼리 메시지의 주제가 될 수 있는 숙박 시설 및 일정표를 제어하는 방법을 설명합니다.
숙박 일정 경계
<ItineraryCapabilities>
를 사용하여 가격 쿼리의 가능한 경계를 결정합니다. 지원하는 날짜 범위와 최대 숙박 기간을 결정하는 규칙을 정의합니다.
모든 호텔 또는 여행 일정 조합에 적용되는 <MaxAdvancePurchase>
및 <MaxLengthOfStay>
의 기본값을 설정할 수 있습니다. 호텔 그룹에 대해 이러한 설정을 정의할 수도 있습니다.
쿼리 메시지 예
이 섹션에서는 가격 책정 쿼리 메시지와 메타데이터 쿼리 메시지의 몇 가지 예를 보여줍니다. 추가 예는 쿼리 XML 참조에서 확인할 수 있습니다.
샘플 일정
다음 예는 2023년 5월 23일부터 3박 동안 이용 가능한 4개 호텔의 가격 업데이트를 요청하는 가격 <Query>
을 보여줍니다.
<?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>
이 예에서는 각 호텔의 가격 업데이트를 요청합니다.
5/23/18 - 6/26/18
실시간 가격 쿼리 예시
다음 예는 응답 시간 제한이 500밀리초인 실시간 가격 쿼리를 보여줍니다.
<?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>
이 예에서는 단일 호텔의 가격을 요청합니다.
6/23/23 - 6/25/23
이 쿼리에 대한 샘플 거래 메시지 응답은 가격 및 객실 인벤토리 (거래) XML 참조에서 확인할 수 있습니다.
컨텍스트가 포함된 질문의 예
다음은 컨텍스트 포함 쿼리의 예시입니다.
컨텍스트가 포함된 기본 쿼리
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, 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>
숙박 인원을 포함한 컨텍스트가 있는 질문
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2025-07-10</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<Context>
<UserCountry>US</UserCountry>
</Context>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="7"/>
</Children>
</OccupancyDetails>
</PropertyContext>
<PropertyContext>
<Property>8675310</Property>
<Context>
<UserCountry>GB</UserCountry>
</Context>
<Occupancy>1</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
</OccupancyDetails>
</PropertyContext>
</PropertyContextList>
</Query>
컨텍스트 쿼리는 사용자 국가 컨텍스트만 지정합니다. 향후 이러한 쿼리는 사용자 기기도 지정할 수 있습니다.
체크인 기간
변경된 가격을 사용하는 경우 쿼리 메시지의 구조는 체크인 날짜 범위, 정확한 여정 또는 범위가 지정된 여정에 사용하는 힌트 유형에 따라 달라집니다. 이러한 각 힌트 유형에 대한 자세한 내용은 힌트 응답 메시지를 참고하세요.
다음 예는 체크인 날짜 범위의 가격 책정 <Query>
메시지를 보여줍니다.
<?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>
이 예에서는 다음 숙박 (각 호텔별)에 대한 요금 업데이트를 요청합니다.
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
범위 지정 숙박
다음 예는 범위가 지정된 숙박의 가격 책정 <Query>
메시지를 보여줍니다.
<?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>
이 예에서는 각 호텔의 가격 업데이트를 요청합니다.
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
지정된 밤 전에 시작된 숙박 (포함)
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
메타데이터 쿼리 메시지
다음 예는 여러 속성의 객실 및 패키지 정보에 대한 메타데이터 업데이트를 요청하는 <Query>
메시지를 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
이 유형의 쿼리 메시지에 객실 및 패키지 메타데이터를 정의하는 트랜잭션 메시지로 응답합니다. 자세한 내용은 룸 및 패키지 메타데이터 정의를 참고하세요.