交易 (資源資料) 訊息

總覽

ARI 交易 (資源資料) 訊息會定義每個房源的房型和套裝行程 (或費率方案) 相關資訊。每個房型資料都包含一個獨特 ID (RoomID)、本地化名稱、說明,以及房型相片的網址。每個套件資料都包含專屬 ID (PackageID)、本地化名稱、說明、可容納人數和附加價值。

您可以使用交易訊息執行以下操作:

  • 定義一或多個資源的資料。
  • 定義每個房源的房型和套裝行程資訊。
  • 控管產品項目。

此外,您也可以設定動作來執行下列操作:

  • 為房源新增房型和套裝行程。

  • 從房源中移除房型和套裝行程。

  • 為套裝行程或房源新增會員點數,也就是獎勵計畫。

如需交易訊息範例,請參閱「交易 (資源資料) 範例」。

必要和選用元素

XML 參考資料會說明必要和選用元素。如要進一步瞭解屬性和子元素,請參閱「交易 (資源資料) 元素和屬性」。

語法和結構定義

建立交易訊息時,請參考「交易 (資源資料) 語法」範例,確保您遵循正確的格式。

您可以使用第三方 XML 工具 (例如 xmllint),在提交至 Google 前,先驗證動態饋給是否符合已發布架構。如要瞭解交易訊息結構定義,請參閱飯店廣告結構定義

指南規範

請遵守下列交易訊息指南:

行動:

delta:用於新增或更新新的房型和套裝方案 (費率方案)。

overlay:用於將房源的所有房型和套裝行程替換為新組合。必須包含所有你仍想販售的房型和房價方案資訊。

支援的語言:

在「名稱」、「說明」和「標題」欄位中,指定一或兩種語言 (英文,以及必要時的房源當地語言)。如有需要,您可以新增超過兩種語言。

房型和套裝行程:

更新房型或套裝行程時,請務必傳送該房型或套裝行程的所有相關資訊。舉例來說,新增相片時,您必須一併提供名稱和說明。

<AllowablePackageIDs><AllowableRoomIDs> 是選用項目,如果未設定,系統會自動產生房型和房價方案的組合。你仍須傳送房型和房價方案 ID 的空房情形和房價。這些元素可讓你控制產品,並停用系統不再支援的組合。

每當房型或套裝行程有變更,或是需要新增房型或套裝行程的重要詳細資料時,請向 Google 傳送交易訊息更新。

會員點數:

如要在套件中加入或排除獎勵方案,請向 Google 設定會員積分設定。這會顯示與該套裝行程相關的已賺取積分。進一步瞭解會員點數

使用 <MilesIncluded> 元素定義或更新會員方案廣告活動。詳情請參閱「交易(房源資料)」一文。<PackageData> 可納入會員點數。

範例

本節提供 ARI 交易訊息的基本範例,其中使用了必要和選用元素。如要新增或更新房型和套裝行程,請使用 delta 的動作來新增或更新房型和套裝行程,或是使用 overlay 來取代所有房型和套裝行程定義 (刪除舊項目)。

您需要為「名稱」、「說明」和「標題」欄位指定一或兩種語言 (英文,以及必要時的資源本地語言)。接著,請新增房源資料資訊,包括相片連結。

針對 <PropertyID><RoomID>,請使用系統中費率方案和房型 (分別) 使用的 ID。為了確保 Google 正確顯示你的價格和資料,請務必確保系統資料一致。

準備好檔案後,您必須透過 POST 訊息將檔案傳送至下列端點:https://www.google.com/travel/hotels/uploads/property_data

如要進一步瞭解如何推送/POST 訊息,請參閱「推送訊息」。

以下範例說明如何使用 delta 動作設定交易訊息:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="202X-XX-XXT00:00:00-0X:00" id="12345678" partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>PROPERTYID</Property>
      <RoomData>
        <RoomID>ROOMID</RoomID>
        <Name><Text text="ROOM NAME" language="en"/></Name>
        <Description>
          <Text text="ROOM DESCRIPTION TEXT" language="en"/>
        </Description>
        <Capacity>4</Capacity>
        <PhotoURL>
          <Caption><Text text="ROOM PHOTO CAPTION TEXT" language="en"/></Caption>
          <URL>https://LINK TO PHOTO</URL>
        </PhotoURL>
      </RoomData>
      <PackageData>
        <PackageID>BASE</PackageID>
        <Name><Text text="Internet Special" language="en"/></Name>
        <Description><Text text="Direct Booking through Hotel Website" language="en"/></Description>
        <Refundable available="true" refundable_until_days="2" refundable_until_time="12:00"/>
      </PackageData>
  </PropertyDataSet>
</Transaction>

如需更多範例 (例如如何使用 overlay 動作、將房型和套裝方案新增至現有房源資料,以及移除現有的房型和套裝方案),請參閱「交易 (資源資料) 範例」。

使用指南

本節將針對傳送交易訊息時可能遇到的情況提供解決方案。

情境 1:如何移除房型資料

如何移除現有的房型和/或套裝行程資料?

說明

你已為房源傳送多種房型,包括標準大床房和雙人房。裝修期間無法提供所有雙人房型,目前僅提供大床房型。

解決方案

  • 對於已移除或停用的房型和套裝行程 ID,你不需要更新每晚供應房況、房價或房源。
  • 如果房型或套裝方案已移除或停用,請使用 action="overlay" 傳送新的交易訊息,其中只包含仍有效的房型和套裝方案,並排除已移除的房型或套裝方案。

範例

以下 XML 程式碼片段顯示如何使用 overlay 動作移除房型。

以下是包含 King 和 Queen 房型的原始 delta 動作:

  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
      </PackageData>
    <RoomData>
      <RoomID>Queen</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <Capacity>2</Capacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>

接著,您可以設定 overlay 來移除 Queen 房型,並保留 King 房型:

  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>

情境 2:如何使用 AllowablePackageID 控制產品

當套裝方案依房型分組時,如何控制產品 (房型和套裝方案的組合)?

說明

你有某些套裝行程僅適用於特定房型。舉例來說,假設你的住宿設施有四種房型 (包括總統套房) 和六種不同的套裝行程,但只有少數套裝行程適用於總統套房,你可以指定資格。

解決方案

傳送更新的交易訊息,使用 <AllowablePackageIDs> 指定套件中包含哪些產品。

範例

這個 XML 程式碼片段顯示如何使用 <AllowablePackageIDs> 指定與特定房型搭配使用的套裝方案。在此,閣樓套房房型只允許閣樓套房全包套餐或免費早餐套餐,而 King 套房房型只允許 King 套房全包套餐或寵物友善套餐。

<RoomData>
  <RoomID>penthouse_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>penthouse_all_inclusive</AllowablePackageID>
    <AllowablePackageID>free_breakfast</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<RoomData>
  <RoomID>king_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>king_all_inclusive</AllowablePackageID>
    <AllowablePackageID>pet_friendly</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<PackageData>
  <PackageID>penthouse_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>free_breakfast</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>king_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>pet_friendly</PackageID>
</PackageData>

情境 3:如何使用 AllowableRoomIDs 控制產品

當房型以套裝方案分組時,如何控制產品 (房型和套裝方案的組合)?

說明

房型和套裝組合不再以產品形式出售,或是你想控制新套裝組合中的內容。例如,您想在套裝行程中指定特定房型,例如海景大床房和大床房。

解決方案

傳送更新的交易訊息,使用 <AllowableRoomIDs> 元素指定套件內含的確切產品。

範例

這個 XML 程式碼片段說明如何使用 <AllowableRoomID>,在套裝行程中指定海景大床房和大床房房型。

<PackageID>RO</PackageID>
<AllowableRoomIDs>
  <AllowableRoomID>king_oceanview</AllowableRoomID>
  <AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>