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 料金メッセージ(下記を参照)が必要です。
|
API の認証
Travel Partner Prices API は、OAuth 2.0 を使用してアプリケーションを認証し、API にアクセスできるようにします。
OAUTH 2.0 のセットアップに沿って対応します。 Travel Partner Prices API の承認を受けるための手順。
Travel Partners Prices API 用の新しいプロジェクトを作成するときは、次のことを行う必要があります。 新しい Google Cloud コンソール プロジェクトへのアクセスを有効にします。 Travel Partner API で提供される手順をご覧ください
Travel Partner API で提供される手順をご覧ください すべての「Travel Partner API」と置き換えます。「旅行パートナーの料金」 API」プロジェクトを有効にします。
Travel Partner Prices API のスコープは次のとおりです。
"https://travelpartnerprices.googleapis.com"
Travel Partner Prices API のアップロード パスは次のとおりです。
"/travel/lodging/uploads/accounts/<account_id>/property_data"
リクエスト
構文
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 Price メッセージが送信された時点。RFC 3339 形式の文字列で表します。 過去 24 日以内に メッセージは RFC 3339 では、 秒の小数部分は省略可能です。ナノ秒単位の精度まで表すことができます。たとえば、 |
propertyPrices | 1 | Object | 宿泊施設の料金。このpropertyPrices 内のすべての料金
すべて同じプロパティに適用されます。
この要素は繰り返しません。複数の宿泊施設の料金を送信するには 複数の HTTP リクエスト(プロパティごとに少なくとも 1 つ)を行う必要があります。 |
arrivalDayPrices[] | 1..n | Object | 到着日の料金。この arrivalDayPrices 内のすべての料金は、特定の宿泊施設に適用されますが、到着日が異なります。 |
startDate | 1 | Object | productPrices は、startDate ~endDate のすべての到着日に適用されます。期間ではなく、1 つの到着日のみを指定する場合:
|
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 は、startDate ~endDate のすべてのチェックイン日に適用されます。期間ではなく、1 つの到着日のみを指定する場合、
|
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 | rates と taxes が指定されている 3 文字の通貨コード。たとえば、米ドルの場合は "USD" です。
|
rates[] | 30 | float | 滞在日数の基本料金コンポーネント。
対応する インデックス 一度に 30 個の価格の完全な LoS セットを送信する必要があります。30 個未満を送信した場合、指定された LoS の料金はすべて通常どおり処理されますが、残りの料金は LoS 30 まで使用できません。30 件を超えて送信した場合、30 件目の料金を超えて送信された料金は破棄されます。 利用できない滞在日数は、
|
taxes[] | 30 | float | 滞在日数分の税金のコンポーネント。
インデックス |
fees[] | 30 | float | 滞在日数料金の料金コンポーネント。
インデックス |
例
料金とLOS に基づく税金
次の例は、1 つのチェックイン日に最低宿泊日数を 2 泊に設定し、別のチェックイン日に空室を設定しない方法を示しています。endDate
を指定せずに 2023 年 9 月 1 日から startDate
を設定した場合、次のようになります。
1 つの日付に対してのみ料金を指定し、
endDate
。
2
に設定された occupancyPrices
配列を使用すると、宿泊人数ごとに異なる料金を設定できます。したがって、2023 年 9 月 4 日の上限には空室がありません。
(rates
に利用可能)
表示されている taxes
配列は、割合の 10% として計算されます。
表示されている fees
配列は、1 滞在あたり 50 ドルの清掃料金を適用しています。
チェックイン日全体が空室の場合(2023 年 9 月 3 日)は、日付を明示的に送信し、rates
、taxes
、productPrices
を省略して、リクエストされた日付の空室がないことを示します。
{
"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} 。
|