Tarif bersyarat adalah jenis aturan tarif yang memungkinkan Anda menawarkan tarif yang berbeda untuk itinerari, berdasarkan kriteria seperti perangkat, negara, atau apakah pengguna telah login ke Google.
Jika Anda memiliki lebih dari satu tarif publik atau bersyarat untuk itinerari atau Paket Kamar, pengguna akan melihat tarif terendah. Google selalu memilih tarif terendah yang memenuhi syarat untuk pengguna.
Ringkasan
Tarif bersyarat dapat dilihat di slot harga standar, dan hanya ditampilkan kepada pengguna yang penelusurannya memenuhi kriteria untuk tarif bersyarat terkait. Kriteria ini dapat didasarkan pada hal berikut:
- Perangkat pengguna akhir
- Negara pengguna akhir
- Preferensi bahasa pengguna akhir
- Subkumpulan dengan pengurangan sampel dari semua pengguna
- Apakah pengguna akhir login atau tidak
Untuk mengaktifkan tarif bersyarat, ubah hal berikut:
File XML aturan tarif: Menentukan ketentuan tarif bersyarat yang diterapkan.
Feed harga: Gunakan elemen
<Rate>
dalam pesan Transaksi untuk menetapkan tarif.File Halaman Landing: Tambahkan nilai aturan tarif tertentu ke deep link Anda.
Tarif bersyarat untuk perangkat tertentu
Tarif perangkat tertentu adalah tarif hotel yang hanya dapat dilihat dan dipesan oleh pengguna di perangkat tertentu seperti seluler, tablet, atau desktop. Tarif ini disediakan oleh partner Google, dan pengguna akhir dapat melihat serta memesan tarif perangkat tertentu yang sama di situs partner.
Tarif bersyarat untuk negara tertentu
Tarif negara tertentu adalah tarif hotel yang hanya dapat dilihat dan dipesan oleh pengguna yang menelusuri hotel dari negara tertentu. Google menentukan negara menggunakan alamat IP pengguna akhir. Tarif disediakan oleh partner Google, dan pengguna akhir dapat melihat serta memesan tarif negara tertentu yang sama di situs negara tertentu milik partner.
Tarif bersyarat untuk bahasa tertentu
Tarif bahasa tertentu hanya dapat dilihat oleh pengguna yang menelusuri hotel
sambil menggunakan setelan bahasa tertentu di Google. Ketentuan bahasa tertentu ditentukan menggunakan elemen <LanguageCode>
.
Bahasa tidak ditentukan dalam pesan permintaan Dengan kueri Konteks. Jadi, jika Anda menentukan <LanguageCode>
dalam aturan tarif, respons With Context harus menyertakan semua tarif khusus bahasa yang relevan.
Tarif bersyarat dengan penurunan sampel
Tarif bersyarat dengan penurunan sampel hanya terlihat pada subkumpulan acak dari semua pengguna yang memenuhi syarat. Frekuensi pengambilan sampel ditentukan menggunakan elemen <MaxUsersPercent>
dan dihitung menggunakan hal berikut:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
Tarif bersyarat untuk pengguna yang login
Tarif login hanya terlihat oleh pengguna yang telah login dengan Akun Google. Partner Google memberikan tarif, dan pengguna dapat melihat serta memesan tarif di situs partner itu sendiri. Tarif login ditentukan menggunakan elemen <UserSignedIn>
.
Karena Google selalu memilih tarif terendah yang memenuhi syarat, jika tarif bersyarat
lebih tinggi dari harga yang ditetapkan di tingkat <Result>
, tarif bersyarat
tidak akan pernah dipilih. Untuk menghindari hal ini, hapus
tarif di tingkat
<Result>
dan tentukan semua tarif. Atau, tanyakan kepada Manajer Akun Teknis Anda terkait cara menggunakan aturan tarif default untuk harga yang ditetapkan di tingkat <Result>
.
Membuat file XML aturan tarif
Aturan tarif untuk tarif bersyarat ditentukan menggunakan file XML aturan tarif. Untuk mengetahui informasi selengkapnya, lihat Referensi XML Aturan Tarif.
Memperbarui feed harga
Tarif bersyarat ditetapkan menggunakan elemen dalam pesan Transaksi.
Elemen <Rate>
juga dapat digunakan sebagai beberapa elemen turunan <Rates>
dalam elemen <RoomBundle>
atau <Result>
. Untuk menggunakannya sebagai tarif bersyarat, Anda harus menetapkan nilai atribut rate_rule_id
agar cocok dengan ID aturan tarif yang ditentukan dalam file XML aturan tarif.
Jika Anda tidak memiliki tarif jumlah tamu ganda publik default, tetapkan elemen turunan <Baserate>
dari pesan <Result>
ke -1
. Semua <Rates>
bersyarat yang dikirimkan ke Google dalam kasus ini akan dianggap valid.
Contoh
Dasar + kondisional
Contoh berikut menunjukkan pesan Transaksi yang berisi tarif dasar dan tarif bersyarat:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
</Rate>
</Rates>
</Result>
</Transaction>
Single RoomBundle
Contoh berikut menunjukkan pesan Transaksi yang berisi satu
tarif dalam <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomBundle>
<RoomID>single</RoomID>
<Baserate currency="USD">300.00</Baserate>
<Tax currency="USD">30.00</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</RoomBundle>
<RoomBundle>
<RoomID>3</RoomID> <!-- Links to data in metadata -->
<RatePlanID>basic</RatePlanID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<ChargeCurrency>web</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">269.00</Baserate>
<Tax currency="USD">2.69</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rates>
</Rates>
</RoomBundle>
</Result>
</Transaction>
RoomBundle multiple
Contoh berikut menunjukkan pesan Transaksi yang berisi beberapa
tarif dalam <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</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>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
Tidak ada tarif jumlah tamu ganda publik
Contoh berikut menunjukkan pesan Transaksi yang berisi tarif bersyarat tanpa tarif jumlah tamu ganda publik:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<!-- <Unavailable/> should not be specified when available nested rates
exist. -->
<Baserate currency="USD">-1</Baserate>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates. -->
<Rate rate_rule_id="mobile">
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Memperbarui file halaman landing
Untuk memastikan bahwa pengguna akhir yang memenuhi syarat dapat memesan tarif diskon melalui deep link, ubah file Halaman Landing. Penerapan tambahan juga mungkin diperlukan di situs pemesanan untuk menampilkan dan memenuhi tarif diskon dengan benar.
Kami berharap partner menerima harga yang ditampilkan pada deep link tarif bersyarat ini.
Pada deep link dinamis, Anda dapat menyertakan aturan tarif berdasarkan namanya, yaitu
atribut id
dari elemen <RateRule>
, dengan variabel RATE-RULE-ID
.
Contoh berikut menambahkan ID aturan tarif:
https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)&prid=(RATE-RULE-ID)
File Halaman Landing juga mendukung perintah IF-RATE-RULE-ID
yang memungkinkan Anda menentukan bagian URL sesuai keadaan, berdasarkan apakah aturan tarif ada:
https://bookingsite.com/(IF-RATE-RULE-ID)privatelanding.do(RATE-RULE-ID)(ELSE)landing.do(ENDIF)?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)¤cy=(USER-CURRENCY)
Contoh ini memilih antara dua halaman landing, bergantung pada apakah ID aturan tarif ditetapkan atau tidak.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan Variabel dan Kondisi.