Pakiety pokoi umożliwiają zdefiniowanie wielu typów pokoi w jednej usłudze lub połączenie planu podróży sal z funkcjami stawek, dodatkowymi usługami obejmującymi stawkę i warunki sprzedaży, dla użytkowników poza standardową ceną.
attributes
Najważniejsze pojęcia i przepływ pracy
Dzięki pakietom sal możesz oferować dodatkowe kombinacje typów sal fizycznych z różnymi pakietami usług.
Poniższa ilustracja przedstawia przykłady grup pokoi:
W tym przykładzie pierwszy pakiet to pokój podstawowy z rabatem tylko dla 1 osoby dorosłej. Drugi typ to inny pokój, który może pomieścić do 3 osób dorosłych. Trzeci typ to inny pokój w tej samej usłudze. Czwarty to pakiet premium pokoju podstawowego, który może zawierać takie udogodnienia jak wliczone w cenę śniadanie lub późniejsza płatność.
Te obrazy pokazują przykładowe funkcje związane ze stawkami:
Wyświetlanie pakietów pokoi i funkcji określania stawek w wynikach wyszukiwania podlega tym samym procesom wyboru co standardowe stawki za pokoje.
Pakiety sal
Definiujesz pakiety i ceny w wiadomościach dotyczących transakcji. Elementem głównym komunikatu transakcji jest <Transaction>
.
Struktura komunikatu o transakcji zależy od tego, co robisz: definiujesz metadane dotyczące funkcji Pakiet lub sala oraz aktualizujesz cenę lub dostępność pakietu.
- Metadane
- W elemencie
<PropertyDataSet>
zdefiniuj pakiet pokoi i metadane oceny funkcji za pomocą<PackageData>
. Więcej informacji znajdziesz w artykule Definiowanie metadanych pokoju i pakietu. Pakiety pokoi korzystają z dotychczasowych elementów<RoomData>
w opisach fizycznych pokoi. - Ceny i dostępność
- Ceny i dostępność pokoi możesz określić za pomocą elementu
<RoomBundle>
w<Result>
dla każdej kombinacji pakietu i planu podróży. Więcej informacji znajdziesz w artykule Definiowanie cen i dostępności.
Stawka za pokój, podatki i inne opłaty są wymagane w przypadku <Result>
, gdy nie są używane w pakiecie z pokojem. Jeśli korzystasz z pakietów pokoi, możesz je usunąć. Jeśli implementujesz pakiety pokoi przy użyciu aktywnego konta, wykonaj te czynności:
Dodaj stawkę za pokój, podatki i inne opłaty w wysokości
<Result>
oraz dodaj jeden pakiet pokoi, który odpowiada podstawowemu pakietowi.W razie potrzeby możesz zdefiniować dodatkowe pakiety w tym samym bloku
<Result>
dla innych typów pokoi w tej usłudze lub różnych pakietów usług.Po uruchomieniu grupy możesz usunąć cenę pokoju podstawowego, podatki i inne opłaty.
Metadane pakietu pokoi
Przy definiowaniu pakietów pokoi i funkcji związanych z cenami zwykle z wyprzedzeniem definiuje się opis, dodatkowe usługi, które są częścią ceny, oraz inne informacje dotyczące pakietu pokoi. Nazywamy je metadanymi grupy pokoi. Odwołujesz się do tych metadanych w aktualizacjach cen, ale nie uwzględniaj ich w wiadomościach dotyczących aktualizacji cen.
Przy definiowaniu grup używaj elementów <RoomData>
w opisach fizycznych sal i elementów <PackageData>
w przypadku funkcji określania stawek oraz terminów, które nie są częścią fizycznego opisu pokoju.
Używanie elementów <RoomData>
i <PackageData>
może znacznie zmniejszyć rozmiar listy hoteli i pliku danych z cenami hoteli, ponieważ ogranicza to ilość powtarzających się danych wysyłanych w wiadomościach dotyczących transakcji.
Na przykład w przypadku każdego planu podróży dane takie jak nazwa i opis sali są zwykle powtarzane. Za pomocą elementów <RoomData>
i <PackageData>
możesz raz zdefiniować ten typ danych. Dane dotyczące planów związanych z pokojami są łączone z przechowywanymi definicjami pokoi i pakietów, aby wyświetlać je użytkownikom.
Google dopasowuje metadane do danych dotyczących planu podróży, aby renderować zawartość reklam. Nazwy i opisy elementów <RoomData>
i <PackageData>
są przetwarzane w specjalny sposób, dzięki czemu w <RoomData>
można opisać fizyczną lokalizację, a cechy i szczegóły pakietu – w <PackageData>
.
Jeśli zdefiniujesz zarówno dane dotyczące pokoju, jak i dane pakietu dla pojedynczego pokoju lub grupy pokoi, Google uwzględni je w danych wyjściowych reklamy rozdzielone łącznikiem.
Wskazówki dotyczące zdjęć
Podczas wysyłania zdjęć pomieszczeń należy przestrzegać tych wskazówek, aby Twoje zdjęcia były wyświetlane użytkownikom:
Prześlij zdjęcia poszczególnych typów pomieszczeń, w tym zdjęcia sal, do których są dostępne, np. wyznaczone pomieszczenia z różnymi rodzajami armatury sanitarnej, takie jak kabina prysznicowa.
Dodaj co najmniej 4 zdjęcia pomieszczenia i 1 łazienkę.
Zdjęcia powinny dotyczyć samego pokoju, a nie budynku. Najważniejsze zdjęcia to łóżko, całe pomieszczenie, łazienka, strefa dzienna oraz widok z pokoju (pozostałe zdjęcie na tym samym zdjęciu) oraz balkon, taras lub taras (w stosownych przypadkach).
Pomocne może być też robienie zdjęć biurka, kuchni, ekspresu do kawy i herbaty oraz wyróżniających się cech pokoju.
Unikaj zdjęć osób i mienia, np. na zewnątrz lub z udogodnieniami nieruchomości, takich jak „zwiedzanie” i turystyka czy jedzenie.
Unikaj zbliżeń obiektów, takich jak zbliżenia kieliszków.
Unikaj prezentowania marki i przyborów toaletowych, ale możesz je umieścić na zdjęciu przedstawiającym całą łazienkę. Zdjęcia nie powinny zawierać dużych bloków tekstu, logo ani znaków wodnych.
Dostarczaj standardowe, poziome (poziome) zdjęcia, które mają szerokie pole widzenia. Unikaj zdjęć z efektem rybiego oka i zniekształconych jakości obrazu. Rób zdjęcia w najwyższej rozdzielczości, aby poprawić ich pozycję w rankingu. Nie musisz przesyłać tego samego zdjęcia w różnych rozdzielczościach.
Pierwszeństwo danych
Dane dotyczące pokoi są zbierane ze wszystkich źródeł i wykorzystywane zgodnie z regułami priorytetu, aby uzyskać ostateczne dane dotyczące danego hotelu, planu podróży i pakietu pokoi. Kolejność jest taka: od najniższego do najwyższego:
- (Najniższe) dane partnerów
- Dane usługi
<RoomData>
, gdzie<RoomID>
pasuje do<RoomID>
w bloku<RoomBundle>
<PackageData>
, gdzie<PackageID>
pasuje do<PackageID>
w bloku<RoomBundle>
- (Najwyższa)
<RoomBundle>
Określanie cen i dostępności
Aby zdefiniować cenę i dostępność grupy pokoi, użyj elementu <RoomBundle>
w komunikacie o transakcji dla każdej kombinacji pakietu lub planu podróży. Element <RoomBundle>
powinien znajdować się wewnątrz elementu <Result>
. Poniżej znajdziesz przykładowy kod dwóch elementów <RoomBundle>
. Zwróć uwagę, że 2 elementy <RoomBundle>
odwołują się do metadanych pokoju i pakietu, używając <RoomID>
i <PackageID>
.
Dla każdego elementu (<Result>
) zawarty w nim zestaw pakietów zastępuje dotychczasowy zestaw dla tej usługi lub planu podróży. Jeśli w elemencie <Result>
nie określisz żadnych pakietów sal ani funkcji oceny, wszystkie grupy pokoi zostaną usunięte, a w wynikach wyszukiwania pojawi się tylko sala podstawowa w przypadku danego hotelu lub planu podróży.
Użyj takich elementów jak <Name>
, aby Twoje pokoje były bardziej atrakcyjne dla potencjalnych klientów i pasowały do strony docelowej hotelu. W tym przykładzie określisz w metadanych nazwy i inne informacje opisowe.
Pole <RatePlanID>
jest opcjonalne i reprezentuje unikalny identyfikator kombinacji sali i pakietu. Zdecydowanie zalecamy używanie zmiennej RatePlanID jako zmiennej do tworzenia adresów URL dynamicznych stron docelowych (dawniej punktu sprzedaży). Szczegółowe informacje znajdziesz w artykule Używanie zmiennych i warunków.
Te elementy są opcjonalne w pakietach pokoi:
<Baserate>
<Tax>
<OtherFees>
<RoomID>
<PackageID>
<Occupancy>
<OccupancyDetails>
Po wdrożeniu pakietu pokoi na aktywnym koncie usuń <Baserate>
po włączeniu tego pakietu.
<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>
Definiowanie metadanych sal i pakietów
Aby zdefiniować metadane grupy pokoi, użyj elementów <PackageData>
i <RoomData>
wewnątrz elementu <PropertyDataSet>
wiadomości o transakcji.
Metadane pokoju i pakietu definiujesz w wiadomości transakcyjnej niezależnie od danych o cenie i dostępności. Definiując te dane z wyprzedzeniem, zmiany cen nie muszą obejmować powtarzających się informacji, takich jak opisy, adresy URL zdjęć, udogodnienia i inne informacje dotyczące poszczególnych pokoi i pokoi lub pakietów w przypadku każdego planu podróży.
Google przechowuje metadane za Ciebie i wstawia je do Twoich reklam, gdy je wyświetlają. Metadane pokoju i pakietu możesz zaktualizować w każdej chwili, dodając nową wiadomość na temat transakcji.
W wiadomości dotyczącej transakcji ustawiasz identyfikator pakietu oraz identyfikator pokoju w każdej bloku, do której odwołujesz się w aktualizacjach ceny <Result>
.
Jeśli zmienią się dane w pokoju i pakiecie – na przykład jeśli dodasz nowy typ pokoju w usłudze, wyślij nową wiadomość dotyczącą transakcji, która zawiera zaktualizowane dane sali i pakietu – Google zastąpi obecne metadane pokoju lub pakietu nowymi danymi.
Google zaleca definiowanie metadanych podczas wstępnej konfiguracji. Po zdefiniowaniu metadanych musisz jedynie uwzględnić wartości <RoomID>
i <PackageID>
w aktualizacjach cen, zamiast ponownie uwzględniać wszystkie te informacje. Google używa tych identyfikatorów do dopasowywania sal i pakietów do przechowywanych metadanych. Może to znacznie zmniejszyć ogólny rozmiar wiadomości dotyczących transakcji.
Ceny kombinacji pokoi i planów podróży znacznie zmieniają się w stosunku do opisów pokoi i pakietów, więc definiowanie metadanych raz, a następnie odwoływanie się do nich, jest znacznie skuteczniejszym komunikatem dotyczącym transakcji. Błędy takie jak niezgodne opisy pokoi możesz wyeliminować, korzystając z metadanych, zamiast definiować je bezpośrednio w danych.
Poniżej znajdziesz zalecany i najskuteczniejszy sposób definiowania metadanych i cen:
<!-- 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>
Obecność i pojemność
Podczas definiowania pakietów musisz znać różnicę między obłożeniem a pojemnością:
- Obecność
- Liczba gości, których ma dotyczyć pakiet. Na przykład „Pakiet Honeymoon” ma miejsce wynoszące 2. Wartość zajętości w pakiecie ustawiasz za pomocą elementu podrzędnego
<PackageData>
lub<RoomBundle>
. - Rozmiar
- Maksymalna liczba osób, które mogą pomieścić pokój. Pojemność sali może być równa lub większa niż liczba osób w pokoju. Na przykład pakiet „Apartament ślubny” w Twoim hotelu może pomieścić do 6 osób, ale cena pakietu obejmuje 2 osoby. Wartość pojemności pakietu ustalasz za pomocą elementu podrzędnego
<Capacity>
elementu<RoomData>
.
<Occupancy>
Przy wycenianiu pakietu pokoi musisz podać cenę dla liczby gości, dla których ma on być przeznaczony (wartość określona w elemencie <Occupancy>
pakietu). Jeśli zasada <Occupancy>
ma wartość 2, cena w tym pakiecie musi wynosić 2 osoby. Nie możesz ustawić atrybutu <Occupancy>
dla 4 gości i ustawić cenę pakietu dla 2 gości.
Pokoje wspólne
Korzystasz też z obłożenia i pojemności w pakietach pokoi, aby ustawić ceny za pokoje wieloosobowe (np. hostel). Na przykład aby ustawić cenę za pokój wieloosobowy z 8 łóżkami, ustaw liczbę osób na 1
i pojemność na 8
, a potem podaj tę nazwę w nazwie <RoomData>
. Zobacz przykład
Zaktualizuj pakiety
W tej sekcji dowiesz się, jak usunąć pakiet pokoi, który nie jest już dostępny, oraz jak zaktualizować cenę istniejącego pakietu.
Usuwanie pakietów pokoi
Pakiety są inne od cen hoteli w kwestii ich usunięcia.
Aby usunąć z zasobów reklamowych kombinację sali lub planu podróży, ustawiasz <Baserate>
elementu <Result>
na -1
. Aby usunąć pakiet sal na potrzeby określonej sali lub planu podróży, usuń element <RoomBundle>
z bloku <Result>
w komunikacie Transakcja.
Pakiety danych o pokojach w Twoich plikach danych są uznawane za zbiór od 0 do dziesiątek. Gdy wysyłasz do Google pakiety sal, wysyłasz bieżący, kompletny zestaw. Nie zmieniasz wartości pojedynczego pakietu sal, aby oznaczyć wcześniej dostępny pakiet jako niedostępny. Zestaw zawiera najnowszy komunikat o transakcjach, zastępując bieżący.
np. grupy A, B, C i D. Najpierw wyślesz wiadomość definiującą zestawy pokoi A, B, C i D. Później, jeśli pakiet B zostanie wyprzedany, wyślij cały pakiet z pakietami A, C i D. Jeśli wszystkie pakiety pokoi zostały wyprzedane, wyślij pusty zestaw.
Dostosowania cen
Aby zmienić cenę pakietu pokoi, ustaw nową właściwość <Baserate>
w elemencie <Result>
.
Za każdym razem, gdy w wiadomości dotyczących transakcji aktualizujesz blok <Result>
z pokoju lub planu podróży, musisz uwzględnić pełny zestaw dostępnych pokoi dla każdego pakietu <Result>
. Google zastąpi dotychczasowy zbiór zestawów. Jeśli nie uwzględnisz w grupie „<Result>
” żadnych pakietów pokoi, Google usunie wszystkie ich sale i plan podróży.
Aktualizacje metadanych
Aktualizujesz metadane grupy pokoi w odpowiedzi na: <Query>
od Google.
Odpowiadasz na wiadomość z zapytaniem o transakcję, która określa metadane dotyczące sali i pakietu dla określonych hoteli. Więcej informacji znajdziesz w artykule Wykonywanie wiadomości przy użyciu zapytania.