메시지 쿼리

쿼리 메시지는 가격 또는 메타데이터 업데이트에 대한 Google의 요청입니다. 가져오기 및 변동된 가격 전송 모드에 모두 사용됩니다.

쿼리 메시지의 루트 요소는 <Query>입니다.

쿼리 메시지 구조는 메시지 유형에 따라 다릅니다.

  • 가격: Google은 지정된 호텔의 가격 업데이트를 요청하는 쿼리 메시지를 보냅니다.

  • 메타데이터: Google에서 지정된 호텔의 객실 및 패키지 정보에 대한 데이터를 요청하는 쿼리 메시지를 보냅니다.

초기 구성 중에 Google이 쿼리 메시지 및 실시간 가격 쿼리에 사용하는 엔드포인트를 정의합니다. 자세한 내용은 기술계정 관리자 (TAM)에게 문의하세요.

Google은 Content-Type 헤더가 'application/xml'로, User-Agent 헤더가 Google-HotelAdsPrices로 설정된 HTTP POST 요청으로 쿼리 메시지를 보냅니다. 이 규칙의 예외는 Google-TravelAds-Live를 통한 가격 엔드포인트 통합을 수동으로 테스트하는 중에 발생합니다. 이러한 샘플 쿼리에는 User-Agent 헤더가 포함되어 있을 수도 있고 포함되지 않을 수도 있습니다.

쿼리 메시지의 자세한 형식은 쿼리 XML 참조에서 확인할 수 있습니다.

가격 책정 쿼리 메시지

가격 책정 쿼리 메시지는 가격을 제공하는 숙박 시설 또는 여행 일정 조합을 지정합니다.

서버가 pricing 쿼리 메시지를 수신하면 요청된 가격 정보가 포함된 <Transaction> 메시지로 응답해야 합니다.

자세한 내용은 가격 책정 개요를 참조하세요.

쿼리 메시지에는 세 가지 특별한 유형이 있습니다.

  1. 실시간 가격: 사용 설정하면 사용자가 지정된 숙박 시설이나 여행 일정 조합의 가격을 적극적으로 탐색하고 지정된 응답 기한이 있을 때 쿼리가 전송됩니다.

  2. 컨텍스트 사용: 사용 설정하면 Google에서 보내는 각 쿼리에 사용자 컨텍스트 추천이 포함되며, 특정 숙박 시설 또는 여행 일정 조합을 검색하는 가장 일반적인 사용자 유형이 추천에 반영됩니다. 이러한 권장사항을 따르면 응답의 효율성이 높아질 수 있습니다.

  3. 메타데이터: 지정된 속성의 객실 및 패키지에 대한 세부정보 요청입니다.

실시간 가격 쿼리

실시간 가격 쿼리는 사용자 검색에 대한 응답으로 실시간 가격 업데이트를 요청하는 Google의 요청입니다. Google은 사용자로부터 호텔 또는 여행 일정 조합에 대한 검색 요청을 받습니다. 가격 데이터가 제공되지 않거나 최신 상태가 아니므로 Google은 검색 시 사용자에게 가격 업데이트를 요청합니다. 실시간 가격 쿼리를 사용하면 Google에서 가격을 가져와서 검색 시 결과에 표시하려고 합니다.

모든 실시간 가격 쿼리 요청에는 일반적으로 최대 4,000밀리초의 응답 시간 제한이 있습니다. 이 한도는 실시간 가격 쿼리 요청에서 지정됩니다. 시간 제한 내에 응답을 제공할 수 없으면 특정 기회에 참여하지 못하게 됩니다. 하지만 캐시하여 향후 기회에 사용할 수 있도록 가격을 제공하는 것이 좋습니다. 응답 연결은 10분 동안 또는 파트너 구성에 지정된 대로 열린 상태로 유지됩니다.

실시간 가격 쿼리도 상황에 따라 다르며 사용자 국가, 기기 유형, 숙박 인원 (게스트 수), 해당 투숙객이 성인인지 어린이인지 여부 매개변수의 가격을 검색할 수 있습니다. 실시간 가격 쿼리를 사용하면 고객이 검색한 내용과 일치하는 최신 가격을 더 많이 표시할 수 있습니다.

실시간 가격 쿼리는 가격 업데이트를 위한 보조 메커니즘입니다. 가격 재조정의 기본 메커니즘은 여전히 가격 가져오기 또는 변동된 가격 책정을 통한 것입니다. 실시간 가격 쿼리는 Google에 호텔 또는 여행 일정 조합의 가격이 없는 경우의 공백을 메우는 데 도움이 됩니다.

실시간 가격 쿼리 사용 규칙

  • 날짜가 아주 먼 미래이거나 호텔 검색 빈도가 매우 낮은 경우와 같이 요청된 일정이 비정형이기 때문에 지정된 운항 일정에 대해 캐시된 데이터가 없습니다.

  • 요청한 날짜가 기본 날짜가 아닙니다.

: 참고: 기본 날짜는 실시간 가격 쿼리에 사용할 수 없습니다. 실시간 가격 쿼리는 기본값이 아닌 날짜에 대해서만 요청됩니다.

Google은 일반적으로 동일한 호텔이나 여행 일정이 다시 쿼리되지 않도록 실시간 가격 결과를 캐시합니다. 단일 호텔 또는 여행 일정 조합뿐만 아니라 여러 호텔 또는 단일 여행 일정 조합을 모두 요청할 수 있습니다.

컨텍스트를 사용한 실시간 가격 기능을 사용하면 Google에서 사용자의 기기 유형, 검색하는 국가, 어린이를 포함한 숙박 인원에 따라 특정 실시간 가격 요청을 전송할 수 있습니다. 쿼리 메시지와 트랜잭션 메시지는 모두 쿼리 매개변수를 정의하는 <Context> 요소를 포함하도록 확장됩니다. 컨텍스트가 포함된 실시간 가격 쿼리에서 수신된 가격은 특정 숙박 인원의 가격인 경우 객실 패키지로 캐시할 수 있으며, 사용자 국가 또는 사용자 기기의 가격인 경우 조건부 요금으로 캐시할 수 있습니다.

컨텍스트 쿼리 사용

컨텍스트 쿼리는 지정된 속성 또는 여행 일정 조합에 관한 데이터베이스를 업데이트하기 위한 정기적인 요청입니다. 여기에는 이러한 조합에 인기 있는 사용자 컨텍스트 목록이 포함되어 있습니다. 조건부 요금을 사용하는 경우 가능한 모든 사용자 컨텍스트의 전송 요금이 증가할 수 있으므로 이 사용자 컨텍스트 목록을 사용하여 응답을 제한할 수 있습니다. 지정된 사용자 컨텍스트에 대해서만 가격을 반환하는 것은 대부분의 관련 사용자 쿼리에 적용됩니다.

메타데이터 쿼리 메시지

메타데이터 쿼리 메시지에는 지정된 속성의 객실 및 패키지 정보에 대한 세부정보가 포함됩니다.

메타데이터 쿼리 메시지를 받으면 <Result> 요소에서 요청된 속성의 가격을 지정하는 <Transaction> 메시지로 응답해야 합니다.

자세한 내용은 방 및 패키지 메타데이터 정의를 참고하세요.

제어 쿼리

이 섹션에서는 Google에서 보낸 쿼리 메시지의 대상이 될 수 있는 숙박 시설 및 운항 일정을 제어하는 방법을 설명합니다.

운항 일정 경계

<ItineraryCapabilities>를 사용하여 가격 책정 쿼리의 가능한 한도를 결정합니다. 지원하는 날짜 범위 및 최대 숙박 기간을 결정하는 규칙을 정의합니다.

모든 호텔 또는 여행 일정 조합에 적용되는 <MaxAdvancePurchase><MaxLengthOfStay>의 기본값을 설정할 수 있습니다. 호텔 그룹에 대해 이러한 설정을 정의할 수도 있습니다.

쿼리 메시지 예시

이 섹션에서는 쿼리 메시지 및 메타데이터 쿼리 메시지의 가격 책정 예시를 보여줍니다. 쿼리 XML 참조에서 추가 예를 확인할 수 있습니다.

샘플 숙박 일정

다음 예는 3박 동안 이용 가능하며 2023년 5월 23일부터 시작되는 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, 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> 메시지를 보여줍니다.

<?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>

이 유형의 쿼리 메시지에 룸 및 패키지 메타데이터를 정의하는 트랜잭션 메시지로 응답합니다. 자세한 내용은 방 및 패키지 메타데이터 정의를 참고하세요.