Gói dịch vụ phòng

Gói dịch vụ phòng cho phép bạn xác định nhiều loại phòng cho một cơ sở lưu trú, hoặc kết hợp lịch đặt phòng với dịch vụ theo đơn giá – đây là các dịch vụ bổ sung, có đơn giá và điều kiện bán – dành cho người dùng của bạn với mức giá khác mức giá tiêu chuẩn.

Các khái niệm chính và quy trình công việc

Với Gói dịch vụ phòng, bạn có thể kết hợp nhiều loại phòng thực tế với các gói dịch vụ khác nhau.

Hình ảnh sau đây là ví dụ về Gói dịch vụ phòng:

Trong ví dụ này, gói đầu tiên là phòng cơ bản, chỉ giảm giá cho một khách là người lớn. Loại thứ hai là loại phòng khác dành cho tối đa ba người lớn. Loại thứ ba là một loại phòng khác trong cùng một cơ sở lưu trú. Gói thứ tư là gói "cao cấp" của loại phòng cơ bản, có thể bao gồm các tiện nghi như bữa sáng miễn phí hoặc trả phòng muộn.

Những hình ảnh sau đây là ví dụ về các dịch vụ theo đơn giá:

Việc hiển thị các Gói dịch vụ phòng và dịch vụ theo đơn giá trong kết quả tìm kiếm cũng phải tuân theo quy trình lựa chọn giống như giá phòng tiêu chuẩn.

Gói dịch vụ phòng

Bạn sẽ xác định Gói dịch vụ phòng và dịch vụ theo đơn giá trong phần Thông báo giao dịch. Phần tử gốc của thông báo Giao dịch là <Transaction>.

Cấu trúc của thông báo Giao dịch phụ thuộc vào những việc bạn đang làm: xác định siêu dữ liệu cho Gói dịch vụ phòng hoặc dịch vụ theo đơn giá, hoặc cập nhật giá hoặc tình trạng phòng của Gói dịch vụ phòng.

Metadata
Xác định siêu dữ liệu của Gói dịch vụ phòng và dịch vụ theo đơn giá bằng <PackageData> trong phần tử <PropertyDataSet>. Để biết thêm thông tin, hãy xem phần Xác định siêu dữ liệu về phòng và gói dịch vụ. Gói dịch vụ phòng sử dụng các phần tử <RoomData> hiện có để mô tả phòng thực tế.
Mức giá và tình trạng còn phòng
Xác định giá của Gói dịch vụ phòng và tình trạng phòng bằng phần tử <RoomBundle> trong <Result> của mỗi kiểu kết hợp gói dịch vụ/hành trình. Để biết thêm thông tin, hãy xem bài viết Xác định giá và tình trạng phòng.

Giá phòng, thuế và các khoản phí khác của phòng cơ sở là bắt buộc theo <Result> khi không được sử dụng với Gói dịch vụ phòng. Bạn có thể xóa các gói này khi sử dụng cùng Gói dịch vụ phòng. Nếu bạn đang triển khai Gói dịch vụ phòng bằng tài khoản đang hoạt động, hãy làm theo các bước sau:

  1. Bao gồm giá phòng, thuế và các khoản phí khác của phòng cơ sở theo <Result> và thêm một Gói dịch vụ phòng phù hợp với Gói dịch vụ phòng cơ bản.

  2. Nếu cần, hãy xác định thêm các Gói dịch vụ phòng trong cùng một khối <Result> cho các loại phòng khác tại cơ sở lưu trú đó hoặc các gói dịch vụ khác nhau.

  3. Sau khi ra mắt Gói dịch vụ phòng, hãy xoá giá phòng, thuế và các khoản phí khác của phòng cơ bản.

Siêu dữ liệu của Gói dịch vụ phòng

Khi xác định Gói dịch vụ phòng và dịch vụ theo đơn giá, bạn thường phải xác định trước thông tin mô tả, các dịch vụ bổ sung trong đơn giá đó và các thông tin khác về Gói dịch vụ phòng. Thông tin này được gọi là siêu dữ liệu của Gói dịch vụ phòng. Sau đó, bạn tham chiếu siêu dữ liệu này trong thông tin cập nhật về giá, nhưng đừng đưa siêu dữ liệu này vào thông báo cập nhật giá.

Khi xác định Gói dịch vụ phòng, hãy dùng các phần tử <RoomData> hiện có cho phần mô tả phòng thực tế và <PackageData> phần tử cho thông tin về giá và điều khoản không thuộc nội dung mô tả phòng thực tế.

Việc sử dụng các phần tử <RoomData><PackageData> có thể làm giảm đáng kể kích thước của Danh sách khách sạn và Nguồn cấp dữ liệu giá khách sạn vì chúng làm giảm lượng dữ liệu lặp lại được gửi trong thông báo Giao dịch.

Ví dụ: Những dữ liệu như tên phòng và nội dung mô tả thường được lặp lại đối với mỗi hành trình. Bạn có thể sử dụng phần tử <RoomData><PackageData> để xác định loại dữ liệu này một lần. Sau đó, dữ liệu Gói dịch vụ phòng của hành trình sẽ được hợp nhất với các định nghĩa về phòng và gói dịch vụ được lưu trữ để hiển thị cho người dùng cuối.

Google sẽ so khớp siêu dữ liệu của bạn với dữ liệu của hành trình để hiển thị nội dung quảng cáo của bạn. Một quá trình xử lý đặc biệt được dùng để kết hợp tên và thông tin mô tả từ các phần tử <RoomData><PackageData>, cho phép mô tả phòng thực tế trong <RoomData> và đánh giá các tính năng cũng như thông tin chi tiết về gói bằng <PackageData>.

Nếu bạn xác định cả dữ liệu phòng và dữ liệu về gói dịch vụ cho một phòng hoặc Gói dịch vụ phòng, Google sẽ đưa cả hai dữ liệu này vào kết quả quảng cáo và các dữ liệu này được phân tách bằng dấu gạch ngang.

Nguyên tắc về ảnh

Khi gửi ảnh phòng, bạn nên làm theo một số nguyên tắc sau để đảm bảo ảnh của bạn hiển thị cho người dùng:

  • Gửi ảnh cho từng loại phòng, bao gồm cả ảnh về phòng có thể sử dụng được, ví dụ: phòng có thể truy cập được chỉ định với nhiều thiết bị phòng tắm khác nhau, chẳng hạn như vòi hoa sen dạng cuộn.

  • Bao gồm ít nhất 4 ảnh về căn phòng và ít nhất 1 ảnh về phòng tắm.

  • Ảnh phải là ảnh về phòng chứ không phải của cơ sở lưu trú. Những ảnh quan trọng nhất là giường, toàn bộ phòng, phòng tắm, không gian sinh hoạt và tầm nhìn từ phòng (với phần còn lại của phòng trong cùng ảnh) và ban công, sân hiên hoặc sân hiên (nếu có).

    Bạn cũng nên chụp ảnh bàn, bếp, máy pha cà phê/trà và các tiện nghi riêng biệt trong phòng.

  • Tránh ảnh chụp người và tài sản (ví dụ: bên ngoài hoặc tiện nghi) tham quan/tham quan/du lịch và thức ăn.

  • Tránh ảnh chụp cận cảnh các vật thể, chẳng hạn như ảnh chụp cận cảnh vật liệu.

  • Tránh xây dựng thương hiệu và các thương hiệu, mặc dù đồ vệ sinh cá nhân có gắn nhãn hiệu sẽ được phép đưa vào ảnh chụp toàn bộ khu vực phòng tắm. Ảnh không nên có các khối văn bản, biểu trưng hoặc vân nước lớn.

  • Cung cấp ảnh chuẩn, ngang (ngang) với trường nhìn rộng; tránh ảnh mắt cá và ảnh bị méo. Chụp ảnh ở độ phân giải cao nhất để cải thiện thứ hạng. Bạn không cần gửi cùng một ảnh ở nhiều độ phân giải.

Ưu tiên dữ liệu

Dữ liệu về Gói dịch vụ phòng được thu thập từ tất cả các nguồn và tổng hợp lại bằng các quy tắc ưu tiên để tạo ra dữ liệu cuối cùng cho một khách sạn, hành trình và Gói dịch vụ phòng nhất định. Thứ tự ưu tiên từ thấp nhất đến cao nhất như sau:

  1. (Thấp nhất) Dữ liệu của đối tác
  2. Dữ liệu về cơ sở lưu trú
  3. <RoomData>, trong đó <RoomID> khớp với <RoomID> trong khối <RoomBundle>
  4. <PackageData>, trong đó <PackageID> khớp với <PackageID> trong khối <RoomBundle>
  5. (Cao nhất) <RoomBundle>

Xác định giá và tình trạng còn hàng

Để xác định giá và tình trạng phòng của Gói dịch vụ phòng, hãy sử dụng phần tử <RoomBundle> trong thông báo Giao dịch của mỗi kiểu kết hợp gói dịch vụ hoặc hành trình. Phần tử <RoomBundle> phải nằm trong phần tử <Result>. Mã mẫu cho hai phần tử <RoomBundle> được trình bày dưới đây. Xin lưu ý rằng trong ví dụ này, hai phần tử <RoomBundle> tham chiếu siêu dữ liệu của phòng và gói dịch vụ bằng <RoomID><PackageID>.

Đối với mỗi <Result>, nhóm Gói dịch vụ phòng chứa trong phần tử này sẽ ghi đè lên nhóm hiện có đối với tổ hợp cơ sở lưu trú hoặc hành trình đó. Nếu bạn không xác định bất kỳ Gói dịch vụ phòng hoặc dịch vụ theo đơn giá nào trong phần tử <Result>, thì tất cả các Gói dịch vụ phòng sẽ bị xoá và chỉ có phòng cơ bản của khách sạn hoặc hành trình đó mới xuất hiện trong kết quả tìm kiếm.

Hãy nhớ sử dụng các phần tử như <Name> để làm cho Gói dịch vụ phòng hấp dẫn hơn với khách hàng tiềm năng và đảm bảo chúng phù hợp với trang đích của khách sạn. Trong ví dụ này, bạn sẽ xác định tên và các thông tin mô tả khác trong siêu dữ liệu.

<RatePlanID> là không bắt buộc và đại diện cho giá trị nhận dạng duy nhất của kiểu kết hợp phòng và gói dịch vụ. Bạn nên sử dụng RatePlanID làm biến để xây dựng URL trang đích động (trước đây gọi là Điểm bán hàng). Để biết thông tin chi tiết, hãy xem phần Sử dụng biến và điều kiện.

Các phần tử sau đây không bắt buộc trong Gói dịch vụ phòng:

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

Khi bạn triển khai Gói dịch vụ phòng trong tài khoản đang hoạt động, hãy xóa <Baserate> sau khi bật Gói dịch vụ phòng.

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

Xác định siêu dữ liệu về phòng và gói dịch vụ

Để xác định siêu dữ liệu của Gói dịch vụ phòng, hãy sử dụng phần tử <PackageData><RoomData> trong phần tử <PropertyDataSet> của thông báo Giao dịch.

Bạn sẽ xác định siêu dữ liệu về phòng và gói dịch vụ trong một thông báo Giao dịch tách biệt với dữ liệu về giá và tình trạng phòng. Bằng cách xác định trước dữ liệu này, thông tin cập nhật về giá không cần phải bao gồm thông tin lặp lại như nội dung mô tả, URL ảnh, tiện nghi và dữ liệu khác về mỗi phòng hoặc gói dịch vụ cho mỗi hành trình.

Google lưu trữ siêu dữ liệu cho bạn và chèn siêu dữ liệu đó vào quảng cáo khi quảng cáo hiển thị. Bạn có thể cập nhật siêu dữ liệu về phòng và gói dịch vụ bất cứ lúc nào bằng một thông báo Giao dịch mới.

Trong thông báo Giao dịch, bạn đặt mã gói và mã phòng trên mỗi khối mà sau đó bạn có thể tham chiếu trong các khối cập nhật giá <Result>.

Nếu dữ liệu phòng và gói dịch vụ thay đổi – ví dụ: nếu bạn thêm một loại phòng mới vào cơ sở lưu trú, hãy gửi thông báo Giao dịch mới chứa dữ liệu về phòng và gói dịch vụ mới cập nhật – Google sẽ thay thế siêu dữ liệu hiện có về một phòng hoặc gói dịch vụ bằng dữ liệu mới.

Bạn nên xác định siêu dữ liệu trong quá trình thiết lập ban đầu. Sau khi xác định trước siêu dữ liệu, bạn chỉ cần tham chiếu các giá trị <RoomID><PackageID> trong thông tin cập nhật về giá thay vì phải thêm lại toàn bộ thông tin đó. Google sử dụng những mã đó để so khớp phòng và Gói dịch vụ phòng với siêu dữ liệu đã lưu trữ. Điều này có thể làm giảm đáng kể kích thước tổng thể của thông báo Giao dịch.

Vì giá các kiểu kết hợp phòng hoặc hành trình thay đổi thường xuyên hơn nhiều so với nội dung mô tả phòng hoặc gói dịch vụ, nên việc xác định siêu dữ liệu một lần rồi tham chiếu đến việc sử dụng Thông báo giao dịch hiệu quả hơn nhiều. Ngoài ra, bạn có thể loại bỏ những lỗi như thông tin mô tả phòng không khớp bằng cách sử dụng siêu dữ liệu thay vì xác định dữ liệu trực tiếp.

Dưới đây là phương pháp đề xuất và hiệu quả nhất để xác định riêng siêu dữ liệu và giá:

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

Sức chứa và sức chứa

Khi xác định Gói dịch vụ phòng, bạn phải hiểu sự khác biệt giữa sức chứasức chứa tối đa:

Người trong nhà
Số lượng khách bạn dự định sẽ phục vụ trong Gói dịch vụ phòng. Ví dụ: "Gói dịch vụ tuần trăng mật" có sức chứa là 2. Bạn đặt giá trị cho sức chứa của một gói bằng cách sử dụng phần tử con <Occupancy> của phần tử <PackageData> hoặc <RoomBundle>.
Công suất
Số lượng người tối đa mà một phòng có thể chứa được trên thực tế. Sức chứa tối đa của một phòng luôn bằng hoặc cao hơn sức chứa. Ví dụ: "Phòng trăng mật" trong khách sạn của bạn có sức chứa tối đa là sáu người, nhưng bạn định giá một gói dịch vụ cho hai khách. Bạn đặt giá trị dung lượng của gói bằng cách sử dụng phần tử con <Capacity> của phần tử <RoomData>.

Khi định giá cho một Gói dịch vụ phòng, bạn phải cung cấp giá cho số lượng khách sẽ chứa trong gói đó (giá trị được chỉ định trong phần tử <Occupancy> của gói). Nếu bạn đặt <Occupancy> thành hai, thì giá trong gói đó phải là cho hai người. Bạn không thể đặt <Occupancy> là bốn khách và đặt giá của gói cho hai khách.

Phòng dùng chung

Bạn cũng sử dụng các giá trị Sức chứa và Sức chứa tối đa trong Gói dịch vụ phòng để định giá cho các phòng chung, ví dụ: nhà nghỉ. Ví dụ: để đặt giá mỗi người cho phòng ngủ tập thể có 8 giường, bạn sẽ đặt Sức chứa là 1 và Sức chứa là 8, rồi xác định giá phòng như vậy trong tên <RoomData>. Xem ví dụ.

Cập nhật Gói dịch vụ phòng

Phần này mô tả cách xóa Gói dịch vụ phòng không còn được cung cấp nữa và cách cập nhật giá cho một Gói dịch vụ phòng hiện có.

Xóa Gói dịch vụ phòng

Gói dịch vụ phòng và giá khách sạn khác nhau ở cách xóa.

Để xoá một kiểu kết hợp phòng hoặc hành trình khỏi quỹ phòng, bạn hãy đặt <Baserate> của phần tử <Result> thành -1. Để xoá Gói dịch vụ phòng cho một phòng hoặc hành trình cụ thể, hãy xoá phần tử <RoomBundle> khỏi khối <Result> trong thông báo Giao dịch.

Gói dịch vụ phòng trong nguồn cấp dữ liệu của bạn được coi là một bộ, có thể nằm trong khoảng từ 0 đến hàng chục. Khi gửi các Gói dịch vụ phòng cho Google, bạn sẽ gửi toàn bộ nhóm hiện tại. Bạn không thay đổi giá trị của một Gói dịch vụ phòng để đánh dấu Gói dịch vụ phòng trước đó là không có sẵn. Bất kể nhóm gói nào nằm trong thông báo Giao dịch gần đây nhất sẽ thay thế nhóm hiện tại.

Ví dụ: có các gói dịch vụ A, B, C và D. Trước tiên, bạn sẽ gửi thông báo xác định tập hợp các gói dịch vụ phòng A, B, C và D. Sau đó, nếu gói B bán hết, bạn sẽ gửi lại toàn bộ nhóm chỉ có các gói A, C và D. Nếu tất cả Gói dịch vụ phòng đã hết phòng, hãy gửi một nhóm Gói dịch vụ phòng trống.

Điều chỉnh giá

Để thay đổi giá của Gói dịch vụ phòng, hãy đặt <Baserate> mới trong phần tử <Result>.

Mỗi lần cập nhật khối <Result> của một phòng/hành trình trong thông báo Giao dịch, bạn phải cung cấp một bộ Gói dịch vụ phòng hoàn chỉnh cho mỗi <Result>. Google sẽ thay thế Nhóm Gói dịch vụ phòng hiện có bằng nhóm mới. Nếu bạn không đưa Gói dịch vụ phòng nào vào <Result>, thì Google sẽ xóa mọi Gói dịch vụ phòng đối với phòng hoặc hành trình đó.

Cập nhật siêu dữ liệu

Bạn cập nhật siêu dữ liệu của Gói dịch vụ phòng bằng cách phản hồi <Query> của Google.

Bạn sẽ trả lời thông báo Truy vấn bằng thông báo Giao dịch xác định siêu dữ liệu phòng và gói dịch vụ cho các khách sạn được chỉ định. Để biết thêm thông tin, hãy xem phần Thông báo truy vấn.