メッセージを評価する

概要

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

以下のセクションでは、料金の追加と更新、および Rate メッセージの送信を開始するための一般的なガイドライン、基本的な例、手順について説明します。

一致率の動作

ユーザーが特定の宿泊人数をリクエストすると、表示される料金は Rate メッセージでの料金の定義方法によって異なります。このセクションでは、リクエストの占有率に応じた料金とユーザー リクエストのマッチング方法と、定義した料金について説明します。

基本原則

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

  • 規定以上の宿泊人数をリクエストすることはできません。

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

メリットと例

効率性

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

例: 定員 1 ~ 4 名の客室タイプと料金プランの料金は同じです。Rate メッセージを使用して、定員 4 名の料金を 1 つ設定します。ユーザーが 1 人、2 人、3 人で宿泊した場合も、同じ料金が表示されます。検索が 5 以上の場合、料金は表示されません。

管理

別の宿泊人数の個別の料金は明示的に指定できます。Google がリクエストを宿泊料金と照合する方法を詳細に制御する場合は、宿泊人数の値ごとに異なるレートを送信します。

例: 定員 3 人と 1 人に対して料金が定義されている場合、1 人で宿泊する場合には 1 人の場合の宿泊料金が表示され、2 人の場合で 3 人の場合の宿泊料金が表示され、4 人以上の場合で料金は表示されません。

レート関連のさまざまなシナリオの例については、入門ガイドをご覧ください。

必須要素と省略可能な要素

XML リファレンスでは、必須要素と省略可能な要素について説明しています。属性と子要素について詳しくは、料金の要素と属性をご覧ください。

構文とスキーマ

レート メッセージを作成する際は、レートの構文の例を参考にして、正しい形式に従うようにします。

xmllint などのサードパーティの XML ツールを使用すると、Google に送信する前に、公開スキーマでフィードを検証できます。Rate メッセージ スキーマについては、ホテル広告スキーマをご覧ください。

料金モデル

日付単位の料金

これは、ほとんどの宿泊施設で使用される標準の料金モデルです。per-date 料金モデルは、宿泊日数を合計して宿泊料金の合計を算出する設定料金に基づいています。このモデルでは、Rate 要素に含まれるすべての料金は、<StatusApplicationControl> で指定された滞在日の範囲に適用されると解釈されます。

LOS ベースの料金

LOS ベース(滞在日数)の料金モデルは、到着日と滞在日数の組み合わせに設定された料金に基づいています。LOS ベースの料金モデルで指定された料金は日単位です。たとえば、滞在日数 3 ドルに対して 100 ドルの料金を送信すると、合計金額は 3×100 ドル=300 ドルとなります。

LOS ベースの料金モデルを利用するには、StatusApplicationControl 要素に RatePlanType="26" を指定します。また、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 にリクエストするか、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 の Delta 料金の更新を 1 人部屋の料金で送信すると、2 人部屋の料金が削除されます。

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

Remove: <StatusApplicationControl> で指定された客室タイプ、料金プラン、チェックイン日の LOS の既存の宿泊人数あたりの料金をすべて削除します。

税金関連

税金と手数料がシンプルな場合は、AmountAfterTax を使用して合計額を指定できます。(1 泊ではなく)1 回の宿泊ごとに適用される税金や手数料などの複雑な税金は AmountAfterTax で表すことはできません。

通常は、AmountAfterTax ではなく TaxFeeInfo を使用することをおすすめします。

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

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

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

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

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>

入門ガイド

このセクションでは、Rate メッセージの送信中に発生する可能性のあるシナリオの解決策について説明します。

レートを追加、削除、更新する方法の例については、レートの例をご覧ください。

シナリオ 1: 宿泊人数あたりの料金を変更する方法

説明

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

解決策

デフォルトの Delta スコープ アップデートを使用して、宿泊人数 1 の新しい料金を送信します。この新しい値は、定員 2 の料金には影響しません。

シナリオ 2: 宿泊施設の定員単位の料金を置き換える方法

説明

事前に定員 1 ~ 4 の料金を定義しましたが、現在は 1 と 2 のみが有効になりました。

解決策

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

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

説明

特定の宿泊人数に対する料金を、それより少ない人数のグループに販売できます。このシナリオでは、該当する最大宿泊人数に対する料金の更新のみを送信することで、メッセージを簡素化できます。

解決策

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