滞在日数(LoS)の料金

Travel Partner Prices API

Travel Partner Prices API は、Google 広告から送信するための RESTful インターフェースを 物件価格を Google に送ります

サービス: travelpartnerprices.googleapis.com

このサービスを呼び出すには、Google 提供のクライアント ライブラリ。お使いの このサービスを呼び出すために独自のライブラリを使用する必要がある場合は、 テクニカル アカウント マネージャー(TAM)によるディスカバリ ドキュメントの取得 割り当てることができます。

サービス エンドポイント

サービス endpoint は、 API サービスのネットワーク アドレスを指定するベース URL。1 つのサービス 複数のサービス エンドポイントが存在する場合があります。このサービスには次のサービスがあります 示されているすべての URI は、このサービス エンドポイントからの相対パスです。

https://travelpartnerprices.googleapis.com
メソッド
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

指定した宿泊施設に提供された滞在日数の料金をアップロードします。

HTTP として JSON エンコードされた LoS 料金メッセージ(下記参照)が必要です。 あります。

account_id: この文字列値は、 "アカウント ID"ホテルの [アカウント設定] ページに表示されている値 できます。

property_id: この要素の値は、 ホテルリスト フィードのリスティング ID と一致する文字列である必要があります。

API の認証

Travel Partner Prices API は、OAuth 2.0 を使用して以下の処理を行います。 API にアクセスできるように、アプリケーションを認証します。

設定手順を確認するには、OAuth の設定 2.0。設定内容は次のとおりです Travel Partner API の説明を ご覧くださいTravel Partner API と Travel Partner Prices API は 異なるものですこの設定手順では 「Travel Partner Prices API」に置き換える必要があります。名前は、 「Travel Partner API」参照されます。

リクエスト

構文

LoS Prices メッセージには次の構文が使用されます。

{
  "requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
  "propertyPrices": {
    "arrivalDatePrices": [{
      "startDate": {
        "year": int
        "month": int
        "day": int
      }
      "endDate": {
        "year": int
        "month": int
        "day": int
      }
      "productPrices": [{
        "roomTypeId": "string"
        "ratePlanId": "string"
        "occupancyPrices": [{
          "adults": int
          "prices": [{
            "rateRuleId": "string"
            "currencyCode": "string"
            "rates": [night_1,night_2,...]
            "taxes": [night_1,night_2,...]
            "fees": [night_1,night_2,...]
          }]
        }]
      }]
    }]
  }
}

元素と属性

滞在日数の料金メッセージには、次の要素と属性があります。

要素 発生回数 タイプ 説明
requestTime 1 string

LoS 料金メッセージが送信された時間 RFC 3339 形式の 使用します。

過去 24 日以内に requestTime を使用して送信されたメッセージ 時間は処理され、残りの時間は破棄されます。

メッセージは requestTime の順序で処理されます。 受信の順序に関係なく 常に同じですたとえば、 requestTime の料金更新 2019-05-03T14:09:00Z の後に受信する 同じ旅行プランのメッセージに対して、requestTime2019-05-03T14:10:00Z が破棄されて、 タイムスタンプが付けられたメッセージです。

RFC 3339 では、 YYYY-MM-DDThh:mm:ss.SSZ。タイムゾーンの指定は必須です UTC からの正または負の hh:mm オフセット、または Z は UTC の省略形です。

秒の小数点以下は省略可能です。 ナノ秒の精度です。たとえば 2017-01-15T01:30:15.01-08:00 は、過去の 15.01 秒をエンコードします。 2017 年 1 月 15 日 01 時 30 分から

propertyPrices 1 Object 宿泊施設の料金。このpropertyPrices内のすべての料金 すべて同じプロパティに適用されます。

この要素は繰り返しません。複数の宿泊施設の料金を送信するには 複数の HTTP リクエスト(プロパティごとに少なくとも 1 つ)を行う必要があります。

arrivalDayPrices[] 1..n Object 到着日の料金。このarrivalDayPrices内のすべての料金 特定の宿泊施設に適用され、到着日が異なる。
startDate 1 Object productPrices はすべての到着日に適用されます startDateendDate の範囲内(両端を含む)。

期間ではなく、1 つの到着日のみを指定する場合: startDateendDate の両方に到着日を入力します。

startDate.year 1 integer startDate 年の年。1 ~ 9999 の範囲で指定してください。
startDate.month 1 integer 1 年の中の月。1~12 である必要があります。
startDate.day 1 integer 1 月の中の日付。1 ~ 31 で、その年と月に対して有効である必要があります。
endDate 0..1 Object productPrices は startDateendDate(両端を含む)。

期間ではなく、1 つの到着日のみを指定する場合: endDate は省略できます。

endDate.year 1 integer endDate 年の年。1 ~ 9999 の範囲で指定してください。
endDate.month 1 integer 1 年の中の月。1~12 である必要があります。
endDate.day 1 integer 1 月の中の日付。1 ~ 31 で、その年と月に対して有効である必要があります。
productPrices[] 1..n Object 商品の価格。このproductPrices内のすべての料金 特定の宿泊施設と到着日の組み合わせに適用されますが、 プロダクトの
roomTypeId 0..1 string この料金が参照している客室の一意の ID。使用 この ID を使用して、条件の組み合わせデータと客室データで送信した内容を照合します。 詳細については、このモジュールの 条件の組み合わせのメタデータ
ratePlanId 0..1 string この料金が参照しているパッケージ データの一意の ID。使用 この ID を使用して、条件の組み合わせデータと packagedata で送信した内容を照合します。 詳細については、このモジュールの 条件の組み合わせのメタデータ
occupancyPrices[] 1..n Object 宿泊料金。このoccupancyPrices内のすべての料金 特定の宿泊施設、到着日、商品の組み合わせにのみ適用されますが、 設定することもできます。
adults 1 integer 1 つの部屋で予約できる宿泊客の最大数 使用できます。この値は 対応する occupancyPrices フィールド。この値は正の値である必要があります。 1 ~ 99 の整数。

注: サポートチームに連絡して、 大人 4 人を超える場合に適しています。

prices[] 1..n Object 滞在日数の料金。prices 内のすべての価格が以下に適用されます 特定の宿泊施設、到着日、商品、定員の組み合わせ。
rateRuleId 0..1 string 限定価格の場合: この ID によって料金が料金ルール定義ファイルの定義と照合されます。 このフィールドの文字数制限は 40 文字です。
currencyCode 1 string 3 文字の通貨コードratestaxes) 用意されています。たとえば、米ドルの場合は "USD" です。
rates[] 30 float 滞在日数の料金の基本料金コンポーネント。

対応する taxes 値が指定されている場合、このレートは 税抜きです。合計金額は 税率と税金です

インデックス n の値が n+1 に対応している。 滞在日数。

一度に 30 個の料金の全 LoS セットを送信する必要があります。Google 30 未満の場合、提供されたすべての LoS 料金が 残りの料金は LoS 30 までは利用できません。もし 30 件を超える料金を送信する場合、30 件目を超える料金を送信すると ドロップ。

利用できない滞在日数は、 0

taxes[] 30 float 滞在日数の料金の税金コンポーネント。

インデックス n の値が n+1 に対応している。 滞在日数。

fees[] 30 float 滞在日数の料金の料金コンポーネント。

インデックス n の値が n+1 に対応している。 滞在日数。

料金とLOS に基づく税金

次の例では、最低宿泊日数を 2 に設定しています 別のチェックイン日には空室状況を設定せず、 endDate を指定せずに 2023 年 9 月 1 日から startDate を設定した場合、次のようになります。 1 つの日付に対してのみ料金を指定し、 endDate

2 に設定された occupancyPrices 配列を使用すると、さまざまな料金を設定できます。 別の宿泊人数に合わせたりしますしたがって、2023 年 9 月 4 日の上限には空室がありません。 (ratesに利用可能)

表示されている taxes 配列は、割合の 10% として計算されます。

表示されている fees 配列は、1 滞在あたり 50 ドルの清掃料金を適用しています。

2023 年 9 月 3 日にチェックイン日を利用できない場合は、 ratestaxesproductPrices を省略して、日付を明示的に送信します。 リクエストした日付に空きがないことを確認します。

{
  "requestTime": "2023-08-10T12:15:222",
  "propertyPrices": {
    "arrivalDatePrices": [
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 1
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 3
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

レスポンスの本文

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
        {
          "name": "string"
        }
        
フィールド
name 変更された PropertyPrices のリソース名。次のような形式になります。
accounts/{account}/properties/{property}