조건부 요율

조건부 요금은 사용자의 기기, 국가 또는 사용자가 Google에 로그인했는지 여부와 같은 기준에 따라 숙박 일정에 대해 다른 요금을 제공할 수 있는 요금 규칙의 한 유형입니다.

숙박 일정 또는 객실 패키지에 공개 또는 조건부 요금이 두 개 이상 있는 경우 사용자에게 가장 낮은 요금이 표시됩니다. Google은 항상 사용자에게 적합한 최저 요금을 선택합니다.

개요

조건부 요금은 표준 가격 슬롯에 표시되며 검색이 연결된 조건부 요금의 기준을 충족하는 사용자에게만 표시됩니다. 이러한 기준은 다음을 기반으로 할 수 있습니다.

조건부 요금을 사용 설정하려면 다음을 수정합니다.

기기별 조건부 요금

기기별 요금은 모바일, 태블릿, 데스크톱과 같은 특정 기기에서만 사용자에게 표시되고 예약할 수 있는 호텔 요금입니다. 요금은 Google 파트너가 제공하며 최종 사용자는 파트너 사이트에서 동일한 기기별 요금을 확인하고 예약할 수 있습니다.

fenced_rates

국가별 조건부 요금

국가별 요금은 특정 국가의 호텔을 검색하는 사용자에게만 표시되고 예약할 수 있는 호텔 요금입니다. Google은 최종 사용자의 IP 주소를 사용하여 국가를 결정합니다. 요금은 Google 파트너가 제공하며 최종 사용자는 파트너의 국가별 사이트에서 동일한 국가별 요금을 확인하고 예약할 수 있습니다.

언어별 조건부 요금

언어별 요금은 Google에서 특정 언어 설정을 사용하면서 호텔을 검색하는 사용자에게만 표시됩니다. 언어별 조건은 <LanguageCode> 요소를 사용하여 정의됩니다.

With Context 쿼리 요청 메시지에 언어가 지정되지 않았습니다. 따라서 요금 규칙에 <LanguageCode>를 지정하면 컨텍스트 포함 응답에 모든 관련 언어별 요금이 포함되어야 합니다.

다운샘플링된 조건부 요금

다운샘플링된 조건부 요금은 요건을 충족하는 모든 사용자 중 무작위로 선택된 하위 집합에만 표시됩니다. 샘플링 레이트는 <MaxUsersPercent> 요소를 사용하여 정의되고 다음을 사용하여 계산됩니다.

MaxUsersPercent = (number of users selected to view rate)/(total eligible users)

로그인된 조건부 요금

로그인 비율은 Google 계정으로 로그인한 사용자에게만 표시됩니다. Google 파트너가 요금을 제공하며 사용자는 파트너 사이트에서 요금을 확인하고 예약할 수 있습니다. 로그인율은 <UserSignedIn> 요소를 사용하여 정의됩니다.

Google은 항상 요건을 충족하는 최저 요금을 선택하므로 조건부 요금이 <Result> 수준으로 설정된 가격보다 높은 경우 조건부 요금은 선택되지 않습니다. 이를 방지하려면 <Result> 수준에서 요금을 삭제하고 모든 요금에 조건을 지정하세요. 또는 기술계정 관리자에게 <Result> 수준에서 설정된 가격에 기본 요금 규칙을 사용하는 방법을 문의하세요.

요금 규칙 XML 파일 만들기

조건부 요금의 요금 규칙은 요금 규칙 XML 파일을 사용하여 정의됩니다. 자세한 내용은 요금 규칙 XML 참고 자료를 참고하세요.

가격 피드 업데이트

조건부 요금은 거래 메시지의 요소를 사용하여 설정됩니다.

<Rate> 요소는 <RoomBundle> 또는 <Result> 요소 내에서 <Rates>의 여러 하위 요소로 사용할 수도 있습니다. 조건부 요금으로 사용하려면 요금 규칙 XML 파일에 정의한 요금 규칙 ID와 일치하도록 rate_rule_id 속성의 값을 설정해야 합니다.

기본 공개 2인 숙박 요금이 없는 경우 <Result> 메시지의 <Baserate> 하위 요소를 -1로 설정합니다. 이 경우 Google에 전송되는 모든 조건부 <Rates>는 유효한 것으로 간주됩니다.

기본 + 조건부

다음 예는 기본 요금 및 조건부 요금이 포함된 거래 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
      </Rate>
    </Rates>

  </Result>
</Transaction>

RoomBundle 단일

다음 예는 <RoomBundle> 아래에 단일 요금이 포함된 거래 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>

    <Baserate currency="USD">300.00</Baserate>
    <Tax currency="USD">30.00</Tax>
    <OtherFees currency="USD">2.00</OtherFees>

    <RoomBundle>
      <RoomID>single</RoomID>
      <Baserate currency="USD">300.00</Baserate>
      <Tax currency="USD">30.00</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
    </RoomBundle>

    <RoomBundle>
      <RoomID>3</RoomID>  <!-- Links to data in metadata -->
      <RatePlanID>basic</RatePlanID>
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <ChargeCurrency>web</ChargeCurrency>
      <BreakfastIncluded>1</BreakfastIncluded>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">269.00</Baserate>
          <Tax currency="USD">2.69</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rates>
      </Rates>

    </RoomBundle>
  </Result>
</Transaction>

RoomBundle 여러 개

다음 예는 <RoomBundle> 아래에 여러 요금이 포함된 거래 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>

      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>

      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

공용 2인 숙박 없음

다음 예는 공개 2인 숙박 요금이 없는 조건부 요금이 포함된 거래 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">

  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <!-- <Unavailable/> should not be specified when available nested rates
    exist. -->
    <Baserate currency="USD">-1</Baserate>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates. -->
      <Rate rate_rule_id="mobile">
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <OtherFees currency="USD">1.00</OtherFees>
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

방문 페이지 파일 업데이트

요건을 충족하는 최종 사용자가 딥 링크를 통해 할인된 요금으로 예약할 수 있도록 하려면 방문 페이지 파일을 수정하세요. 할인 요금을 올바르게 표시하고 처리하려면 예약 웹사이트에서 추가 구현이 필요할 수도 있습니다.

파트너는 조건부 요금 딥 링크에 표시된 가격을 준수해야 합니다.

동적 딥 링크에서 RATE-RULE-ID 변수를 사용하여 요금 규칙의 이름(<RateRule> 요소의 id 속성)을 포함할 수 있습니다.

다음 예에서는 요금 규칙 ID를 추가합니다.

https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)&prid=(RATE-RULE-ID)

방문 페이지 파일은 요금 규칙의 존재 여부에 따라 URL의 일부를 조건부로 정의할 수 있는 IF-RATE-RULE-ID 디렉티브도 지원합니다.

https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)

이 예에서는 요금 규칙 ID가 설정되어 있는지 여부에 따라 두 방문 페이지 중 하나를 선택합니다.

자세한 내용은 변수 및 조건 사용을 참고하세요.