限定価格

限定価格は料金ルールの一種で、ユーザーのデバイス、国、ユーザーが Google にログインしているかどうかなどの条件に基づいて、旅行プランに異なる料金を提示できます。

旅行プランまたは条件の組み合わせに対して公開料金または限定価格が複数ある場合、ユーザーには最低料金が表示されます。Google は常に、ユーザーに適用される最低料金を選択します。

概要

限定価格は標準料金スロットに表示され、関連する限定価格の条件を満たす検索を行うユーザーにのみ表示されます。これらの基準は、以下に基づいて設定できます。

限定価格を有効にするには、次のように変更します。

デバイス固有の限定価格

デバイス固有の料金は、特定のデバイス(モバイル、タブレット、パソコンなど)を使用しているユーザーのみに表示され、予約できる宿泊料金です。料金は Google のパートナーから提供され、エンドユーザーはパートナーのサイトで同じデバイス固有の料金を確認して予約できます。

fenced_rates

国固有の限定価格

国別料金は、特定の国のホテルを検索しているユーザーのみに表示され、予約できるホテル料金です。Google は、エンドユーザーの IP アドレスを使用して国を判断します。料金は Google のパートナーから提供され、エンドユーザーはパートナー独自の国別のサイトで同じ国別の料金を確認して予約できます。

言語固有の限定価格

言語固有の料金は、Google で特定の言語設定を使用してホテルを検索しているユーザーにのみ表示されます。言語固有の条件は、<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>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </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>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

公共の 2 人部屋は不可

次の例は、2 人部屋の宿泊料金のない限定価格を含む Transaction メッセージを示しています。

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

ランディング ページ ファイルを更新する

対象となるエンドユーザーがディープリンクを使用して割引料金を予約できるようにするには、ランディング ページ ファイルを変更します。割引料金を適切に表示して実現するには、予約サイトで追加の実装が必要になる場合もあります。

パートナー様には、限定価格のディープリンクに表示される価格が適用されます。

ダイナミック ディープリンクでは、名前、<RateRule> 要素の id 属性、RATE-RULE-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)

ランディング ページ ファイルでは IF-RATE-RULE-ID ディレクティブもサポートされています。このディレクティブを使用すると、料金ルールが存在するかどうかに基づいて、URL の一部を条件付きで定義できます。

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 が設定されているかどうかに応じて、2 つのランディング ページを選択します。

詳細については、変数と条件の使用をご覧ください。