クエリ メッセージは、料金設定やメタデータに対する 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 つの特別なタイプがあります。
ライブ料金: 有効にすると、ユーザーが指定したホテルと旅行プランの組み合わせの料金を積極的に閲覧しているときにクエリが送信され、指定された時間内に回答する必要があります。
コンテキストあり: 有効にすると、Google から送信される各クエリにユーザー コンテキストの推奨事項が含まれ、推奨事項には、特定の宿泊施設や旅程の組み合わせを検索するユーザーの最も一般的なタイプが反映されます。これらの推奨事項に従うと、回答の効率が向上する可能性があります。
メタデータ: 指定されたホテルについて、客室とパッケージに関する詳細をリクエストします。
ライブ料金クエリ
ライブ料金クエリは、ユーザーの検索を受けて Google から送信されるリアルタイムの料金設定更新リクエストです。Google は、ホテルと旅行プランの組み合わせに関する検索リクエストをユーザーから受け取り、料金設定データがない、またはデータが最新でない場合、検索時に料金設定の更新をリクエストします。Google はライブ料金クエリを使って、検索時のリアルタイムの料金を取得し、結果に表示できるようにします。
すべてのライブ料金クエリ リクエストには、一般に最大 4000 ミリ秒の応答時間の制限があります。この上限は、ライブ料金クエリ リクエストで指定されます。特定の機会について、この制限時間内に応答できないと、その機会は入札不可になります。時間内に応答できない場合でも、料金を提供することをおすすめします。それにより料金がキャッシュされて、将来の機会で使用できるようになります。応答のための接続は、10 分間またはパートナーの設定で指定された時間維持されます。
ライブ料金クエリはコンテキスト型でもあります。ユーザーの国、デバイスの種類、定員(宿泊人数)、宿泊客の種類(大人、子ども)といったパラメータに関して料金を取得できます。ライブ料金クエリを使用すると、ユーザーの検索内容と一致させて、より最新の料金情報を表示できます。
ライブ料金クエリは、二次的な料金設定の更新方法です。料金設定更新の主要な方法は、現在もプル配信または変更済み料金配信です。ライブ料金クエリは、Google がホテルと旅行プランの組み合わせによる料金を保持していない場合に役立ちます。
ライブ料金クエリの使用に関するルール
リクエストされた旅行プランが変則的(日程がかなり先の日付であるなど)、またはあまり頻繁に検索されないホテルが指定されているため、その旅行プランに対するキャッシュ データがない場合。
リクエストされた日付がデフォルト以外の日付の場合
:: 注: デフォルトの日付では、ライブ料金クエリをリクエストできません。ライブ料金クエリは、デフォルト以外の日付に対してのみリクエストされます。
通常、Google はライブ料金クエリの結果をキャッシュし、同じホテルや旅行のプランが繰り返しクエリで要求されないようにします。1 つのホテルと旅行プランの組み合わせをリクエストすることも、複数のホテルと 1 つの旅行プランの組み合わせをリクエストすることもできます。
コンテキストを使用したライブ料金機能では、Google はユーザーが使っているデバイスの種類、検索元の国、子どもを含む定員数に基づいて特定のライブ料金リクエストを送信できます。クエリ メッセージとトランザクション メッセージの両方が拡張され、クエリ パラメータを定義する <Context> 要素が追加されました。コンテキストを使用したライブ料金クエリから取得した料金は、条件の組み合わせ(定員別料金の場合)または限定価格(ユーザーの国やデバイスに関する場合)としてキャッシュされます。
コンテキスト クエリを使用する
コンテキスト クエリは、指定されたプロパティまたは旅程の組み合わせについてデータベースを更新するための定期的なリクエストです。これらの組み合わせでよく使用されるユーザー コンテキストのリストが含まれています。限定価格を使用している場合、考えられるすべてのユーザー コンテキストの料金を送信するとコストがかかる可能性があるため、このユーザー コンテキストのリストを使用してレスポンスを制限できます。指定されたユーザー コンテキストの価格のみを返すことで、関連性の高いユーザー クエリの大部分に対応できます。
コンテキスト付きクエリの受信をご希望の場合は、テクニカル アカウント マネージャー(TAM)にお問い合わせください。このようなメッセージを受信する準備ができていることを確認し、クエリでユーザー コンテキストの送信を開始するように構成を調整します。
メタデータ クエリ メッセージ
メタデータ クエリ メッセージには、指定されたホテルの客室とパッケージに関する詳細が含まれています。
メタデータ クエリ メッセージを受信した場合は、リクエストされた宿泊施設の料金を <Result> 要素で指定する <Transaction> メッセージで応答する必要があります。
詳しくは、客室とパッケージのメタデータの定義をご覧ください。
クエリを制御する
このセクションでは、Google からのクエリ メッセージの対象となる宿泊施設や旅行プランを管理する方法を説明します。
旅行プランの対応範囲
料金クエリの対応範囲は、<ItineraryCapabilities> を使用して決定します。日付や最長滞在日数の対応範囲を決定するルールを定義します。
<MaxAdvancePurchase> と <MaxLengthOfStay> では、すべてのホテルと旅行プランの組み合わせに適用されるデフォルト値を設定できます。このほか、ホテルのグループに対しても設定できます。
クエリ メッセージの例
ここでは、料金クエリ メッセージとメタデータ クエリ メッセージの例をいくつか示します。その他の例については、クエリ XML リファレンスをご覧ください。
旅行プランの例
次の例は、2023 年 5 月 23 日以降の 3 泊分について、4 つのホテルの料金更新データを要求する料金 <Query> を示しています。
<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
Check>in2<023-05>-<23/Chec>kin<
Nights3/N>ights<
Prope>rtyL<ist
P>roper<typid5/P>rope<rty
P>roper<typid8/P>roper<ty
Pr>opert<ypid13/P>roper<ty
Pr>ope<rtypid21/Prop>e<rty
>/PropertyList
/Query
この例では、それぞれのホテルについて料金更新データを要求しています。
5/23/18 - 6/26/18
ライブ料金クエリの例
次の例は、500 ミリ秒の応答時間制限のあるライブ料金クエリです。
<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>e<ncySensitive="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> Li<ve Pric>ing Query <request >--
< Chec>k<in2023->05-<23/Checkin>
<Nights2/Nig>h<ts
DeadlineMs500/DeadlineMs
!-- The deadline represents the timeframe by which a response will need to be
received by. This element is only displayed for a> Li<ve Pricing Q>uery <request >--
Pr<opertyLis>t
< Pro>perty678<1291/Property
/PropertyList
!-- Note that Context tags> ar<e poten>t<ially repeatable --
Context
!-- The total number of guests occupying> the <room (adu>l<ts+childre>n) --<
Occupancy3/>Occupan<cy
Oc>c<upancyDeta>i<ls
NumAdults2/NumAdults
!-- In this example one of the >3 guest<s is a 5>yr old ch<ild --
C>hildren<
>Child< age="5">;</
/Children
/OccupancyDetails
!-- The user was locate>d in <the US when> t<his search w>a<s made --
UserCountryUS/UserCountry
!-- The user was searching from >a mob<ile device> at th<e time of s>ear<ch --
> < UserDevicemobile/UserDevice
/Context
/Query
この例では、1 つのホテルの料金をリクエストしています。
6/23/23 - 6/25/23
このクエリに対するトランザクション メッセージの応答のサンプルは、料金と客室在庫(トランザクション)XML リファレンスをご覧ください。
コンテキストありのクエリの例
With Context クエリの例を次に示します。
コンテキストを含む基本クエリ
<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
Check>in2<023-05>-<23/Chec>kin<
Nights2/Nights
> Prop<ertyContextList>
Pr<opertyCo>ntext
< Property867<5309/Property
!-- In the future, device m>ight be< specif><ied --
> <ContextUserC><ountryUS>/UserCo<untry/C><ontext
> <ContextUserC><ountryGB>/User<Country/Context
> /<PropertyContext>
Pr<opertyCo>ntext
< Property867<5310/Pro>perty
< Property867<5311/Pr><operty
> <ContextUserC><ountryCA>/User<Country/Context
> < /PropertyContext
>/<Proper>tyContextList
/Query
コンテキスト付きクエリ(占有率を含む)
<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
Check>in2<025-07>-<10/Chec>kin<
Nights2/Nights
> Prop<ertyContextList>
Pr<opertyCo>ntext
< Property867<5309/Pr>operty
< >Context
< UserCountryU<S/UserCo>untry
< /Cont<ext
>Occupan<cy3/Occupancy
> Occup<ancyDetai>l<s
>NumAdults<2/NumAdu>lts
< Children
> Chi<ld age=&q>uot;7&q<uot;/
/Ch>ildre<n
/Occupan>cyDet<ails
/Prope>rtyCont<ext
>Propert<yContext
> P<roperty>8675310/P<roperty
> < Context
> Us<erCountr>yGB/Use<rCountry
> < /Context
< Occupa>ncy1/Occupancy
< Occup<ancyDetail>s
< NumAdul>ts1/NumAdult<s
/Occupan>cyD<etails
/Property>C<ontext>
/PropertyContextList
/Query
コンテキスト クエリでは、ユーザーの国コンテキストのみを指定します。将来的には、このようなクエリでユーザーのデバイスを指定することも可能になる可能性があります。
チェックイン期間
変更済み料金配信を使用する場合、クエリ メッセージの構造は、チェックイン期間、完全一致旅行プラン、期間指定旅行プランで使用するヒントの種類によって異なります。これらのヒントの種類について詳しくは、ヒント応答メッセージをご覧ください。
チェックイン期間に関する料金 <Query> メッセージの例を次に示します。
<?xml version="1.0" encodin>g<=&quo>t;U<TF-8">;?
Query
< Fi>rstDate202<3-05-23/>FirstDate
< LastDat>e20<23-05->2<6/LastD>ate<
Nights3/N>ights<
Prope>rtyL<ist
P>roper<typid5/P>rope<rty
P>roper<typid8/P>roper<ty
Pr>opert<ypid13/P>roper<ty
Pr>ope<rtypid21/Prop>e<rty
>/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" encodin>g<=&quo>t;U<TF-8">;?
Query
< Fi>rstDate202<3-05-23/>FirstDate
< LastDat>e20<23-05-26/LastD>a<te
AffectedNi>ght<s3/AffectedN>ights<
Prope>rtyL<ist
P>roper<typid5/P>rope<rty
P>roper<typid8/P>roper<ty
Pr>opert<ypid13/P>roper<ty
Pr>ope<rtypid21/Prop>e<rty
>/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" encodin>g<=&quo>t;U<TF-8"?
Query
> Hote<lInfoPro>pert<ies
P>roper<typid5/P>rope<rty
P>roper<typid8/P>roper<ty
Pr>opert<ypid13/P>roper<ty
Pr>ope<rtypid21/Property
>/<HotelI>nfoProperties
/Query
このタイプのクエリ メッセージには、客室とパッケージのメタデータを定義するトランザクション メッセージで応答します。詳しくは、客室とパッケージのメタデータの定義をご覧ください。