Rate Message

概要

Rate メッセージ(OTA_HotelRateAmountNotifRQ)は、特定の期間における各客室タイプと料金プランの組み合わせの 1 泊あたりの宿泊料金を定義します。Google は、料金メッセージの一部として、宿泊人数に基づく料金設定をサポートしています。これにより、宿泊予定の最大人数に基づいて、1 泊あたりの料金を個別に指定できます。

以降のセクションでは、料金の追加と更新、料金メッセージの送信を開始するための一般的なガイドライン、基本的な例、ハウツー シナリオについて説明します。

マッチ率の動作

ユーザーが特定の宿泊人数をリクエストすると、表示される料金は、料金メッセージで料金をどのように定義しているかによって異なります。このセクションでは、リクエストの占有率と定義した料金に基づいて、ユーザー リクエストが料金と照合される仕組みについて説明します。

基本原則

  • 特定の宿泊人数に対して定義された料金は、別途定義されていない限り、それより少ないすべての宿泊人数に適用されます。

  • 定義された占有率を超えるリクエストは、不可能と見なされます。

  • 宿泊人数ベースの料金は、以下で説明する日付ごとの料金モデルと LOS ベースの料金モデルの両方に適用されます。つまり、占有率ごとにレートを指定できます。特定の宿泊人数に対する料金が存在しない場合は、次に多い宿泊人数に対する料金が使用されます。AdditionalGuestAmounts または ExtraGuestCharges を使用して、追加の宿泊客と子どもの料金を定義することもできます。この料金は、客室に定義された定員まで適用されます。

メリットと例

効率性

料金額が同じ複数の宿泊人数に対して、宿泊人数ごとに料金を設定する必要はありません。客室タイプと料金プランでサポートされている最大宿泊人数のみを設定することで、メッセージを簡素化できます。設定した値以下の定員に対して、この料金が表示されます。

例: 客室タイプと料金プランの料金は、1 人から 4 人までの宿泊人数で同じです。Rate メッセージを使用して、最大宿泊人数 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 ベースの料金モデルで指定された料金は 1 日あたりの料金です。たとえば、宿泊日数が 3 日で料金が 100 ドルの場合、合計料金は 3×100 ドル=300 ドルと計算されます。

StatusApplicationControl 要素で RatePlanType="26" を指定すると、LOS ベースの料金モデルを利用できます。また、XML の Rate 要素に RateTimeUnit 属性と UnitMultiplier 属性を設定する必要があります。これにより、指定された Rate 要素のすべての料金が、<StatusApplicationControl> で指定された到着日と UnitMultiplier で指定された LOS 値で定義された宿泊に適用されます。

1 つのアカウントで日付別料金モデルと LOS ベースの料金モデルの両方を使用できますが、各宿泊施設では 1 つの料金モデルのみを使用する必要があります。LOS ベースの料金設定を実装する際は、次の点に注意してください。

  • LOS ベースの料金設定を使用する場合、滞在日数が異なる料金は組み合わせられません。たとえば、LOS 3 の料金と LOS 1 の料金を組み合わせて LOS 4 の料金を算出することはありません。LOS 4 の料金は明示的に指定する必要があります。
  • LOS ベースの料金設定の 1 泊料金は、日付ごとの料金設定の個別の 1 泊料金としては使用されません。
  • 各宿泊施設では、システムでの料金の表示方法に応じて、LOS ベースの料金または日付ごとの料金のいずれかのみを使用する必要があります。

アカウントで LOS ベースの料金設定を有効にするには、TAM を通じてリクエストするか、お問い合わせください。

ガイドラインまたはアクション

日付ごとの料金

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 の 1 人あたりの料金は変更されません。
  • Delta の更新により、指定された宿泊期間の以前に保存された 1 室あたりの宿泊料金がすべて上書きされます。たとえば、LOS 1 の 1 人部屋と 2 人部屋の料金を指定し、1 人部屋の料金のみを含む LOS 1 の Delta 料金更新を送信すると、2 人部屋の料金は削除されます。

Overlay: <StatusApplicationControl> で指定されている LOS、客室タイプ、料金プラン、チェックイン日に関する既存の定員単位の料金をすべて削除し、新しい料金で置き換えます。たとえば、LOS 1 と 2 の料金を指定していて、LOS 1 の Overlay 更新を送信した場合、Google は以前の料金(LOS 1 と 2 の両方)をすべて削除し、更新後に LOS 1 の料金のみが残ります。

Remove: <StatusApplicationControl> で指定されている客室タイプ、料金プラン、チェックイン日に関するすべての LOS の既存の定員単位の料金をすべて削除します。

税金関連

税金と手数料が単純な場合は、AmountAfterTax を使用して合計金額を指定できます。AmountAfterTax では、滞在ごとに適用される税金や手数料など、複雑な税金は表示できません。

一般に、Google は AmountAfterTax ではなく TaxFeeInfo を使用することをおすすめします。

特定の地域(米国など)では税抜き価格がデフォルトで表示されるため、可能な場合は AmountBeforeTax を含める必要があります(AmountAfterTax を指定する場合でも)。

ユーザーが支払う必要があるすべての税金と手数料(VAT、宿泊税、清掃料金、都市税など)を含める必要があります。予約時に支払われない場合や、宿泊施設に直接支払われない場合も同様です。

このセクションでは、必須要素と省略可能な要素を使用した料金メッセージの基本的な例を示します。ファイルを用意したら、次のエンドポイントに POST メッセージを使用して Google に送信する必要があります。 https://www.google.com/travel/hotels/uploads/property_data

メッセージの push/POST 方法については、メッセージの push をご覧ください。

HotelCode には、システム内で宿泊施設を識別するために使用した一意のホテル ID を使用します。この値は、ホテルリスト フィードの <listing> 要素の <id> を使用して指定した HotelID と一致する必要があります。<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: 1 人あたりの料金を変更する方法

説明

以前は、1 泊の料金は 2 人部屋(1 人部屋にも適用)に対してのみ定義されていましたが、現在は 1 人部屋に対してより安い料金が設定されています。

解決策

デフォルトの Delta スコープ更新を使用して、新しい占有率 1 を送信します。この新しい値は、2 人の占有率には影響しません。

シナリオ 2: 宿泊施設あたりの宿泊料金を置き換える方法

説明

以前は 1 ~ 4 人の宿泊料金を定義していましたが、現在は 1 人と 2 人の宿泊料金のみが有効です。

解決策

NotifType="Overlay" を使用して、特定の宿泊施設、客室タイプ、料金プラン、日付の定員単位の料金をすべて置き換えます。このシナリオでは、Overlay アクションは占有率 1 と 2 の料金を一覧表示します。

シナリオ 3: 複数の定員に同じ料金を設定する方法

説明

特定の占有率の料金を、人数が少ないグループに販売できます。このシナリオでは、適用可能な最大宿泊人数に対する料金の更新のみを送信することで、メッセージを簡素化できます。

解決策

複数の宿泊人数に対して同じ料金を設定している場合は、部屋タイプと料金プランでサポートされている最大の宿泊人数値を設定すると、それより少ない宿泊人数に対してその値が自動的に使用されます。つまり、1 ~ 6 人の宿泊料金がすべて同じ場合は、同じ料金を繰り返す必要はありません。6 人の宿泊料金を設定するだけで済みます。