クエリ メッセージは、料金やメタデータの更新に関する Google からのリクエストです。これらは、プル型料金と変更済み料金の配信モードの両方で使用されます。
クエリ メッセージのルート要素は <Query>
です。
クエリ メッセージの構造はメッセージの種類によって異なります。
料金設定: Google は、指定されたホテルの料金設定の更新をリクエストするクエリ メッセージを送信します。
メタデータ: Google は、指定されたホテルの客室とパッケージに関する情報をリクエストするクエリ メッセージを送信します。
初期設定時に、Google がクエリ メッセージとライブ料金クエリに使用するエンドポイントを定義します。詳細については、テクニカル アカウント マネージャー(TAM)にお問い合わせください。
Google は、Content-Type
ヘッダーを「application/xml」に設定し、User-Agent
ヘッダーを Google-HotelAdsPrices
に設定したクエリ メッセージを HTTP POST
リクエストとして送信します。Google-TravelAds-Live
による料金エンドポイントの統合の手動テスト中は、このルールの例外が発生します。これらのサンプルクエリには、User-Agent
ヘッダーが含まれている場合と含まれていない場合があります。
クエリ メッセージの詳細な形式については、クエリ XML リファレンスをご覧ください。
料金クエリ メッセージ
料金クエリ メッセージでは、料金を提供する宿泊施設または旅行プランの組み合わせを指定します。
料金pricingクエリ メッセージを受信したサーバーは、要求された料金情報を含む <Transaction>
メッセージで応答する必要があります。
詳細については、料金の概要をご覧ください。
クエリ メッセージには次の 3 つの特殊なタイプがあります。
ライブ料金: 有効にすると、ユーザーが指定された宿泊施設または旅行プランの組み合わせの料金を積極的に閲覧しており、応答期限が指定された場合にクエリが送信されます。
コンテキストあり: 有効にすると、Google が送信する各クエリにユーザー コンテキストの推奨事項が含まれ、推奨事項は指定された宿泊施設または旅行プランの組み合わせを検索する最も一般的なタイプのユーザーを反映します。これらの推奨事項に従うと、対応効率が向上する可能性があります。
メタデータ: 指定された宿泊施設の客室とパッケージに関する詳細情報のリクエストです。
ライブ料金のクエリ
ライブ料金クエリは、ユーザーの検索に対するリアルタイムの料金更新を Google がリクエストするものです。Google は、ユーザーからホテルまたは旅行プランの組み合わせの検索リクエストを受け取ります。料金データが利用できないか最新ではないため、検索時の料金更新をリクエストします。ライブ料金クエリでは、Google は料金を取得して検索時の結果に表示します。
すべてのライブ料金クエリ リクエストには、通常は最大 4,000 ミリ秒の応答時間の上限があります。この上限は、ライブ料金クエリ リクエストで指定します。制限時間内に回答を提供できない場合、特定のオポチュニティへの参加が損なわれます。ただし、キャッシュに保存して将来の機会で使用できるように、価格を指定することをおすすめします。レスポンスの接続は、10 分間、またはパートナーの構成で指定された時間、開いたままになります。
また、ライブ料金クエリはコンテキストに基づいており、ユーザーの国、デバイスの種類、定員(宿泊客数)、ゲストが大人か子供かというパラメータの料金を取得できます。ライブ料金クエリを使用すると、ユーザーの検索内容に一致する最新の料金を表示できます。
ライブ料金クエリは、料金を更新するための二次的なメカニズムとされています。料金変更の主なメカニズムは、引き続きプル型料金または変更済み料金です。ライブ料金クエリを使用すると、Google がホテルや旅行プランの組み合わせの料金を把握していない場合に、データの欠落を埋めることができます。
ライブ料金クエリの使用ルール
リクエストした宿泊プランが非定型であるため(日付がかなり先の日付になっている、ホテルの検索頻度が非常に低いなど)、指定された旅行プランのキャッシュ データはありません。
リクエストされた日付がデフォルト以外の日付です。
: 注: デフォルトの日付は、ライブ料金のクエリの対象ではありません。ライブ料金クエリは、デフォルト以外の日付に対してのみリクエストされます。
Google は通常、同じホテルや旅行プランが再度クエリされないように、ライブ料金の結果をキャッシュに保存します。1 つのホテルと旅行プランの組み合わせだけでなく、複数のホテルや 1 つの旅行プランの組み合わせもリクエストできます。
コンテキストを使用したライブ料金機能を使用すると、Google はユーザーのデバイスタイプ、検索元の国、子供を含む宿泊人数に基づいて、特定のライブ料金リクエストを送信できます。クエリ メッセージとトランザクション メッセージはどちらも展開され、クエリ パラメータを定義する <Context>
要素が含まれます。コンテキストとともにライブ料金クエリから受け取った料金は、特定の宿泊人数に対する料金の場合は条件の組み合わせとして、ユーザーの国またはユーザーのデバイスに対する場合は限定価格としてキャッシュできます。
コンテキスト クエリあり
Context クエリは、指定されたプロパティまたは旅行プランの組み合わせのデータベースを更新するための定期的なリクエストです。それらの組み合わせでよく使用されるユーザー コンテキストのリストが含まれます。限定価格を使用すると、利用可能なすべてのユーザー コンテキストに対して料金を送信するとコストが高くなる可能性があるため、このユーザー コンテキストのリストを使用してレスポンスを制限できます。指定されたユーザー コンテキストに対してのみ料金を返すことで、関連するユーザークエリの大部分をカバーできます。
メタデータ クエリ メッセージ
メタデータ クエリ メッセージには、指定された宿泊施設の客室とパッケージの情報に関する詳細が含まれます。
メタデータ クエリ メッセージを受信したら、<Transaction>
メッセージで応答する必要があります。このメッセージでは、リクエストされた宿泊施設の料金を <Result>
要素に指定します。
詳しくは、客室とパッケージのメタデータの定義をご覧ください。
クエリの管理
このセクションでは、Google からのクエリ メッセージの件名にする宿泊施設と旅行プランを制御する方法について説明します。
旅行プランの境界線
料金クエリの範囲を決定するには、<ItineraryCapabilities>
を使用します。サポートする期間と最長滞在日数を決定するルールを定義します。
すべてのホテルまたは旅行プランの組み合わせに適用される <MaxAdvancePurchase>
と <MaxLengthOfStay>
のデフォルト値を設定できます。これらの設定をホテルのグループに対して定義することもできます。
クエリ メッセージの例
このセクションでは、料金のクエリ メッセージとメタデータ クエリ メッセージの例をいくつか示します。その他の例については、クエリ XML リファレンスをご覧ください。
旅行プランの例
次の例は、2023 年 5 月 23 日以降に 3 泊で予約可能な 4 件のホテルの料金更新データをリクエストする料金 <Query>
を示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>3</Nights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
次の例では、各ホテルの料金の更新をリクエストしています。
5/23/18 - 6/26/18
ライブ料金クエリの例
次の例は、レスポンス時間の上限が 500 ミリ秒のライブ料金クエリを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<!-- Note that the latencySensitive attribute is not present by default but can
be configured to be displayed, on request, by Google. This attribute is only
displayed for a Live Pricing Query request -->
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<DeadlineMs>500</DeadlineMs>
<!-- The deadline represents the timeframe by which a response will need to be
received by. This element is only displayed for a Live Pricing Query request -->
<PropertyList>
<Property>6781291</Property>
</PropertyList>
<!-- Note that Context tags are potentially repeatable -->
<Context>
<!-- The total number of guests occupying the room (adults+children) -->
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<!-- In this example one of the 3 guests is a 5yr old child -->
<Children>
<Child age="5"/>
</Children>
</OccupancyDetails>
<!-- The user was located in the US when this search was made -->
<UserCountry>US</UserCountry>
<!-- The user was searching from a mobile device at the time of search -->
<UserDevice>mobile</UserDevice>
</Context>
</Query>
次の例では、1 つのホテルの料金をリクエストしています。
6/23/23 - 6/25/23
このクエリに対するトランザクション メッセージのレスポンス例については、料金と客室在庫(トランザクション)XML リファレンスをご覧ください。
Context クエリの例を使用
次の例は、With Context クエリを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, occupancy and device might be specified -->
<Context><UserCountry>US</UserCountry></Context>
<Context><UserCountry>GB</UserCountry></Context>
</PropertyContext>
<PropertyContext>
<Property>8675310</Property>
<Property>8675311</Property>
<Context><UserCountry>CA</UserCountry></Context>
</PropertyContext>
</PropertyContextList>
</Query>
Context クエリは、ユーザーの国のコンテキストのみを指定します。将来的には、このようなクエリでユーザーのデバイスと占有率を指定する可能性もあります。
チェックイン期間
変更済み料金を使用する場合、クエリ メッセージの構造は、チェックイン期間、正確な旅行プラン、期間指定旅行プランに使用するヒントのタイプによって異なります。これらのヒントの種類について詳しくは、ヒント応答メッセージをご覧ください。
次の例は、チェックイン期間の料金 <Query>
メッセージを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<FirstDate>2023-05-23</FirstDate>
<LastDate>2023-05-26</LastDate>
<Nights>3</Nights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
この例では、各ホテルについて次の滞在期間の料金更新をリクエストしています。
5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/24/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23
期間指定滞在
次の例は、期間指定滞在の料金の <Query>
メッセージを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<FirstDate>2023-05-23</FirstDate>
<LastDate>2023-05-26</LastDate>
<AffectedNights>3</AffectedNights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
次の例では、各ホテルの料金の更新をリクエストしています。
5/23/23 - 5/24/23
5/23/23 - 5/25/23
5/23/23 - 5/26/23
5/24/23 - 5/25/23
5/24/23 - 5/26/23
5/24/23 - 5/27/23
5/25/23 - 5/26/23
5/25/23 - 5/27/23
5/25/23 - 5/28/23
さらに、特定の宿泊日より前に開始した宿泊も対象となります。
5/20/23 - 5/23/23
5/21/23 - 5/23/23
5/21/23 - 5/24/23
5/22/23 - 5/23/23
5/22/23 - 5/24/23
5/22/23 - 5/25/23
メタデータ クエリ メッセージ
次の例は、複数の宿泊施設の客室とパッケージの情報に関するメタデータの更新をリクエストする <Query>
メッセージを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
このタイプのクエリ メッセージには、客室とパッケージのメタデータを定義するトランザクション メッセージで応答します。詳しくは、客室とパッケージのメタデータの定義をご覧ください。