Gói dịch vụ phòng giú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 hành trình của một phòng với dịch vụ theo giá — các dịch vụ bổ sung đi kèm với tỷ lệ và điều kiện bán hàng—cho người dùng của bạn ngoài mức giá giá.
Các khái niệm chính và quy trình công việc
Thông qua Gói dịch vụ phòng, bạn có thể kết hợp nhiều loại phòng thực tế hơn với các gói dịch vụ khác nhau.
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 và chỉ chiết khấu cho một trong số đó người lớn ở cùng. Loại phòng thứ hai là một loại phòng khác dành cho tối đa đến 3 người lớn. Phòng thứ ba là một loại phòng khác trong cùng thuộc tính này. Thứ tư là "premium" gói cơ bản, có thể bao gồm các tiện nghi như bữa sáng miễn phí hoặc dịch vụ trả phòng muộn.
Dưới đây là hình ảnh ví dụ về các dịch vụ theo giá:
Việc hiển thị Gói dịch vụ phòng và dịch vụ theo giá trong kết quả tìm kiếm chịu sự điều chỉnh của tương tự như quy trình lựa chọn 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. Gốc
là phần tử 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 hoạt động của bạn: xác định siêu dữ liệu về Gói dịch vụ phòng hoặc tính năng theo giá hoặc việ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 về Gói dịch vụ phòng và dịch vụ theo giá bằng
<PackageData>
trong một<PropertyDataSet>
. Để biết thêm thông tin, hãy xem phần Xác định phòng và siêu dữ liệu của 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ế của họ. - 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 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 gói này không được dùng cùng với Gói dịch vụ phòng và có thể xoá khi
được dùng cùng với 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, hãy làm theo các bước sau:
Bao gồm giá, thuế và các khoản phí khác của phòng cơ bản dưới
<Result>
và hãy 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.Nếu cần, hãy xác định các Gói dịch vụ phòng khác 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.Sau khi triển khai Gói dịch vụ phòng, hãy xoá giá, thuế và giá của phòng cơ bản các khoản phí khác.
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 giá, bạn thường phải xác định nội dung mô tả, các dịch vụ bổ sung nằm trong giá phòng và các thông tin về Gói dịch vụ phòng trước thời hạn. 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 cần tham chiếu siêu dữ liệu này trong giá của mình nhưng không đưa vào thông báo cập nhật 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 phần tử
nội dung mô tả phòng thực tế và các thành phần <PackageData>
cho dịch vụ theo đơn giá
và những cụm từ không có trong nội dung mô tả phòng thực tế.
Việc sử dụng phần tử <RoomData>
và <PackageData>
có thể đáng kể
giảm kích thước của Danh sách khách sạn và Giá khách sạn
vì công 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ể dùng <RoomData>
và <PackageData>
để xác định loại dữ liệu này một lần. Dữ liệu Gói dịch vụ phòng theo hành trình
sau đó đượ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ị với
người dùng cuối.
Google 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ó quá trình xử lý đặc biệt để kết hợp tên và
từ các phần tử <RoomData>
và <PackageData>
, cho phép
phòng thực tế được mô tả trong <RoomData>
, cũng như các dịch vụ theo giá và
thông tin chi tiết về gói 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 Room Gói, Google bao gồm cả hai nội dung này trong đầu ra quảng cáo, được phân tách bằng dấu gạch nối.
Nguyên tắc về ảnh
Sau đây là một số nguyên tắc bạn nên tuân theo khi gửi ảnh phòng đảm bảo ảnh của bạn được 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 dành cho người khuyết tật phòng – ví dụ: phòng riêng dành cho người khuyết tật có nhiều phòng tắm vật dụng cố định, chẳng hạn như vòi hoa sen cuộn.
Cung cấp ít nhất 4 ảnh về phòng và ít nhất 1 ảnh về 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ú. Nhiều nhất các bức ảnh quan trọng gồm có giường, toàn bộ phòng, phòng tắm, không gian sinh hoạt, và khung cảnh từ phòng (với phần còn lại của phòng trong cùng một bức ảnh), và ban công, sân hiên hoặc sân vườn (nếu có).
Việc chụp ảnh bàn, bếp, máy pha cà phê/trà cũng rất hữu ích và các tiện nghi riêng biệt trong phòng.
Tránh chụp ảnh người và tài sản (ví dụ: ngoại thất hoặc tài sản) tiện nghi—tham quan/du lịch và ẩm thực.
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 các 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ó trong một bức ảnh chụp toàn bộ khu vực phòng tắm. Ảnh không nên sử dụng các khối văn bản, biểu trưng hoặc hình mờ lớn.
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 trong nhiều độ phân giải.
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à tổng hợp lại theo mức độ ưu tiên để tạo 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:
- (Thấp nhất) Dữ liệu của đối tác
- Dữ liệu tài sản
<RoomData>
, trong đó<RoomID>
khớp với<RoomID>
trong<RoomBundle>
khối<PackageData>
, trong đó<PackageID>
khớp với<PackageID>
trong<RoomBundle>
khối- (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. Chiến lược phát hành đĩa đơn
Phần tử <RoomBundle>
phải nằm trong phần tử <Result>
. Mã mẫu
cho 2 phần tử <RoomBundle>
được minh hoạ dưới đây. Lưu ý rằng trong ví dụ này, giá trị
hai phần tử <RoomBundle>
tham chiếu siêu dữ liệu về phòng và gói dịch vụ bằng cách sử dụng
<RoomID>
và <PackageID>
.
Đối với mỗi <Result>
, tập hợp Gói dịch vụ phòng bên trong sẽ ghi đè
nhóm hiện có cho 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á trong phần tử <Result>
, sau đó là tất cả Room
Các gói dịch vụ sẽ bị xoá và chỉ 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>
để tăng tính hấp dẫn cho Gói dịch vụ phòng của bạn
hấp dẫn 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à giá trị không bắt buộc và đại diện cho mã nhận dạng duy nhất của một phòng và
tổ hợp gói. Bạn nên 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
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
Đã 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>
và <RoomData>
bên trong phần tử <PropertyDataSet>
của thông báo Giao dịch.
Bạn 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 có tách biệt với dữ liệu về giá và tình trạng còn hàng. Bằng cách xác định dữ liệu cập nhật trước, thì thông tin cập nhật về giá của bạn không cần bao gồm dữ liệu lặp lại thông tin 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 của bạn khi có được 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 Thông báo giao dịch.
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à bạn sẽ tham chiếu trong khối <Result>
của thông tin cập nhật 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 phòng mới) nhập vào một thuộc tính, gửi thông báo Giao dịch mới có chứa dữ liệu cập nhật về phòng và gói dịch vụ – Google thay thế siêu dữ liệu hiện có về một phòng hoặc gói có 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
xác định trước siêu dữ liệu, bạn chỉ cần tham chiếu <RoomID>
và
<PackageID>
giá trị trong mức giá của bạn
cập nhật thay vì bao gồm tất cả
lại thông tin đó. Google sử dụng những mã này để so khớp với phòng và Gói dịch vụ phòng
với siêu dữ liệu đã lưu. Đ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.
Do 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 ngoài phần mô tả phòng hoặc gói dịch vụ, xác định siêu dữ liệu một lần rồi tham chiếu đó là việc sử dụng thông báo Giao dịch hiệu quả hơn nhiều. Ngoài ra, các lỗi chẳng hạn như nội dung mô tả phòng không khớp có thể được loại bỏ bằng cách sử dụng siêu dữ liệu thay vì so với việc xác định dữ liệu nội tuyến.
Phương pháp nên dùng và hiệu quả nhất để xác định siêu dữ liệu và giá riêng biệt được trình bày dưới đây:
<!-- 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 rõ sự khác biệt giữa số người lưu trú và sức chứa:
- Số người lưu trú
- 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ị của một
số người lưu trú của gói dịch vụ bằng cách sử dụng các phần tử
<PackageData>
hoặc<RoomBundle>
Phần tử con<Occupancy>
. - 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ế. Chiến lược phát hành đĩa đơn
sức chứa của một căn phòng luôn bằng hoặc cao hơn sức chứa. Cho
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
nhưng bạn định giá một gói cho hai khách. Bạn đặt giá trị của một
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á Gói dịch vụ phòng, bạn phải đưa ra giá tương ứng với số lượng khách lưu trú
mục tiêu của gói (giá trị được chỉ định trong thẻ
phần tử <Occupancy>
). Nếu bạn đặt <Occupancy>
thành 2, thì giá trong đó
gói hàng phải dành cho hai người. Bạn không thể đặt <Occupancy>
thành 4 khách và
đặt giá của gói cho hai khách.
Phòng chung
Bạn cũng sử dụng phần Sức chứa và sức chứa trong Gói dịch vụ phòng để đặt giá cho lượt chia sẻ
phòng nghỉ, ví dụ: nhà nghỉ. Ví dụ: để đặt giá trị cho mỗi người
giá cho một phòng tập thể có 8 giường, bạn sẽ đặt Số người lưu trú là 1
và
Dung lượng lên 8
và xác định dung lượ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 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 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á chúng.
Để xoá một tổ hợp phòng hoặc hành trình khỏi quỹ phòng, bạn phải đặt
<Baserate>
của phần tử <Result>
đến -1
. Cách xoá Gói dịch vụ phòng cho
phòng hoặc hành trình cụ thể, hãy xoá phần tử <RoomBundle>
khỏi
Chặn <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 và số này ở bất cứ đâu từ 0 đến hàng chục. Khi gửi Gói dịch vụ phòng cho Google, bạn sẽ gửi tập hợp hoàn chỉnh, hiện tại. Bạn không thay đổi giá trị của từng Gói dịch vụ phòng thành đánh dấu mục có sẵn trước đó là không có sẵn. Bất kể tập hợp gói nào trong thông báo Giao dịch gần đây nhất sẽ thay thế cho tập hợp hiện tại.
Ví dụ: có các gói A, B, C và D. Trước tiên, bạn gửi tin nhắn 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 gửi lại toàn bộ tập hợp chỉ 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 loạt Gói dịch vụ phòng trố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 <Result>
.
Mỗi khi bạn cập nhật khối <Result>
của một phòng/hành trình trong Giao dịch của mình
thông báo, bạn phải cung cấp một tập hợp hoàn chỉnh các Gói dịch vụ phòng hiện có cho mỗi
<Result>
. Google thay thế nhóm Gói dịch vụ phòng hiện có bằng nhóm mới
thiết lập. 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 cho 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 phản hồi <Query>
của Google.
Bạn trả lời thông báo Truy vấn bằng thông báo Giao dịch giúp xác định phòng và siêu dữ liệu của 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 Truy vấn Tin nhắn.