메시지 평가

개요

요금 메시지 (OTA_HotelRateAmountNotifRQ)는 특정 기간의 객실 유형 및 요금제 조합별 1박 숙박 요금을 정의합니다. 요금 메시지의 일부로 Google은 숙박 인원 기준 가격을 지원하므로 의도한 최대 숙박 인원에 따라 1박 요금을 다르게 지정할 수 있습니다.

다음 섹션에서는 요금을 추가 및 업데이트하고 요금 메시지를 보내는 데 도움이 되는 일반 가이드라인, 기본 예, 방법 시나리오를 다룹니다.

일치율 동작

사용자가 특정 숙박 인원을 요청하면 요금 메시지에서 가격을 정의하는 방법에 따라 사용자에게 표시되는 요금이 달라집니다. 이 섹션에서는 사용자의 요청 수와 사용자가 정의한 요금에 따라 이러한 사용자 요청과 요금을 일치시키는 방법을 설명합니다.

주요 원칙

  • 별도로 정의되지 않는 한 특정 숙박 인원에 정의된 요금은 더 작은 숙박 인원에 적용됩니다.

  • 숙박 인원이 정의된 인원보다 많은 경우 요청은 불가능한 것으로 간주됩니다.

  • 숙박 인원 기준 가격은 아래에 설명된 날짜별 가격과 LOS 기반 가격 책정 모델 모두에 적용됩니다. 즉, 숙박 인원별로 요금을 지정할 수 있습니다. 특정 숙박 인원의 요금이 존재하지 않으면 다음으로 높은 숙박 인원의 요금이 사용됩니다. AdditionalGuestAmounts 또는 ExtraGuestCharges를 사용하여 추가 투숙객 및 어린이에 대한 요금을 정의할 수 있으며, 이 요금은 객실에 정의된 수용 인원까지 적용됩니다.

이점 및 예시

효율성

요금이 동일한 숙박 인원이 여러 개인 경우 각 숙박 인원에 대한 요금을 설정할 필요는 없습니다. 객실 유형 및 요금제에서 지원하는 최대 숙박 인원 값만 설정하여 메시지를 간소화할 수 있습니다. 사용자는 설정된 값보다 작거나 같은 모든 숙박 인원에 대해 이 요금을 보게 됩니다.

예: 객실 유형 및 요금제의 요금은 숙박 인원이 1~4명일 때 동일합니다. 요금 메시지를 사용하여 최대 숙박 인원 4명에 해당하는 요금 1개를 설정합니다. 1인, 2인, 3인실을 검색하는 사용자에게 동일한 요금이 표시됩니다. 5세 이상을 검색하는 사용자에게는 요금이 표시되지 않습니다.

제어

대체 숙박 인원의 고유 요금을 명시적으로 제공할 수 있습니다. Google에서 요청을 숙박 인원 요금과 일치시키는 방법을 더 세부적으로 관리하려면 숙박 인원 값별로 다른 요금을 전송하세요.

예: 숙박 인원 3과 1에 대해 요금이 정의된 경우 숙박 인원 1명 검색에는 1인 요금이 표시되고 2인실 검색에는 3인 숙박 요금이 표시되며 4 이상을 검색하는 사용자에게는 요금이 표시되지 않습니다.

다양한 요금 관련 시나리오의 예를 더 보려면 방법을 참고하세요.

필수 및 선택 요소

XML 참조에서는 필수 및 선택적 요소에 대한 설명을 제공합니다. 속성과 하위 요소에 관한 자세한 내용은 요금 요소 및 속성을 참고하세요.

구문 및 스키마

속도 메시지를 만들 때 요율 구문 예를 참조로 사용하여 올바른 형식을 따르세요.

xmllint와 같은 서드 파티 XML 도구를 사용하여 Google에 제출하기 전에 게시된 스키마로 피드의 유효성을 검사할 수 있습니다. 요금 메시지 스키마는 호텔 광고 스키마를 참고하세요.

가격 책정 모델

날짜별 가격 책정

이는 대부분의 숙박 시설에 사용되는 표준 가격 책정 모델입니다. per-date 가격 책정 모델은 요금 설정을 기반으로 하며, 숙박 날짜별로 합산된 요금이 총가격으로 책정됩니다. 이 모델에서는 Rate 요소 아래의 모든 요금이 <StatusApplicationControl>에 지정된 숙박 날짜 범위에 적용되는 것으로 해석됩니다.

LOS 기반 가격 책정

LOS 기반 (숙박 기간) 가격 모델은 도착 날짜와 숙박 기간 조합에 설정된 요금을 기준으로 합니다. LOS 기반 가격 책정 모델에서 지정된 요금은 하루 기준입니다. 예를 들어 숙박이 3회인 기간에 100달러의 요금을 전송하면 총가격은 3x$100=$300로 계산됩니다.

StatusApplicationControl 요소에 RatePlanType="26"를 지정하여 LOS 기반 가격 책정 모델을 활용할 수 있습니다. 또한 XML의 Rate 요소에 RateTimeUnitUnitMultiplier 속성을 설정해야 합니다. 그러면 지정된 Rate 요소의 모든 요금이 <StatusApplicationControl>에 지정된 도착 날짜와 UnitMultiplier에 지정된 LOS 값으로 정의된 숙박에 적용됩니다.

단일 계정에서 날짜별 가격 책정 모델과 LOS 기반 가격 책정 모델을 모두 사용할 수 있지만 각 속성은 하나의 가격 책정 모델만 사용해야 합니다. LOS 기반 가격 책정을 구현할 때는 다음 사항에 유의하세요.

  • LOS 기반 가격 책정을 사용할 경우 서로 다른 숙박 기간에 대한 요금이 결합되지 않습니다. 예를 들어 LOS 요율 4의 가격을 책정하기 위해 LOS 비율 3은 LOS 1과 결합되지 않습니다. LOS 비율 4를 명시적으로 지정해야 합니다.
  • LOS 기반 가격 책정의 1박 요금은 날짜별 가격의 개별 숙박 요금으로 사용되지 않습니다.
  • 각 속성은 요금이 시스템에 표시되는 방식에 따라 LOS 기반 가격 책정 또는 날짜별 가격 책정 중 하나만 사용해야 합니다.

계정에 LOS 기반 가격 책정을 사용 설정하려면 TAM을 통해 요청하거나 Google에 문의하세요.

가이드라인 또는 조치

날짜별 가격 책정

Delta: <StatusApplicationControl>에 지정된 객실 유형, 요금제, 숙박 날짜의 지정된 조합에 대해서만 숙박 인원당 요금을 추가하거나 업데이트합니다.

  • 요금 업데이트는 기본적으로 Delta 작업을 사용합니다.
  • Delta 업데이트는 다른 숙박 시설의 이전에 저장된 요금을 변경하지 않습니다. 예를 들어 1인실과 2인실의 요금을 지정하고 1인실에 대한 Delta 요금 업데이트를 전송하면 2인실 요금이 변경되지 않습니다.

Overlay: <StatusApplicationControl>에 지정된 객실 유형, 요금제, 날짜의 기존 숙박 인원당 요금을 모두 삭제하고 새 요금으로 바꿉니다. 예를 들어 1인실 및 2인실 요금을 지정하고 1인실에 대해 Overlay 업데이트를 전송하면 Google에서는 이전의 모든 요금 (1인실과 2인실 모두)을 삭제하며 업데이트 후에는 1인실 요금만 유지됩니다.

Remove: <StatusApplicationControl>에 지정된 객실 유형, 요금제, 날짜의 기존 숙박 인원당 요금을 모두 삭제합니다.

LOS 기반 가격 책정

Delta: <StatusApplicationControl>에 지정된 객실 유형, 요금제, 체크인 날짜의 지정된 조합에 대해서만 LOS 값당 요금을 추가하거나 업데이트합니다. 업데이트된 LOS 값과 연결된 모든 숙박 인원당 요금을 바꿉니다.

  • 요금 업데이트는 기본적으로 Delta 작업을 사용합니다.
  • Delta 업데이트는 다른 숙박 기간 동안 이전에 저장된 요금을 변경하지 않습니다. 예를 들어 LOS 1과 2의 요율을 지정하고 LOS 1의 Delta 요율 업데이트를 전송하면 LOS 2의 점유율은 변경되지 않습니다.
  • Delta 업데이트는 지정된 숙박 기간 동안 이전에 저장한 숙박 인원당 요금을 모두 덮어씁니다. 예를 들어 LOS 1에 1인실 및 2인실 요금을 지정하고 LOS 1에 관해 숙박 인원이 1명인 요금만 있는 Delta 요금 업데이트를 전송하면 2인실 요금이 삭제됩니다.

Overlay: <StatusApplicationControl>에 지정된 LOS, 객실 유형, 요금제, 체크인 날짜의 기존 숙박 인원당 요금을 모두 삭제하고 새 요금으로 바꿉니다. 예를 들어 LOS 1과 2의 요율을 지정하고 LOS 1에 대한 Overlay 업데이트를 전송하면 Google은 이전의 모든 요율 (LOS 1 및 2 모두)을 삭제하고 업데이트 후에는 LOS 1 요율만 유지됩니다.

Remove: <StatusApplicationControl>에 지정된 객실 유형, 요금제, 체크인 날짜의 모든 LOS에 대한 기존 숙박 인원당 요금을 모두 삭제합니다.

세금 관련

세금과 수수료가 간단하다면 AmountAfterTax를 사용하여 총 금액을 지정할 수 있습니다. 1박이 아닌 숙박당 적용되는 세금 및 수수료와 같은 복잡한 세금은 AmountAfterTax에 표시할 수 없습니다.

일반적으로 AmountAfterTax보다는 TaxFeeInfo를 사용하는 것이 좋습니다.

특정 언어(예: 미국)에는 기본적으로 세전 가격이 표시되므로 가능하면 AmountAfterTax를 지정하더라도 AmountBeforeTax를 포함해야 합니다.

사용자가 지불해야 하는 모든 세금 및 수수료 (VAT, 숙박세, 청소비, 도시세 등)는 예약 시 납부하지 않았거나 숙박 시설에 직접 납부하지 않은 경우에도 포함되어야 합니다.

이 섹션에서는 필수 및 선택적 요소를 사용하는 Rate 메시지의 기본 예를 제공합니다. 파일을 준비한 후에는 POST 메시지를 사용하여 다음 엔드포인트에 Google에 파일을 보내야 합니다. https://www.google.com/travel/hotels/uploads/property_data

메시지 푸시/POST 방법에 대한 자세한 내용은 메시지 푸시를 참조하세요.

HotelCode의 경우 시스템 내에서 숙박 시설을 식별하는 데 사용한 고유한 호텔 ID를 사용합니다. 이 값은 호텔 목록 피드의 <listing> 요소의 <id>를 사용하여 지정된 호텔 ID와 일치해야 합니다. <PackageID><RoomID>의 경우 시스템 내에서 요금제와 객실 유형에 사용하는 것과 동일한 ID를 각각 사용합니다. Google에서 가격과 데이터를 올바르게 표시하려면 시스템과의 일관성이 중요합니다.

다음 예는 Delta 작업을 사용하여 요금을 설정하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2022-02-25T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta">
  <POS><Source><RequestorID ID="partner_key" /></Source></POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="2022-12-01"
                                End="2022-12-31"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt NumberOfGuests="1" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="2" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="3" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
            <BaseByGuestAmt NumberOfGuests="4" CurrencyCode="USD" AmountBeforeTax="XXX.XX" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
</OTA_HotelRateAmountNotifRQ>

방법

이 섹션에서는 요금 메시지를 보낼 때 발생할 수 있는 시나리오의 해결 방법을 제공합니다.

속도를 추가, 삭제, 업데이트하는 방법의 예는 속도 예시를 참고하세요.

시나리오 1: 숙박 인원당 가격 변경 방법

설명

이전에는 숙박 인원 2인 기준 (1인 숙박 인원에도 적용됨)의 1박 요금이 정의되었지만 이제 1인실 요금이 더 저렴합니다.

솔루션

기본 Delta 범위 업데이트를 사용하여 새로운 숙박 인원 1 요금을 전송합니다. 이 새 값은 숙박 인원 2 요금에 영향을 주지 않습니다.

시나리오 2: 숙박 시설의 숙박 인원당 요금을 교체하는 방법

설명

이전에 숙박 인원 1~4의 요금을 정의했지만 지금은 숙박 인원 1과 2만 유효합니다.

솔루션

특정 숙박 시설, 객실 유형, 요금제, 날짜의 모든 숙박 인원 요금을 대체하려면 NotifType="Overlay"를 사용합니다. 이 시나리오에서 Overlay 작업은 숙박 인원 1과 2의 요금을 나열합니다.

시나리오 3: 여러 숙박 인원에 동일한 요금을 설정하는 방법

설명

특정 숙박 인원의 요금을 사람이 더 적은 그룹에 판매할 수 있습니다. 이 시나리오에서는 해당하는 최대 숙박 인원에 관한 요금 업데이트만 전송하여 메시지를 단순화할 수 있습니다.

솔루션

여러 숙박 인원에 동일한 가격이 있는 경우 객실 유형 및 요금제에서 지원하는 최대 숙박 인원 값을 설정하면 더 낮은 숙박 인원에 해당 값이 자동으로 사용됩니다. 즉, 숙박 인원이 모두 동일하다면 숙박 인원 1~6에 대해 동일한 1박 요금을 반복하지 않아도 됩니다. 6으로 설정하면 됩니다.