會議室組合

你可以運用房型套裝組合為單一房源定義多個房型,也能將房型的行程與費率功能 (費率隨附的額外服務和銷售條件) 相互搭配,而不僅限於標準價格。

重要概念和工作流程

房型套裝組合可讓您提供實體房型與不同服務套裝方案的額外組合。

範例

下圖顯示電腦和行動裝置上的 Room 套裝組合範例:

含圖片的房型套裝組合

這個範例是 Room 套裝組合的行動版,包含所需入住人數的所有房型,以及各房型的圖片。

注意:沒有圖片的房型組合會改用床的預留位置圖片。

費率功能

下圖顯示費率功能的範例:

搜尋結果中顯示的客房組合和房價功能,與標準房價的選取程序相同。

房型套裝組合

您可以在交易訊息中定義房型套裝組合和房價功能。交易訊息的根元素為 <Transaction>

「交易」訊息的結構取決於您執行的動作:定義房型組合或房價功能的相關中繼資料,或是更新房型組合的價格或供應情形。

中繼資料
<PropertyDataSet> 元素中,使用 <PackageData> 定義房型組合和費率功能中繼資料。詳情請參閱「定義房間和套件中繼資料」。房型套裝組合會使用現有的 <RoomData> 元素來描述實體房間。
價格與空房資訊
在每個套裝行程/行程組合的 <Result> 中,使用 <RoomBundle> 元素定義房型套裝組合的價格和供應情形。詳情請參閱「定義價格和供應情形」。

如果未使用房型套裝組合,則必須提供基本房價、稅金和其他費用 (位於 <Result> 下方),如果使用房型套裝組合,則可移除這些資訊。如果您使用正式帳戶導入 Room Bundles,請按照下列步驟操作:

  1. <Result> 下方加入基本房型的房價、稅金和其他費用,並新增與基本房型套裝組合相符的房型套裝組合。

  2. 如有需要,請在同一 <Result> 區塊中,為該房源的其他房型或不同服務套裝組合定義其他房型套裝組合。

  3. 房型套裝組合推出後,請移除基本房型的房價、稅金和其他費用。

房型套裝組合中繼資料

定義房型套裝組合和房價功能時,通常會預先定義房型套裝組合的說明、房價包含的其他服務,以及其他資訊。這項資訊稱為「會議室組合」中繼資料。然後在價格更新中參照這項中繼資料,但不要將其納入價格更新訊息。

定義 Room Bundle 時,請使用現有的 <RoomData> 元素描述實體房型,並使用 <PackageData> 元素描述費率功能和條款,這些內容不屬於實體房型描述。

使用 <RoomData><PackageData> 元素可大幅縮減飯店清單和飯店價格動態饋給的大小,因為這會減少交易訊息中傳送的重複資料量。

舉例來說,每個行程通常都會重複顯示房間名稱和說明等資料。您可以使用 <RoomData><PackageData> 元素定義這類資料一次。然後,系統會將行程專屬的 Room Bundle 資料與儲存的房型和套裝行程定義合併,並顯示給使用者。

Google 會比對中繼資料與行程專屬資料,然後顯示廣告內容。系統會進行特殊處理,合併 <RoomData><PackageData> 元素中的名稱和說明,以便在 <RoomData> 中描述實體房型,並在 <PackageData> 中提供房價功能和套裝行程詳細資料。

如果為單一房型或房型組合定義房型資料和套裝行程資料,Google 會在廣告輸出內容中同時納入這兩項資料,並以連字號分隔。

相片指南

傳送房間相片時,請遵循下列規範,確保相片會向使用者顯示:

  • 請提供各房型的相片,包括無障礙客房的相片,例如設有各種衛浴設備的無障礙客房,像是可供輪椅進出的淋浴間。

  • 請提供至少四張房間相片,以及至少一張浴室相片。

  • 相片應為房間本身,而非房源。最重要的相片是床、整個房間、浴室、起居空間、房內景觀 (同一張相片中包含房內其他部分),以及陽台、中庭或露台 (如適用)。

    此外,拍攝書桌、廚房、咖啡/茶飲沖泡設備和獨特客房特色,也有助於提升房源品質。

  • 請避免上傳人物和房源相片,例如外觀或房源設施、觀光/旅遊和食物。

  • 避免拍攝物體的特寫鏡頭,例如高腳杯的特寫。

  • 避免出現品牌和品牌宣傳元素,但如果照片是拍攝整個浴室區域,則可包含標示或品牌盥洗用品。相片中不應出現大量文字、標誌或浮水印。

  • 提供視野寬廣的標準橫向相片,避免使用魚眼效果和扭曲的相片。以最高解析度拍攝相片,提升排名。你不需要提交各種解析度的同一張相片。

資料優先順序

系統會從所有來源收集並合併 Room Bundle 資料,並使用優先順序規則,為特定飯店、行程和 Room Bundle 產生最終資料。優先順序由低至高如下:

  1. (最低) 合作夥伴資料
  2. 房源資料
  3. <RoomData>,其中 <RoomID><RoomBundle> 區塊中的 <RoomID> 相符
  4. <PackageData>,其中 <PackageID><RoomBundle> 區塊中的 <PackageID> 相符
  5. (最高) <RoomBundle>

定義價格和供應情形

如要定義房型套裝組合的價格和供應情形,請在每個套裝組合或行程組合的交易訊息中使用 <RoomBundle> 元素。<RoomBundle> 元素應位於 <Result> 元素內。以下顯示兩個 <RoomBundle> 元素的程式碼範例。請注意,在本範例中,這兩個 <RoomBundle> 元素會使用 <RoomID><PackageID> 參照房間和套件中繼資料。

對於每個 <Result>,所含的房型組合集會覆寫該屬性或行程組合的現有組合。如果未在 <Result> 元素中定義任何房型套裝組合或費率功能,系統會移除所有房型套裝組合,搜尋結果中只會顯示該飯店或行程的基本房型。

請務必使用 <Name> 等元素,讓房型組合對潛在顧客更具吸引力,並確保這些元素與飯店到達網頁相符。在本例中,您會在 metadata 中定義名稱和其他說明資訊。

<RatePlanID> 為選用項目,代表房型和套裝組合的專屬 ID。強烈建議使用 RatePlanID 做為變數,建構動態到達網頁 (舊稱銷售點) 網址。為獲得最佳成效,長度應在 50 個字元以內。詳情請參閱使用變數和條件

房型套裝組合的選用元素如下:

<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>

在正式帳戶中導入 Room Bundle 時,請在啟用 Room Bundle 後移除 <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>

定義房間和套件中繼資料

如要定義 Room Bundle 中繼資料,請在交易訊息的 <PropertyDataSet> 元素內使用 <PackageData><RoomData> 元素。

您可以在與價格和供應情形資料分開的交易訊息中,定義房型和套裝行程中繼資料。預先定義這項資料後,價格更新就不必包含重複資訊,例如每個行程中每個房型或套裝組合的說明、相片網址、設施和其他資料。

Google 會儲存中繼資料,並在顯示廣告時插入。你隨時可以透過新的交易訊息更新房源和套裝組合中繼資料。

在交易訊息中,您會在每個區塊設定套裝行程 ID 和房型 ID,然後在價格更新的 <Result> 區塊中參照這些 ID。

如果房型和套裝行程資料有異動 (例如在房源中新增房型),請傳送含有更新房型和套裝行程資料的新交易訊息,Google 就會以新資料取代現有的房型或套裝行程中繼資料。

Google 建議您在初始設定期間定義中繼資料。預先定義中繼資料後,您只需要在價格更新中參照 <RoomID><PackageID> 值,不必再次納入所有資訊。Google 會使用這些 ID,將會議室和會議室套裝組合與儲存的中繼資料進行比對。這可大幅縮減交易訊息的整體大小。

因為房型或行程組合的價格變動頻率遠高於房型或套裝行程說明,因此定義一次中繼資料,然後參照該資料,可更有效率地使用交易訊息。此外,使用中繼資料而非定義內嵌資料,可避免聊天室說明不符等錯誤。

建議您採用下列最有效率的方法,分別定義中繼資料和價格:

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

入住人數和容量

定義房型組合時,請務必瞭解入住人數容納人數的差異:

可住人數
房型套裝組合適用的房客人數。舉例來說,「蜜月套裝方案」的入住人數為兩人。您可以使用 <PackageData><RoomBundle> 元素的 <Occupancy> 子元素,設定套裝組合入住人數的值。
容量
會議室可容納的人數上限。客房的容納人數一律等於或高於入住人數。舉例來說,飯店的「蜜月套房」最多可入住六人,但你為兩位房客設定套裝組合價格。您可以使用 <RoomData> 元素的 <Capacity> 子元素,設定套件容量的值。

為房型套裝組合定價時,必須提供套裝組合適用的房客人數價格 (套裝組合 <Occupancy> 元素中指定的值)。如果 <Occupancy> 設為 2,則該套裝組合的價格必須為兩人價格。你無法將 <Occupancy> 設為四位房客,並為兩位房客設定套裝組合的價格。

共用客房

您也可以在房型組合中使用入住人數和容納人數,設定共用房型 (例如青年旅館) 的價格。舉例來說,如要為有 8 張床的宿舍房設定每人價格,請將入住人數設為 1,容量設為 8,並在 <RoomData> 名稱中註明。查看範例

更新房型套裝組合

本節說明如何移除已停售的房型組合,以及如何更新現有房型組合的價格。

移除房型套裝組合

房型套裝組合的移除方式與飯店價格不同。

如要從房源資訊中移除房型或行程組合,請將 <Result> 元素的 <Baserate> 設為 -1。如要移除特定房型或行程的房型組合,請從交易訊息的 <Result> 區塊中移除 <RoomBundle> 元素。

資料動態饋給中的房型組合視為一組,數量從 0 到數十個不等。將 Room Bundles 寄送給 Google 時,請寄送目前完整的套件組。您不會變更個別房型套裝組合的值,將先前可用的房型標示為無法使用。最新交易訊息中的任何組合集都會取代目前的組合集。

舉例來說,假設有 A、B、C 和 D 四個套裝組合。您首先傳送訊息,定義房型組合 A、B、C 和 D。如果套裝組合 B 售完,請只重新傳送套裝組合 A、C 和 D 的整組資料。如果所有房型套裝組合都已售完,請傳送空白的房型套裝組合。

價格調整

如要變更房型套裝組合的價格,請在 <Result> 元素中設定新的 <Baserate>

每次更新交易訊息中的房型/行程 <Result> 區塊時,都必須為每個 <Result> 包含完整的可用房型套裝組合。Google 會以新套組取代現有 Room Bundles 套組。如果沒有在 <Result> 中加入任何房型套裝組合,Google 會移除該房型或行程的所有房型套裝組合。

中繼資料更新

您可以使用 Google 的 <Query> 回應,更新 Room Bundle 中繼資料。

您會使用交易訊息回覆查詢訊息,定義指定飯店的客房和套裝行程中繼資料。詳情請參閱「查詢訊息」。