条件の組み合わせを使用して、1 軒の宿泊施設に対し複数の客室タイプを定義したり、標準料金以外の客室の宿泊プランと料金特典(販売料金と条件が設定された追加サービス)の組み合わせをユーザーに提示したりできます。
主なコンセプトとワークフロー
条件の組み合わせを使用すると、物理的な客室タイプと複数のサービス パッケージを追加して組み合わせて提供できます。
例
次の画像は、パソコンとモバイル デバイスでの客室の組み合わせの例を示しています。
画像を含む条件の組み合わせ

この例は、必要な宿泊人数に対応するすべての客室タイプと、それぞれの客室画像で構成される、客室と条件の組み合わせのモバイル バージョンです。
注: 画像のない宿泊プランは、ベッドのプレースホルダ画像に置き換えられます。
評価機能
次の図に、料金特典の例を示します。
条件の組み合わせや料金特典が検索結果に表示される仕組みは、標準の客室料金と同じ選択プロセスに則っています。
条件の組み合わせ
条件の組み合わせや料金特典は、Transaction メッセージで定義します。Transaction メッセージのルート要素は <Transaction>
です。
Transaction メッセージの構造は、条件の組み合わせや料金特典についてのメタデータの定義や、条件の組み合わせの料金設定や空室状況を更新するなど、使用目的により異なります。
- メタデータ
- 条件の組み合わせや料金特典のメタデータは、
<PropertyDataSet>
要素の<PackageData>
で定義します。詳しくは、客室とパッケージのメタデータを定義するをご覧ください。条件の組み合わせでは、物理的な客室の説明に既存の<RoomData>
要素を使用します。 - 料金と空室状況
- パッケージと宿泊プランの組み合わせごとに、
<Result>
内の<RoomBundle>
要素を使用して、条件の組み合わせの料金と空室状況を定義します。詳細については、料金と空室状況を定義するをご覧ください。
基本の客室の料金、税金、その他の手数料は、条件の組み合わせで使用しない場合は <Result>
で必須ですが、条件の組み合わせで使用する場合はその必要はありません。実際のアカウントを使用してルーム バンドルを実装する場合は、次の手順を行います。
基本の客室料金、税金、その他の手数料を
<Result>
に含め、基本の条件の組み合わせに一致する条件の組み合わせを 1 つ追加します。必要に応じて、同じ
<Result>
ブロック内で、その宿泊施設の他の客室タイプや別のサービス パッケージに関して、追加の条件の組み合わせを定義します。条件の組み合わせをリリースしたら、基本の客室料金、税金、その他の手数料を削除します。
条件の組み合わせのメタデータ
条件の組み合わせや料金特典を定義する際は、通常は事前にその条件の組み合わせについての説明、料金に含まれる追加サービス、その他の情報を定義します。この情報は、条件の組み合わせのメタデータと呼ばれます。この設定したメタデータは料金設定の更新の際に参照しますが、料金の更新メッセージには含めることはできません。
条件の組み合わせを定義する際は、既存の <RoomData>
要素を物理的な客室の説明に、<PackageData>
要素を(物理的な客室の説明に含まれない)料金特典と条件に使用します。
<RoomData>
要素と <PackageData>
要素を使用すると、Transaction メッセージで送信される重複データの量を削減できるため、ホテルリストとホテル料金フィードのサイズを大幅に削減できます。
たとえば、通常は客室名や説明などのデータはすべての宿泊プランで繰り返し使われるため、<RoomData>
要素と <PackageData>
要素を使用してこのタイプのデータを一度だけ定義しておいて、この定義済みの客室とパッケージ データに、後から宿泊プラン固有の条件の組み合わせデータを統合してエンドユーザーに表示されるようにすることができます。
Google は、お客様から提供されたメタデータと、宿泊プラン固有のデータを照合して、該当する広告コンテンツを表示します。物理的な客室について <RoomData>
で説明し、料金特典とパッケージの詳細を <PackageData>
に含めることができるよう、<RoomData>
要素と <PackageData>
要素から名前と説明を組み合わせる特別な処理方法があります。
1 つの客室や条件の組み合わせに対して客室データとパッケージ データの両方を定義する場合、Google はそれら両方をハイフンで区切って広告出力に含めます。
写真に関するガイドライン
部屋の写真を送信する際は、写真がユーザーに表示されるように、次のガイドラインに沿って写真を撮影してください。
各客室タイプの写真を送信します。これには、バリアフリーの客室の写真も含まれます(例: 車椅子対応のシャワーなど、さまざまなバスルーム設備が備わったバリアフリーの客室)。
部屋の写真は 4 枚以上、バスルームの写真を 1 枚以上含めてください。
写真は宿泊施設全体ではなく、部屋自体を撮影したものにする必要があります。最も重要な写真は、ベッド、部屋全体、バスルーム、リビング スペース、部屋からの眺め(部屋の残りの部分が同じ写真に写っている)、該当する場合はバルコニー、パティオ、テラスの写真です。
デスク、キッチン、コーヒーメーカー、客室の特徴的な部分の写真も撮影しておくと便利です。
人物や物件(外観や物件の設備、観光/観光スポット、食べ物など)の写真は避けてください。
脚付きグラスなどの被写体のクローズアップは避けてください。
ブランドやブランド表示は避けてください。ただし、ラベルやブランドが付いたトイレタリー用品は、バスルーム全体を撮影した写真に含めてかまいません。写真には、長文を寄せ集めたもの、ロゴ、透かしは含めないでください。
広角の標準の横向き(水平)写真を提供します。魚眼や歪んだ写真は避けてください。高解像度で写真を撮影すると、ランキングが向上します。同じ写真をさまざまな解像度で送信する必要はありません。
データの優先順位
条件の組み合わせデータは、指定されたホテル、宿泊プラン、条件の組み合わせの最終データを生成するためにすべてのソースから収集され、優先順位ルールを使用して組み合わされます。優先度が低いデータから高いデータの順に並べると次のようになります。
- (最下位)パートナー データ
- 宿泊施設データ
<RoomData>
(<RoomID>
は<RoomBundle>
ブロックの<RoomID>
に一致)<PackageData>
(<PackageID>
は<RoomBundle>
ブロックの<PackageID>
に一致)- (最上位)
<RoomBundle>
料金と空室状況を定義する
条件の組み合わせの料金設定と空室状況を定義するには、個々のパッケージまたは宿泊プランの組み合わせの Transaction メッセージの <RoomBundle>
要素を使用します。<RoomBundle>
要素は <Result>
要素内に配置する必要があります。2 つの <RoomBundle>
要素のサンプルコードを以下に示します。この例では、2 つの <RoomBundle>
要素が、<RoomID>
と <PackageID>
を使用して客室とパッケージのメタデータを参照しています。
各 <Result>
要素では、指定されている条件の組み合わせによって宿泊施設または宿泊プランの既存の組み合わせが上書きされます。<Result>
要素で条件の組み合わせや料金特典を定義していない場合、すべての条件の組み合わせが削除され、そのホテルや宿泊プランの基本の客室だけが検索結果に表示されます。
必ず、<Name>
などの要素を使用して、条件の組み合わせを潜在顧客にとってより魅力的なものとし、またホテルのランディング ページと一致するようにしてください。この例では、名前やその他の説明的な情報をメタデータで定義します。
<RatePlanID>
は省略可能で、客室とパッケージを組み合わせた一意の ID です。動的なランディング ページ(以前の POS)の URL を作成する場合は、RatePlanID を変数として使用することを強くおすすめします。詳細については、変数と条件の使用をご覧ください。
条件の組み合わせでは、次の要素は省略可能です。
<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>
公開中のアカウントに条件の組み合わせを実装する場合は、条件の組み合わせを有効にした後に <Baserate>
を削除します。
<Result>
<!-- Note: When using Room Bundles, the top level result price is no
longer necessary. -->
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Base Room Bundle -->
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P54321</PackageID>
<Baserate currency="USD">199.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>060773-P54321</RatePlanID>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Price for 4 ("occupancy") -->
<Baserate currency="USD">298.88</Baserate>
<Tax currency="USD">42.12</Tax>
<OtherFees currency="USD">10.00</OtherFees>
<RatePlanID>436233-P12345</RatePlanID>
</RoomBundle>
</Result>
客室とパッケージのメタデータを定義する
条件の組み合わせのメタデータを定義するには、Transaction メッセージの <PropertyDataSet>
要素内の <PackageData>
要素と <RoomData>
要素を使用します。
客室とパッケージのメタデータは、料金設定と空室状況のデータとは別の Transaction メッセージで定義します。このデータを事前に定義しておくことで、料金の更新の際にすべての宿泊プランのすべての客室やパッケージについての説明、写真の URL、設備、その他のデータなどの重複する情報を含める必要がなくなります。
Google はお客様のメタデータを保存し、広告が表示される際にそのデータを挿入します。客室とパッケージのメタデータは、新しい Transaction メッセージを使っていつでも更新できます。
Transaction メッセージでは、各ブロックでパッケージ ID と客室 ID を設定し、後で料金更新データの <Result>
ブロックでそれらを参照します。
客室とパッケージのデータを変更する場合(たとえば新しい客室タイプを宿泊施設に追加するなど)、更新した客室とパッケージのデータを含む新しい Transaction メッセージを送信します。Google は、客室やパッケージに関する既存のメタデータを新しいデータで置き換えます。
メタデータの定義は、初期設定時に行うことをおすすめします。事前にメタデータを定義しておくと、その情報をもう一度すべて含めるのではなく、<RoomID>
と <PackageID>
の値を料金設定の更新データ内で参照するだけでよくなります。Google はこれらの ID を使用して、客室および条件の組み合わせを保存されているデータと照合します。これにより、Transaction メッセージの全体的なサイズを大幅に削減できます。
客室や宿泊プランの組み合わせの料金は、客室やパッケージの説明と比べてかなり頻繁に変更されるため、メタデータを定義してから後で参照することで、もっと効率的に Transaction メッセージを利用できます。さらに、データをインラインで定義する場合と比べ、メタデータを使用すると客室の説明の不一致といったエラーを排除することができます。
メタデータと料金設定を個別に定義する場合におすすめの最も効率的な方法を以下に示します。
<!-- Efficient method of defining Room Bundles -->
<!----- Occupancy of 2 and 4 example ------>
<Transaction timestamp="2019-04-18T16:20:00-04:00" id="12345678">
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<!-- Note: Once defined it does not have to be repeated for future Transaction Messages. -->
<!-- PropertyDataSets can also be defined and sent in their own Transaction Message -->
<!-- separately from pricing. Google can be configured to pull just PropertyDataSets -->
<!-- once per day (or on a predefined frequency). -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate 4, but bundle is for 2 -->
<Capacity>4</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/imageQueen.jpg</URL>
<Caption>
<Text text="A bright and breezy way to enjoy your mornin'
cuppa tea." language="en"/>
<Text text="Une façon lumineuse et aérée pour profiter
de votre journée tasse de thé." language="fr"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate 4 and bundle is for 4 -->
<Capacity>4</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/imageKing.jpg</URL>
<Caption>
<Text text="A bright and breezy way to enjoy your mornin'
cuppa tea." language="en"/>
<Text text="Une façon lumineuse et aérée pour profiter
de votre journée tasse de thé." language="fr"/>
</Caption>
</PhotoURL>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P54321</PackageID>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<BreakfastIncluded/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<Result>
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Base Room Bundle -->
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P54321</PackageID>
<Baserate currency="USD">199.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>060773-P54321</RatePlanID>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Price for 4 ("occupancy") -->
<Baserate currency="USD">298.88</Baserate>
<Tax currency="USD">42.12</Tax>
<OtherFees currency="USD">10.00</OtherFees>
<RatePlanID>060773-P12345</RatePlanID>
</RoomBundle>
<!-- Continue providing all available RoomBundle rates under matched
property for any other occupancies -->
</Result>
</Transaction>
定員数と収容人数
条件の組み合わせを定義する際は、定員数と収容人数の違いを把握しておく必要があります。
- 利用率
- 条件の組み合わせが適用される対象となる宿泊客の数。たとえば、「ハネムーン パッケージ」の定員数は 2 名です。パッケージの定員数は、
<PackageData>
要素または<RoomBundle>
要素の<Occupancy>
子要素を使用して設定します。 - 容量
- 客室が物理的に収容できる最大人数。客室の収容人数は、必ず定員数と同じかそれ以上となります。たとえば、お客様のホテルの「ハネムーン スイート」の最大収容人数が 6 人であっても、条件の組み合わせには宿泊客 2 名分の料金を設定します。パッケージの収容人数は、
<RoomData>
要素の<Capacity>
子要素を使用して設定します。
条件の組み合わせの料金を設定する際は、その条件が対象としている宿泊客の数に対し料金を設定します(条件の <Occupancy>
要素で指定されている値)。<Occupancy>
が 2 名に設定されている場合、そのパッケージの料金は 2 名分にする必要があります。<Occupancy>
を宿泊客 4 名に設定した場合、条件の料金を 2 名分にすることはできません。
相部屋
条件の組み合わせで定員数と収容人数を使用して、相部屋の宿泊施設(ホステルなど)の料金を設定することもできます。たとえば、8 台のベッドを備えたドミトリーの 1 名あたりの料金を設定するには、定員数を 1
に設定し、収容人数を 8
に設定して、<RoomData>
名で相部屋であることを明示します。例を参照。
条件の組み合わせを更新する
このセクションでは、利用できなくなった条件の組み合わせを削除する方法と、既存の条件の組み合わせの料金を更新する方法について説明します。
条件の組み合わせの削除
条件の組み合わせの削除方法は、宿泊料金の削除方法とは異なります。
客室または旅行プランの組み合わせを在庫から削除するには、<Result>
要素の <Baserate>
を -1
に設定します。指定した客室や宿泊プランの条件の組み合わせを削除するには、Transaction メッセージの <Result>
ブロックから <RoomBundle>
要素を削除します。
データフィード内の条件の組み合わせは、セットと見なされます(数は 0 から数十までの任意)。条件の組み合わせを Google に送信する場合は、現在の完全なセットを送信します。個別の条件の組み合わせの値を変更して、以前に利用可能だったものを利用不可としてマークすることはできません。最新の Transaction メッセージに存在する条件の組み合わせのセットが、現行のセットを置き換えます。
たとえば、条件の組み合わせ A、B、C、D があるとします。まず、条件の組み合わせ A、B、C、D のセットを定義するメッセージを送信します。その後、条件の組み合わせ B が完売となった場合は、条件の組み合わせ A、C、D のみが含まれる完全なセットを再送信します。条件の組み合わせがすべて完売となった場合は、条件の組み合わせの空セットを送信します。
価格調整
条件の組み合わせの料金を変更するには、<Result>
要素で新しい <Baserate>
を設定します。
Transaction メッセージで客室と宿泊プランの <Result>
ブロックを更新するたびに、個々の <Result>
で利用できる条件の組み合わせ一式を指定する必要があります。Google は条件の組み合わせの既存セットを新しいセットに置き換えます。<Result>
で条件の組み合わせを指定しないと、Google はその客室や宿泊プランの条件の組み合わせをすべて削除します。
メタデータの更新
Google から <Query>
への応答で、条件の組み合わせのメタデータを更新します。
Query メッセージには、指定されたホテルの客室とパッケージのメタデータを定義する Transaction メッセージで応答します。詳細については、Query メッセージをご覧ください。