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ú duy nhất, hoặc kết hợp lịch đặt phòng của một phòng có dịch vụ theo đơn giá (các dịch vụ bổ sung có mức giá và điều kiện bán) 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 thêm nhiều loại phòng thực tế với nhiều gói dịch vụ.

Dưới đây là hình ảnh 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, có chiết khấu chỉ cho một người lớn. Gói thứ hai là một loại phòng khác dành cho tối đa 3 người lớn. Loại phòng 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 phòng cơ bản, có thể có các tiện nghi như bữa sáng miễn phí hoặc trả phòng muộn.

Dưới đây là hình ảnh ví dụ về các dịch vụ theo giá:

Việc đăng 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 chịu sự điều chỉnh của 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 giá trong thông báo Giao dịch. Thành phần 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 việc bạn đang làm: xác định siêu dữ liệu về Gói dịch vụ phòng hoặc tính năng theo giá, hay 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 về Gói dịch vụ phòng và dịch vụ theo 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. 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á và tình trạng phòng của Gói dịch vụ phòng bằng phần tử <RoomBundle> trong <Result> cho từng tổ hợp gói dịch vụ/hành trình. Để biết thêm thông tin, hãy xem phần Xác định giá và tình trạng còn hàng.

Giá, thuế và các khoản phí khác của phòng cơ bản là bắt buộc theo <Result> khi những thông tin này không được sử dụng cùng Gói dịch vụ phòng. Bạn có thể xoá các khoản phí 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 trực tiếp, hãy làm theo các bước sau:

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

  2. Nếu cần, hãy xác định các Gói dịch vụ phòng bổ sung trong cùng một khối <Result> đối với 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.

  3. Sau khi triển khai Gói dịch vụ phòng, hãy xoá giá, 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 nội dung mô tả, các dịch vụ bổ sung trong giá phòng 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 sẽ tham chiếu siêu dữ liệu này trong thông tin cập nhật về giá, nhưng không đưa siêu dữ liệu này vào thông báo cập nhật về giá.

Khi bạn xác định Gói dịch vụ phòng, hãy sử dụng các phần tử <RoomData> hiện có cho nội dung mô tả phòng thực tế và các phần tử <PackageData> cho những dịch vụ theo giá và điều khoản không có trong 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ì việc này giúp 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 lặp lại cho mỗi hành trình. Bạn có thể sử dụng các 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ụ đã 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 cụ thể để hiển thị nội dung quảng cáo của bạn. Cần có quy trình xử lý đặc biệt để kết hợp tên và nội dung mô tả từ phần tử <RoomData><PackageData>, cho phép mô tả phòng thực tế trong <RoomData>, đồng thời các đặc điểm theo giá và thông tin chi tiết về gói được mô tả trong <PackageData>.

Nếu bạn xác định cả dữ liệu về 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, thì Google sẽ đưa cả hai dữ liệu này vào kết quả quảng cáo và được phân tách bằng dấu gạch nối.

Nguyên tắc về ảnh

Khi gửi ảnh phòng, bạn nên tuân theo một số nguyên tắc sau để đảm bảo ảnh của bạn sẽ xuất hiện trước người dùng:

  • Gửi ảnh cho từng loại phòng, bao gồm cả ảnh phòng có hỗ trợ người khuyết tật, ví dụ: phòng dành riêng cho người khuyết tật, có nhiều thiết bị phòng tắm, chẳng hạn như phòng tắm cuộn.

  • Cung cấp ít nhất 4 ảnh về phòng và ít nhất một ảnh phòng tắm.

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

    Bạn cũng nên chụp ảnh bàn làm việc, nhà bếp, máy pha cà phê/trà và các đặc điểm riêng biệt trong phòng.

  • Tránh dùng ảnh chụp người và tài sản, chẳng hạn như ngoại thất hoặc tiện nghi của cơ sở lưu trú, ngắm cảnh/du lịch và thức ăn.

  • Tránh chụp cận cảnh các vật thể, chẳng hạn như cận cảnh phần mềm gốc.

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

  • Cung cấp ảnh tiêu 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 có độ phân giải khác nhau.

Mức độ ưu tiên của 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à kết hợp lại theo các quy tắc ưu tiên để tạo ra dữ liệu cuối cùng về 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 tài sản
  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 cho từng tổ hợp gói hoặc hành trình. Phần tử <RoomBundle> phải nằm trong phần tử <Result>. Bạn có thể xem mã mẫu cho 2 phần tử <RoomBundle> ở bên dưới. Xin lưu ý rằng trong ví dụ này, 2 phần tử <RoomBundle> tham chiếu siêu dữ liệu về 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 đó sẽ ghi đè nhóm hiện có đối với tổ hợp hành trình hoặc cơ sở lưu trú đó. 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 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 lịch 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 của bạn trở nên hấp dẫn hơn đối với khách hàng tiềm năng và đảm bảo chúng khớ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à thuộc tính không bắt buộc và đại diện cho giá trị nhận dạng duy nhất của một tổ hợp phòng và gói dịch vụ. Bạn nên sử dụng RatePlanID làm biến để tạo URL trang đích động (trước đây 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 là 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 một tài khoản đang hoạt động, hãy xoá <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> bên 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 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á của bạn không cần phải bao gồm những 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ề từng phòng hoặc gói dịch vụ cho mỗi lịch trình.

Google sẽ lưu trữ siêu dữ liệu cho bạn và chèn siêu dữ liệu này vào quảng cáo của bạn khi siêu dữ liệu xuất hiện. 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 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 sẽ tham chiếu trong khối <Result> của thông tin cập nhật về giá.

Nếu dữ liệu về 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 trong một 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ụ đã cập nhật), thì Google sẽ thay thế siêu dữ liệu hiện có về 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ì thêm lại tất cả các thông tin đó. Google sẽ sử dụng các 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ủa các 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ả về 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 đó là cách 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ỏ các lỗi như nội dung 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 cùng dòng.

Dưới đây là phương thức nên dùng 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 lưu trú mà bạn muốn áp dụng cho Gói dịch vụ phòng. Ví dụ: "Gói tuần trăng mật" có số người lưu trú là 2. Bạn đặt giá trị cho số người lưu trú của một gói dịch vụ 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ố người tối đa mà một phòng có thể chứa được trên thực tế. Sức chứa của một phòng luôn bằng hoặc cao hơn sức chứa. Ví dụ: "Gói tuần trăng mật" trong khách sạn của bạn có sức chứa tối đa là 6 người, nhưng bạn định giá một gói là cho hai khách. Bạn đặt giá trị dung lượng của một 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á tương ứng với số lượng khách lưu trú của gói (giá trị được chỉ định trong phần tử <Occupancy> của gói). Nếu bạn đặt <Occupancy> là 2, thì giá trong gói đó phải dành cho 2 người. Bạn không thể đặt <Occupancy> là 4 khách và đặt giá của gói là cho 2 khách.

Phòng chung

Bạn cũng sử dụng sức chứa và sức chứa trong Gói dịch vụ phòng để đặt giá cho phòng chung (ví dụ: nhà nghỉ). Ví dụ: để đặt giá theo người cho một phò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, đồng thời xác định giá nà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 xoá Gói dịch vụ phòng không còn được cung cấp và cách cập nhật giá của một Gói dịch vụ phòng hiện có.

Xoá gói dịch vụ phòng

Gói dịch vụ phòng khác với giá khách sạn ở cách bạn xoá.

Để xoá một tổ hợp phòng hoặc hành trình khỏi quỹ phòng, bạn cần đặ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 lịch trình nhất định, 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 tập hợp, trong đó có các số từ 0 đến hàng chục. Khi gửi Gói dịch vụ phòng cho Google, bạn sẽ gửi toàn bộ tập hợp hiện tại. Bạn không thay đổi giá trị của một Gói dịch vụ phòng riêng lẻ để đánh dấu một Gói dịch vụ phòng trước đó là không còn phòng. Nhóm gói bất kỳ nằm trong thông báo Giao dịch gần đây nhất sẽ thay thế cho nhóm hiện tại.

Ví dụ: có các gói A, B, C và D. Trước tiên, bạn gửi một 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ẽ chỉ gửi lại toàn bộ tập hợp kèm theo các gói A, C và D. Nếu tất cả các Gói dịch vụ phòng đã bán hết, hãy gửi một tập trống các Gói dịch vụ phòng.

Hệ số đ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 thêm một tập hợp đầy đủ các Gói dịch vụ phòng có sẵn cho mỗi <Result>. Google sẽ thay thế tập hợp Gói dịch vụ phòng hiện có bằng tập hợp mới. Nếu bạn không có Gói dịch vụ phòng nào trong <Result>, thì Google sẽ xoá tất cả Gói dịch vụ phòng của phòng hoặc lịch 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 phản hồi <Query> của Google.

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