쿼리 및 힌트 XML 참조

이 섹션에서는 Google XML 기반 힌트 요청 메시지, 힌트 응답 메시지, 쿼리 메시지의 참조를 제공합니다.

<Hint> (힌트 응답 메시지)

힌트 응답 메시지의 루트 요소입니다. 힌트 응답 메시지에는 가격을 조정해야 하는 호텔/여행 일정 조합이 지정됩니다. Google의 힌트 요청 메시지에 대한 응답입니다.

힌트 응답 메시지에서는 Google이 마지막으로 서버로부터 성공적인 힌트 응답을 받은 후 가격이 변경된 호텔만 지정해야 합니다.

힌트 응답 메시지는 다음 방법 중 하나를 사용하여 Google에서 가격을 다시 책정해야 하는 호텔과 숙박 일정을 지정합니다.

  • 정확한 숙박 일정: 체크인 날짜와 숙박 기간의 조합입니다.

  • 체크인 기간: 첫 번째 체크인 날짜부터 시작하여 마지막 체크인 날짜로 끝나는 체크인 날짜 범위를 지정합니다.

  • 원거리 숙박 (또는 예정된 운항 일정)

이러한 각 메서드에는 힌트 응답 메시지에 서로 다른 구문이 필요합니다.

자세한 내용은 힌트 응답 메시지를 참고하세요.

문법

<Hint> 요소는 힌트 응답 메시지의 유형에 따라 다른 구문을 사용합니다.

정확한 여행 일정

다음은 힌트 응답 메시지의 정확한 여행 일정에 대한 구문을 보여줍니다.

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

체크인 범위

다음은 힌트 응답 메시지의 체크인 범위 문법을 보여줍니다.

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

원거리 숙박

다음은 힌트 응답 메시지의 범위 지정 스테이 문법을 보여줍니다.

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

특성

<Hint> 요소는 선택적 속성인 id를 포함합니다. 제공되는 경우 이 <Hint>를 기반으로 전송되는 <Query> 메시지에 hintId 속성으로 포함됩니다.

하위 요소

<Hint> 요소에는 다음과 같은 하위 요소가 있습니다.

하위 요소 필수 여부 유형 힌트 응답 유형 설명
<CheckInDate> Required Date 정확한 여행 일정 숙박 일정의 체크인 날짜입니다.
<FirstDate> Required Date 체크인 범위 및 일정 예약 운항 일정 체크인 범위 또는 범위 지정 숙박 힌트 응답 메시지의 기간의 첫 번째 날짜입니다. 날짜는 포괄적입니다.
<Item> Required Object 모두 업데이트할 호텔/여행 일정의 컨테이너입니다.
<LastDate> Required* Date 체크인 범위 및 일정 예약 운항 일정

체크인 범위 또는 범위 지정 숙박 힌트 응답 메시지의 기간의 마지막 날짜입니다. 날짜는 포괄적입니다.

* 이 요소는 범위 지정 숙박의 경우 선택사항입니다.

<LengthOfStay> Required integer 정확한 여행 일정 숙박 일정의 숙박 일수로, 양의 정수로 표시됩니다.
<Property> Required string 모두

호텔 목록과 동일한 ID를 사용하는 호텔의 ID입니다. 단일 <Item> 블록에서 지정할 수 있는 <Property> 요소의 수는 힌트 응답 메시지의 유형에 따라 결정됩니다.

  • 정확한 여행 일정: 최대 100개 호텔
  • 체크인 범위: <QueryControl> 메시지에서 <MultipleItineraries>"checkin_range" 로 설정한 경우 둘 이상입니다.
  • 범위 유지: <QueryControl> 메시지에서 <MultipleItineraries>"affected_dates" 로 설정한 경우 2개 이상입니다.
<Stay> Required Object 정확한 여행 일정 정확한 여행 일정 힌트 응답 메시지에 포함된 <CheckinDate><LengthOfStay> 요소의 컨테이너입니다. 각 <Item>에는 <Stay>를 하나만 포함할 수 있습니다.
<StaysIncludingRange> Required Object 원거리 여행 일정 범위 지정 유지 힌트 응답 메시지에서 <FirstDate><LastDate> 요소의 컨테이너

정확한 여행 일정

다음 예에서는 단일 속성 힌트 응답 메시지에 대한 여러 여행 일정을 정의합니다.

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

체크인 범위

다음 예시에서는 가격이 변경되었으며 다시 가져와야 하는 두 호텔을 지정합니다. Google은 12345 및 67890 숙박 시설에 대한 7월 3일과 7월 6일 사이의 모든 숙박 일정을 가져옵니다.

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

체크인 범위 메시지에서 단일 <Item>에 여러 속성을 지정할 수 있으려면 <QueryControl><MultipleItineraries> 값을 "checkin_range"로 설정해야 합니다.

원거리 숙박

다음 예에서는 다양한 숙박 일수의 두 가지 용도를 보여줍니다. 하나는 여러 날의 숙박이고 다른 하나는 1박입니다.

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

범위 지정 유지 메시지에서 단일 <Item>에 여러 속성을 지정할 수 있으려면 <QueryControl><MultipleItineraries> 값을 "affected_dates"로 설정해야 합니다.

이러한 각 예에서 Google은 <Query>로 응답하므로 개발자는 지정된 호텔/여행 일정의 가격 업데이트가 포함된 <Transaction>로 응답해야 합니다.

<HintRequest>

힌트 요청 메시지의 루트 요소입니다. Google은 서버에 힌트 요청 메시지를 전송하며, 마지막으로 서버에서 성공적인 힌트 응답을 받은 후 가격이 변경된 호텔 및 숙박 일정을 지정하는 응답을 예상합니다.

가격 변경사항이 있는 경우 Google은 표시된 호텔 및 여행 일정의 업데이트된 가격 데이터를 가져오는 <Query>를 전송합니다.

자세한 내용은 힌트 요청 메시지를 참조하세요.

문법

<HintRequest> 요소는 다음 구문을 사용합니다.

문법

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
  <LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>

특성

<HintRequest> 요소에 속성이 없습니다.

하위 요소

<HintRequest> 요소에는 다음과 같은 하위 요소가 있습니다.

하위 요소 유형 설명
<LastFetchTime> DateTime Google이 힌트 요청 메시지에 대한 힌트 응답 메시지를 성공적으로 받은 마지막 시간입니다.

이 시간이 서버에서 마지막으로 가격을 업데이트한 시점보다 오래된 경우 변경된 호텔을 지정하는 힌트 응답 메시지로 응답해야 합니다.

최근에 성공적으로 가져오지 않은 경우 큰 백로그로 인한 더 심각한 문제를 방지하기 위해 고정된 간격 값으로 설정됩니다. 현재 고정 간격 값은 1, 000초이지만 변경될 수 있습니다.

자세한 내용은 힌트 응답 메시지를 참조하세요.

다음 예는 힌트 요청 메시지를 보여줍니다.

힌트 요청 메시지

다음 예는 힌트 요청 메시지를 보여줍니다.

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

Query 메시지의 루트 요소입니다. Query 메시지는 Google의 가격 책정 또는 메타데이터 업데이트 요청입니다. 가져오기 및 변동된 가격 전송 모드에서 모두 사용됩니다.

Query 메시지에는 세 가지 유형이 있습니다.

  • 실시간 가격: Google이 실시간 가격 업데이트를 요청하는 특정 사용자 요청에 응답합니다. 파트너는 Live pricing query 메시지를 받으면 <Result> 요소에 요청된 가격 정보가 포함된 <Transaction> 메시지로 응답해야 합니다.

  • 컨텍스트 가격 사용: Google은 과거에 많이 사용된 컨텍스트를 기반으로 가격 캐시를 업데이트합니다. With context query 메시지를 받으면 <Result> 요소에 요청된 가격 정보가 포함된 <Transaction> 메시지로 응답해야 합니다.

  • 메타데이터: Google은 지정된 호텔의 객실 및 객실 번들의 메타데이터 업데이트를 요청합니다. Metadata Query 메시지를 수신하면 <PropertyDataSet> 요소의 방 및 Room 번들에 관한 데이터를 지정하는 <Transaction> 메시지로 응답해야 합니다.

자세한 내용은 가격 책정 쿼리의 경우 가격 개요를, 메타데이터 쿼리의 경우 Room 번들 메타데이터를 참고하세요.

세 가지 다른 유형의 문법은 아래에 설명되어 있습니다.

문법

<Query> 요소는 다음 구문을 사용합니다.

실시간 가격

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

맥락과 함께

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

메타데이터

<HotelInfoProperties>
  <Property>property_ID</Property>
  ...
</HotelInfoProperties>

특성

<Query> 요소는 하나의 속성(latencySensitive)을 포함할 수 있습니다.

latencySensitive 속성은 선택사항입니다. 제공되고 true로 설정된 경우 쿼리가 Live Pricing Query임을 나타냅니다. Google에서 latencySensitive 속성이 포함된 쿼리를 전송하도록 하려면 기술계정 관리자 (TAM)에게 문의하세요.

하위 요소

<Query> 요소에는 다음과 같은 하위 요소가 있습니다.

하위 요소 검색어 유형 유형 설명
<AffectedNights> Pricing integer 원거리 숙박의 숙박 일수입니다. 이 요소는 변동된 가격과 함께 사용되는 원거리 숙박 가격 쿼리에만 사용됩니다.
<Checkin> Pricing Date 특정 가격이 변경되는 날짜입니다.
<Context> Pricing (Live Pricing Queries only) <Context> 실시간 가격 책정 쿼리의 경우 쿼리가 실행되는 특정 매개변수를 지정합니다. 하위 요소에는 다음이 포함됩니다.
  • <Occupancy>: 총 참석자 수
  • <OccupancyDetails>: 참석자 유형(예: 성인 또는 어린이)
  • <UserCountry>: 사용자가 거주하는 국가입니다.
  • <UserDevice>: 투숙객이 호텔을 검색하는 데 사용한 기기의 유형(예: "mobile, 'tablet' 또는 'desktop')

<Context> 요소는 단일 요청에서 반복될 수 있으므로 다른 숙박 인원에 대한 쿼리가 허용됩니다. 하위 요소, 구문, 예시 목록은 <Context>를 참고하세요.

<FirstDate> Pricing Date 가격이 적용되는 일정 범위의 시작일입니다. 이 요소는 변동된 가격 책정과 함께 사용되는 체크인 기간 가격 책정 쿼리에만 사용됩니다.
<HotelInfoProperties> Metadata string Google이 메타데이터 Query 메시지에서 업데이트된 객실 및 Room Bundle 메타데이터를 원하는 하나 이상의 속성입니다. 이 요소에는 호텔 숙박 시설 ID를 지정하는 <Property> 요소가 하나 이상 포함될 수 있습니다.
<LastDate> Pricing Date 가격이 적용되는 일정 범위의 종료일입니다. 이 요소는 가져오기 + 힌트와 함께 사용되는 체크인 기간 가격 책정 쿼리에만 사용됩니다.
<Nights> Pricing integer 특정 여행 일정의 숙박 일수입니다(최대 30일).
<PropertyList> Pricing Object

가격 업데이트가 필요한 호텔에 대한 하나 이상의 ID입니다.

<Property> 요소에 각 호텔을 정의합니다. 값은 호텔 목록의 호텔 ID와 일치하는 문자열입니다. 예:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

가격 책정 쿼리

다음 예는 2018년 6월 10일부터 3박 동안 이용할 수 있는 일련의 호텔의 가격 업데이트를 요청하는 가격 쿼리 메시지를 보여줍니다.

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

실시간 가격 쿼리

다음 예는 응답 시간 제한이 500밀리초인 실시간 가격 쿼리를 보여줍니다.

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

컨텍스트 쿼리 사용

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

메타데이터 쿼리

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <HotelInfoProperties>
    <Property>pid5</Property>
    <Property>pid8</Property>
    <Property>pid13</Property>
    <Property>pid21</Property>
  </HotelInfoProperties>
</Query>

기간별 숙박 및 체크인 기간 가격 쿼리 등의 추가 예는 Query 메시지 예시를 확인하세요.

<Context>

<Context> 요소는 투숙객의 수와 유형, 사용자 국가, 사용자 기기 등 Live pricing query에 관한 정보를 설명합니다.

여러 <Context>는 다른 사용자 국가 또는 사용자 기기에서 사용되지 않습니다. 여러 <Context>를 사용하여 여러 숙박 인원을 쿼리하는 경우 각 숙박 인원 가격을 상응하는 숙박 시설/여행 일정의 추가 객실 번들로 제공하세요. 각 숙박 시설/여행 일정에는 여러 숙박 인원의 가격이 포함된 단일 <Result> 블록이 있어야 합니다.

<Context> 쿼리의 응답 세부정보는 <OccupancyDetails>를 참고하세요.

문법

<Context> 요소는 다음 구문을 사용합니다.

문법

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

하위 요소

<Context> 요소에는 다음과 같은 하위 요소가 있습니다.

하위 요소 쿼리 유형 유형 설명
<Occupancy> Pricing integer 총 참석자 수를 지정합니다.

필수는 아니지만 <Occupancy>를 포함하는 쿼리는 쿼리된 각 <Occupancy>에 정의된 적절한 Room 번들을 포함하는 트랜잭션 메시지를 발생시킵니다.

참고:<Occupancy>이 쿼리에 항상 표시되지는 않을 수도 있습니다. 이 경우 모든 숙박 인원의 가격을 반환해야 합니다.

<OccupancyDetails> Pricing Object 앞에 <Occupancy>가 옵니다. 다음을 포함하여 유형별로 게스트를 지정합니다.

  • <NumAdults>: 성인 투숙객 수
  • <Children><Child="age">: 어린이 (일반적으로 0~17세)가 되는 게스트를 지정하며 선택적으로 각 어린이의 연령을 포함합니다.
  • 필수는 아니지만 <OccupancyDetails>를 포함하는 쿼리로 인해 쿼리된 각 <Occupancy>에 정의된 적절한 Room 번들을 포함하는 트랜잭션 메시지가 발생해야 합니다.

    참고: <OccupancyDetails>이 쿼리에 항상 표시되지는 않을 수도 있습니다. 이 경우 참석자가 모두 성인이라고 가정해야 합니다.

<UserCountry> Pricing string

사용자가 거주하는 국가를 기준으로 요금을 필터링합니다. 값은 2자리 국가 코드(예: 미국의 경우 “US”) 또는 지역 코드입니다(예: '유럽'의 경우 "EU")입니다.

<UserCountry>가 정의된 쿼리는 쿼리된 국가에 정의된 적절한 <Rates> 블록과 함께 거래 메시지를 표시해야 합니다.

<UserDevice> Pricing string

사용자가 검색 중인 기기 유형별로 요금을 필터링합니다. 가능한 값은 다음과 같습니다.

  • mobile
  • desktop
  • tablet

<UserDevice>가 정의된 쿼리는 쿼리된 기기 유형에 정의된 적절한 <Rates> 블록과 함께 트랜잭션 메시지가 발생해야 합니다.

숙박 인원

다음 예시는 <Context> 내에 있는 <Occupancy>의 실시간 가격 쿼리를 보여줍니다. 실시간 가격 쿼리는 성인 투숙객 3명에 대한 쿼리입니다.

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

숙박 인원 세부정보

다음 예시는 <Context> 내에 <OccupancyDetails>가 있는 실시간 가격 쿼리를 보여줍니다. 실시간 가격 쿼리는 투숙객 4명(그 중 2명은 어린이)이며 휴대기기에서 미국 투숙객 예약에 적용할 수 있는 요금을 찾습니다.

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

여러 컨텍스트

다음 예는 실시간 가격 쿼리에서 추가 <Context> 요소를 사용하는 방법을 보여줍니다.

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