限定価格は料金ルールの一種で、ユーザーのデバイス、国、またはユーザーが Google にログインしているかどうかなどの条件に基づいて旅行プランに異なる料金を提示できます。
宿泊プランや条件の組み合わせに、公開料金または限定価格が複数ある場合、ユーザーには最も安い料金が表示されます。Google は常に、ユーザーにとっての最低対象料金を選択します。
概要
限定価格は標準料金スロットに表示され、関連する限定価格の条件を満たすユーザーにのみ表示されます。これらの基準は、以下に基づいて設定できます。
限定価格を有効にするには、次のように変更します。
料金ルール XML ファイル: 限定価格を適用する条件を定義します。
料金フィード: Transaction メッセージで
<Rate>
要素を使用して料金を設定します。ランディング ページ ファイル: 料金ルール固有の値をディープリンクに追加します。
デバイス固有の限定価格
デバイス固有の料金とは、特定のデバイス(モバイル、タブレット、パソコンなど)でユーザーのみが表示して予約できるホテル料金です。料金は Google のパートナーから提示されており、エンドユーザーはパートナーのサイトで同じデバイス固有の料金を確認して予約できます。
国別の限定価格
国別の料金とは、特定の国のホテルを検索しているユーザーにのみ表示され、予約できる料金です。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 リファレンスをご覧ください。
料金フィードを更新する
限定価格は、Transaction メッセージの要素を使用して設定します。
<Rate>
要素は、<RoomBundle>
要素または <Result>
要素内で <Rates>
の複数の子要素として使用することもできます。限定価格として使用するには、rate_rule_id
属性の値を料金ルール XML ファイルで定義した料金ルール ID と一致するように設定する必要があります。
デフォルトの公開 2 人利用料金が設定されていない場合は、<Result>
メッセージの <Baserate>
子要素を -1
に設定します。この場合、Google に送信される条件付き <Rates>
はすべて有効とみなされます。
例
基本 + 条件付き
次の例は、基本料金と限定価格を含む 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>
<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>
の下に単一の料金を含む 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>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>
に複数のレートが含まれている 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>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)¤cy=(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)¤cy=(USER-CURRENCY)
この例では、料金ルール ID が設定されているかどうかに応じて、2 つのランディング ページから選択します。
詳細については、変数と条件の使用をご覧ください。