クエリ メッセージ

クエリ メッセージは、料金設定やメタデータに対する Google からの更新リクエストです。プル配信モードと変更済み料金配信モードで使用されます。

クエリ メッセージのルート要素は <Query> です。

クエリ メッセージの構造はメッセージの種類によって異なります。

  • 料金設定: 指定されたホテルについて、料金設定の更新を要求するクエリ メッセージを Google から送信します。

  • メタデータ: 指定されたホテルについて、客室とパッケージに関するデータを要求するクエリ メッセージを Google から送信します。

Google がクエリ メッセージとライブ料金クエリに使用するエンドポイントは、初期設定時に定義してください。詳しくは、テクニカル アカウント マネージャー(TAM)にお問い合わせください。

Google はクエリ メッセージの Content-Type ヘッダーを「application/xml」に設定し、User-Agent ヘッダーを Google-HotelAdsPrices に設定して、HTTP POST リクエストとして送信します。ただし、Google-TravelAds-Live を介して料金エンドポイントを手動で統合する際は、このルールの例外が発生します。サンプルクエリには User-Agent ヘッダーが含まれる場合と、含まれない場合があります。

クエリ メッセージの詳細な形式については、クエリ XML リファレンスをご覧ください。

料金クエリ メッセージ

料金クエリ メッセージは、料金設定で指定したホテルと旅行プランの組み合わせを指定します。

料金クエリ メッセージを受信したサーバーは、要求された料金設定の情報を含む <Transaction> メッセージで応答する必要があります。

詳しくは、料金設定の概要をご覧ください。

Query メッセージには次の 3 つの特別なタイプがあります。

  1. ライブ料金: 有効にすると、ユーザーが指定した宿泊施設または旅行プランの組み合わせの料金を積極的に閲覧しているときにクエリが送信され、返信に指定した時間内に返信できます。

  2. コンテキストあり: 有効にすると、Google から送信される各クエリにユーザー コンテキストのレコメンデーションが含まれます。このレコメンデーションには、特定の宿泊施設や旅行プランの組み合わせを検索するユーザーの一般的なタイプが反映されます。これらの推奨事項に沿って対応することで、対応の効率を高めることができます。

  3. メタデータ: 指定された宿泊施設の客室とパッケージに関する詳細をリクエストします。

ライブ料金クエリ

ライブ料金クエリは、ユーザーの検索を受けて Google から送信されるリアルタイムの料金設定更新リクエストです。Google は、ホテルまたは旅行プランの組み合わせに関する検索リクエストをユーザーから受け取り、料金設定データがない、またはデータが最新でない場合、検索時に料金設定の更新をリクエストします。Google はライブ料金クエリを使って、検索時のリアルタイムの料金を取得し、結果に表示できるようにします。

すべてのライブ料金クエリ リクエストには、通常は最大 4,000 ミリ秒の応答時間の制限があります。この上限は、ライブ料金クエリ リクエストで指定します。特定の機会について、この制限時間内に応答できないと、その機会は入札不可になります。時間内に応答できない場合でも、料金を提供することをおすすめします。それにより料金がキャッシュされて、将来の機会で使用できるようになります。応答のための接続は、10 分間(またはパートナーの設定で指定された時間)維持されます。

ライブ料金クエリはコンテキスト型でもあります。ユーザーの国、デバイスの種類、定員(宿泊人数)、宿泊客の種類(大人、子ども)といったパラメータに関して料金を取得できます。ライブ料金クエリを使用すると、ユーザーの検索内容と一致させて、より最新の料金情報を表示できます。

ライブ料金クエリは、二次的な料金設定の更新方法です。料金設定更新の主要な方法は、現在もプル配信または変更済み料金配信です。ライブ料金クエリは、Google がホテルや旅行プランの組み合わせによる料金を保持していない場合に役立ちます。

ライブ料金クエリの使用に関するルール

  • リクエストされた旅行プランが変則的(日程がかなり先の日付であるなど)、またはあまり頻繁に検索されないホテルが指定されているため、その旅行プランに対するキャッシュ データがない場合。

  • リクエストされた日付がデフォルト以外の日付の場合

: 注: デフォルトの日付では、ライブ料金クエリをリクエストできません。ライブ料金クエリは、デフォルト以外の日付に対してのみリクエストされます。

通常、Google はライブ料金クエリの結果をキャッシュし、同じホテルや旅行のプランが繰り返しクエリされないようにします。1 つのホテルまたは旅行プランの組み合わせをリクエストすることも、複数のホテルまたは 1 つの旅行プランの組み合わせをリクエストすることもできます。

コンテキストを使用したライブ料金クエリでは、Google はユーザーが使っているデバイスの種類、検索元の国、子どもを含む定員数に基づいて特定のライブ料金リクエストを送信できます。クエリ メッセージとトランザクション メッセージの両方が拡張され、クエリ パラメータを定義する <Context> 要素が追加されました。コンテキストを使用したライブ料金クエリから取得した料金は、条件の組み合わせ(定員別料金の場合)または限定価格(ユーザーの国やデバイスに関する場合)としてキャッシュされます。

コンテキストクエリを使用

コンテキスト クエリは、指定された宿泊施設または旅行プランの組み合わせのデータベースを更新するための定期的なリクエストです。これらの組み合わせでよく使用されるユーザー コンテキストのリストが含まれています。限定価格を使用している場合、すべてのユーザー コンテキストに対して送信レートを設定すると費用が高くなる可能性があります。このユーザー コンテキストのリストを使用して、レスポンスの範囲を制限できます。指定されたユーザー コンテキストの価格のみを返すと、関連するユーザー クエリのほとんどをカバーできます。

With Context クエリの受信をご希望の場合は、テクニカル アカウント マネージャー(TAM)にお問い合わせください。お客様がこのようなメッセージを受信する準備ができていることを確認したうえで、構成を調整して、クエリでユーザー コンテキストの送信を開始できます。

メタデータ クエリ メッセージ

メタデータ クエリ メッセージには、指定された宿泊施設の客室とパッケージに関する詳細が含まれています。

メタデータ クエリ メッセージを受信した場合は、リクエストされた宿泊施設の料金を <Result> 要素で指定する <Transaction> メッセージで応答する必要があります。

詳しくは、客室とパッケージのメタデータの定義をご覧ください。

クエリを制御する

このセクションでは、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 リファレンスをご覧ください。

コンテキストを使用したクエリの例

次の例は、コンテキストを含むクエリの例を示しています。

<?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>

このタイプのクエリ メッセージには、客室とパッケージのメタデータを定義するトランザクション メッセージで応答します。詳しくは、客室とパッケージのメタデータの定義をご覧ください。