會議室組合

你可以運用房型套裝組合為單一房源定義多個房型,也能將房型的行程與其他服務及銷售條件相互搭配,而不僅限於標準價格。

重要概念和工作流程

透過房型套裝組合,你可以提供更多實體房型組合,並搭配不同的服務套裝方案。

範例

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

含圖片的房型套裝組合

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

注意:如果房型套裝組合沒有圖片,系統會以床的預留位置圖片取代。

費率功能

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

在搜尋結果中顯示房型套裝組合和房價功能時,會採用與標準房價相同的選取程序。

房型套裝組合

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

交易訊息的結構取決於你要執行的操作:定義房型套裝組合或房價功能的中繼資料,或是更新房型套裝組合的價格或供應情形。

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

<Result> 中,如果未與房型套裝組合一起使用,則必須提供房價、稅金和其他費用,但如果與房型套裝組合一起使用,則可以移除。如果您要使用實際帳戶導入 Room 套件,請按照下列步驟操作:

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

  2. 如有需要,請在該屬性或不同服務套件的相同 <Result> 區塊中,定義額外的 Room Bundle。

  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> 等元素,讓房型套裝組合更吸引潛在客戶,並確保套裝組合與飯店的到達網頁相符。在這個範例中,您會在中繼資料中定義名稱和其他說明資訊。

<RatePlanID> 為選用項目,代表房型和套裝組合的專屬 ID。強烈建議您使用 RatePlanID 做為變數,建構動態到達網頁 (舊稱「銷售點」) 網址。詳情請參閱「使用變數和條件」。

Room 套裝組合中的選用元素如下:

<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 會為您儲存中繼資料,並在廣告顯示時將其插入廣告中。您隨時可以使用新的交易訊息更新房間和套裝行程中繼資料。

在交易訊息中,您需要在價格更新的 <Result> 區塊中參照的各個區塊,設定套件 ID 和客房 ID。

如果房型和套裝行程資料有所變更 (例如,在房源中新增房型類型,或傳送包含更新後房型和套裝行程資料的新交易訊息),Google 會將房型或套裝行程的現有中繼資料取代為新資料。

Google 建議您在初始設定期間定義中繼資料。預先定義中繼資料後,您只需要在價格更新中參照 <RoomID><PackageID> 值,而不需要再次加入所有資訊。Google 會使用這些 ID 來比對房間和 Room Bundle 與儲存的中繼資料。這樣一來,交易訊息的整體大小就能大幅縮減。

由於房型或行程組合的價格變動頻率遠高於房型或套裝行程的說明,因此只要定義一次中繼資料,然後再參照即可更有效率地使用交易訊息。此外,如果使用中繼資料,而非在內文中定義資料,就能避免出現如聊天室說明不相符等錯誤。

如要分別定義中繼資料和定價,建議且最有效率的方法如下:

<!-- 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> 子項元素,設定套件的容量值。

為 Room 套裝組合定價時,您必須提供套裝組合的目標房客人數 (即套件的 <Occupancy> 元素中指定的值)。如果 <Occupancy> 設為兩個,則該套裝行程的價格必須是兩人價格。您無法將 <Occupancy> 設為四位房客,並將套裝組合的價格設為兩位房客。

共用客房

你也可以在房型套裝組合中使用住房人數和人數上限,設定共用房型住宿的價格,例如青年旅館。舉例來說,如要為有 8 張床的宿舍房設定每人價格,請將可住人數設為 18,並在 <RoomData> 名稱中以此類推。查看範例

更新房型套裝組合

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

移除房型套裝組合

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

如要從商品目錄中移除房型或行程組合,請將 <Result> 元素的 <Baserate> 設為 -1。如要移除特定會議室或行程的 Room Bundle,請從交易訊息的 <Result> 區塊中移除 <RoomBundle> 元素。

資料動態饋給中的房型套裝組合視為一組,數量介於 0 到數十之間。將 Room Bundle 傳送給 Google 需要傳送目前的完整組件。您不會變更個別房型套裝組合的值,將先前可用的房型標示為無法使用。最新的交易訊息中包含的任何套裝組合都會取代目前的組合。

舉例來說,有 A、B、C 和 D 等套裝組合。您首先傳送訊息,定義房間組合 A、B、C 和 D。日後,如果套裝組合 B 售罄,您只需重新傳送套裝組合 A、C 和 D 即可。如果所有 Room 套裝組合均已售罄,請傳送一組空白的 Room Bundle。

價格調整

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

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

中繼資料更新

您可以透過回應 Google 的 <Query>,更新 Room 套件中繼資料。

您以 Transaction 訊息回應 Query 訊息,該訊息定義了指定飯店的會議室和套件中繼資料。詳情請參閱「查詢訊息」。