Paket Kamar

Paket Kamar memungkinkan Anda menetapkan beberapa tipe kamar untuk satu properti, atau menggabungkan itinerari kamar dengan fitur tarif—layanan tambahan yang dilengkapi dengan tarif dan ketentuan penjualan—kepada pengguna Anda di luar harga standar.

Konsep utama dan alur kerja

Dengan Paket Kamar, Anda dapat menawarkan kombinasi tambahan jenis kamar fisik dengan berbagai paket layanan.

Contoh

Gambar berikut menunjukkan contoh paket Room di perangkat desktop dan seluler:

Paket Kamar dengan gambar

Contoh ini adalah versi seluler paket Room yang terdiri dari semua jenis kamar yang berbeda untuk jumlah tamu yang diperlukan dan gambar kamar masing-masing.

Catatan: Paket kamar tanpa gambar akan diganti dengan gambar placeholder tempat tidur.

Beri rating fitur

Gambar berikut menunjukkan contoh fitur tarif:

Tampilan Paket Kamar dan fitur tarif di hasil penelusuran diatur oleh proses pemilihan yang sama seperti tarif kamar standar.

Paket Kamar

Anda menentukan Paket Kamar dan fitur tarif dalam pesan Transaksi. Elemen root pesan Transaksi adalah <Transaction>.

Struktur pesan Transaksi bergantung pada tindakan Anda: menentukan metadata tentang Paket Kamar atau fitur tarif, atau memperbarui harga atau ketersediaan Paket Kamar.

Metadata
Tentukan metadata Paket Kamar dan fitur tarif dengan <PackageData> dalam elemen <PropertyDataSet>. Untuk mengetahui informasi selengkapnya, lihat Menentukan metadata kamar dan paket. Paket Kamar menggunakan elemen <RoomData> yang ada untuk deskripsi kamar fisiknya.
Harga dan ketersediaan
Tentukan harga dan ketersediaan Paket Kamar dengan elemen <RoomBundle> dalam <Result> untuk setiap kombinasi paket/itinerari. Untuk mengetahui informasi selengkapnya, lihat Menentukan harga dan ketersediaan.

Tarif, pajak, dan biaya lain kamar dasar bersifat wajib di bawah <Result> jika tidak digunakan dengan Paket Kamar, dan dapat dihapus jika digunakan dengan Paket Kamar. Jika Anda menerapkan Room Bundle menggunakan akun aktif, ikuti langkah-langkah berikut:

  1. Sertakan tarif kamar dasar, pajak, dan biaya lainnya di bagian <Result>, lalu tambahkan satu Paket Kamar yang cocok dengan Paket Kamar dasar.

  2. Jika diperlukan, tentukan Paket Kamar tambahan dalam blok <Result> yang sama untuk jenis kamar lain di properti tersebut atau paket layanan yang berbeda.

  3. Setelah Paket Kamar diluncurkan, hapus tarif kamar dasar, pajak, dan biaya lainnya.

Metadata Paket Kamar

Saat menentukan Paket Kamar dan fitur tarif, Anda biasanya menentukan deskripsi, layanan tambahan yang merupakan bagian dari tarif, dan informasi lain tentang Paket Kamar sebelum tersedia. Informasi ini dikenal sebagai metadata Paket Kamar. Kemudian, Anda mereferensikan metadata ini dalam pembaruan harga, tetapi jangan menyertakannya pada pesan pembaruan harga.

Saat Anda menentukan Paket Kamar, gunakan elemen <RoomData> yang ada untuk deskripsi kamar fisik dan elemen <PackageData> untuk fitur tarif dan persyaratan yang bukan bagian dari deskripsi kamar fisik.

Menggunakan elemen <RoomData> dan <PackageData> dapat mengurangi ukuran Daftar Hotel dan Feed Harga Hotel Anda secara signifikan karena mengurangi jumlah data berulang yang dikirim dalam pesan Transaksi.

Misalnya, data seperti nama dan deskripsi kamar biasanya diulang untuk setiap itinerari. Anda dapat menggunakan elemen <RoomData> dan <PackageData> untuk menentukan jenis data ini sekali. Data Paket Kamar spesifik berdasarkan itinerari kemudian digabung dengan definisi paket dan kamar yang disimpan untuk ditampilkan kepada pengguna akhir.

Google mencocokkan metadata Anda dengan data spesifik berdasarkan itinerari untuk merender konten iklan Anda. Terdapat pemrosesan khusus untuk menggabungkan nama dan deskripsi dari elemen <RoomData> dan <PackageData>, sehingga kamar fisik dapat dijelaskan dalam <RoomData> serta fitur tarif dan detail paket berada di <PackageData>.

Jika Anda menentukan data kamar dan data paket untuk satu kamar atau Paket Room, Google akan menyertakan keduanya dalam output iklan, dipisahkan dengan tanda hubung.

Pedoman foto

Saat mengirim foto ruangan, berikut beberapa panduan yang harus Anda ikuti untuk memastikan foto Anda ditampilkan kepada pengguna:

  • Kirim foto untuk setiap jenis kamar, termasuk foto kamar khusus difabel—misalnya, kamar khusus difabel dengan berbagai perlengkapan kamar mandi, seperti shower gantung.

  • Sertakan setidaknya empat foto kamar dan setidaknya satu foto kamar mandi.

  • Foto harus menampilkan kamar itu sendiri, bukan properti. Foto yang paling penting adalah tempat tidur, seluruh ruangan, kamar mandi, ruang keluarga, dan pemandangan dari ruangan (dengan seluruh ruangan dalam foto yang sama), dan, jika ada, balkon, teras, atau beranda.

    Sebaiknya Anda juga mengambil foto meja, dapur, alat pembuat kopi/teh, dan fitur kamar yang berbeda.

  • Hindari foto orang dan properti—misalnya, fasilitas properti atau tampilan luar—wisata/pariwisata, dan makanan.

  • Hindari foto objek yang dekat, seperti gambar tangkai dari jarak dekat.

  • Hindari branding dan merek, meskipun perlengkapan mandi berlabel atau bermerek dapat disertakan dalam foto yang menampilkan seluruh area kamar mandi. Foto tidak boleh menampilkan blok teks, logo, atau watermark yang besar.

  • Berikan foto standar, lanskap (horizontal) dengan ruang pandang yang lebar; hindari foto fisheye dan terdistorsi. Ambil foto dengan resolusi tertinggi untuk menaikkan peringkat. Anda tidak perlu mengirimkan foto yang sama dalam berbagai resolusi.

Prioritas data

Data Paket Kamar dikumpulkan dari semua sumber dan digabungkan, menggunakan aturan prioritas, untuk menghasilkan data akhir bagi hotel, itinerari, dan Paket Kamar tertentu. Urutannya adalah sebagai berikut, dari prioritas terendah hingga tertinggi:

  1. (Terendah) Data partner
  2. Data properti
  3. <RoomData>, dengan <RoomID> cocok dengan <RoomID> dalam blok <RoomBundle>
  4. <PackageData>, dengan <PackageID> cocok dengan <PackageID> dalam blok <RoomBundle>
  5. (Tertinggi) <RoomBundle>

Menentukan harga dan ketersediaan

Untuk menentukan harga dan ketersediaan Paket Kamar, gunakan elemen <RoomBundle> dalam pesan Transaksi untuk setiap kombinasi paket atau itinerari. Elemen <RoomBundle> harus berada di dalam elemen <Result>. Kode contoh untuk dua elemen <RoomBundle> ditampilkan di bawah ini. Perlu diperhatikan bahwa dalam contoh ini, dua elemen <RoomBundle> mereferensikan metadata paket dan kamar menggunakan <RoomID> dan <PackageID>.

Untuk setiap <Result>, kumpulan Paket Kamar yang dimuat akan menimpa kumpulan yang ada untuk kombinasi properti atau itinerari tersebut. Jika Anda tidak menentukan Paket Kamar atau fitur tarif di elemen <Result>, semua Paket Kamar akan dihapus dan hanya kamar standar untuk hotel atau itinerari tersebut yang akan ditampilkan di hasil penelusuran.

Pastikan untuk menggunakan elemen seperti <Name> agar Paket Kamar Anda lebih menarik bagi calon pelanggan dan pastikan paket tersebut cocok dengan halaman landing hotel. Dalam contoh ini, Anda akan menentukan nama dan informasi deskriptif lainnya dalam metadata.

<RatePlanID> bersifat opsional dan merepresentasikan ID unik untuk kombinasi kamar dan paket. Sebaiknya gunakan RatePlanID sebagai variabel untuk membuat URL halaman landing dinamis (sebelumnya disebut Tempat Penjualan). Untuk mengetahui detailnya, lihat Menggunakan Variabel dan Kondisi.

Elemen berikut bersifat opsional dalam Paket Kamar:

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

Saat Anda menerapkan Paket Kamar di akun aktif, hapus <Baserate> setelah Paket Kamar diaktifkan.

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

Menentukan metadata kamar dan paket

Untuk menentukan metadata Paket Kamar, gunakan elemen <PackageData> dan <RoomData> dalam elemen <PropertyDataSet> pesan Transaksi.

Anda menentukan metadata paket dan kamar dalam pesan Transaksi yang terpisah dari data harga dan ketersediaan. Dengan menentukan data ini terlebih dahulu, pembaruan harga Anda tidak perlu menyertakan informasi berulang seperti deskripsi, URL foto, fasilitas, dan data lain tentang setiap kamar atau paket untuk masing-masing itinerari.

Google menyimpan metadata untuk Anda dan memasukkannya ke dalam iklan saat ditampilkan. Anda dapat memperbarui metadata kamar dan paket kapan saja dengan pesan Transaksi baru.

Dalam pesan Transaksi, Anda menetapkan ID paket dan ID kamar pada setiap blok yang kemudian Anda referensikan dalam blok <Result> pembaruan harga.

Jika data kamar dan paket berubah—misalnya, jika Anda menambahkan jenis kamar baru di properti, kirim pesan Transaksi baru yang berisi data paket dan kamar yang diperbarui—Google akan mengganti metadata yang ada tentang kamar atau paket dengan data baru.

Google merekomendasikan agar Anda menentukan metadata selama penyiapan awal. Setelah menentukan metadata, Anda hanya perlu mereferensikan nilai <RoomID> dan <PackageID> dalam pembaruan harga, bukan menyertakan semua informasi tersebut lagi. Google menggunakan ID tersebut untuk mencocokkan kamar dan Paket Kamar dengan metadata yang tersimpan. Hal ini dapat mengurangi ukuran keseluruhan pesan Transaksi Anda secara signifikan.

Karena harga untuk kombinasi kamar atau itinerari berubah jauh lebih sering daripada deskripsi kamar atau paket, menentukan metadata sekali, lalu mereferensikannya adalah penggunaan pesan Transaksi yang jauh lebih efisien. Selain itu, error seperti deskripsi kamar yang tidak cocok dapat dihilangkan menggunakan metadata, bukan menentukan data secara inline.

Metode yang direkomendasikan dan paling efisien untuk menentukan metadata dan harga secara terpisah ditampilkan di bawah ini:

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

Okupansi dan kapasitas

Saat menentukan Paket Kamar, Anda harus memahami perbedaan antara jumlah tamu dan kapasitas:

Kehadiran
Jumlah tamu yang dimaksudkan untuk diterapkan pada Paket Kamar. Misalnya, "Paket Bulan Madu" memiliki jumlah tamu dua. Anda menetapkan nilai jumlah tamu paket menggunakan elemen turunan <Occupancy> dari elemen <PackageData> atau <RoomBundle>.
Kapasitas
Jumlah maksimum orang yang dapat diakomodasi oleh kamar secara fisik. Kapasitas kamar selalu sama dengan atau lebih tinggi dari jumlah tamu. Misalnya, "Suite Bulan Madu" di hotel Anda memiliki kapasitas maksimum enam orang, tetapi Anda dapat menetapkan harga paket untuk dua tamu. Anda menetapkan nilai kapasitas paket menggunakan elemen turunan <Capacity> dari elemen <RoomData>.

Saat menetapkan harga Paket Kamar, Anda harus memberikan harga untuk jumlah tamu yang dimaksudkan untuk paket tersebut (nilai yang ditentukan dalam elemen <Occupancy> paket). Jika <Occupancy> ditetapkan ke dua, maka harga dalam paket tersebut harus untuk dua orang. Anda tidak dapat menetapkan <Occupancy> ke empat tamu, dan menetapkan harga paket untuk dua tamu.

Kamar bersama

Anda juga menggunakan Occupancy dan Capacity dalam Paket Kamar untuk menetapkan harga akomodasi kamar bersama—misalnya, hostel. Misalnya, guna menetapkan harga per orang untuk kamar asrama yang memiliki 8 tempat tidur, Anda perlu menetapkan Occupancy ke 1 dan Capacity ke 8, serta mengidentifikasinya seperti itu dalam nama <RoomData>. Lihat contoh.

Memperbarui Paket Kamar

Bagian ini menjelaskan cara menghapus Paket Kamar yang tidak lagi tersedia dan cara memperbarui harga Paket Kamar yang ada.

Penghapusan Paket Kamar

Paket Kamar berbeda dengan harga hotel dalam cara menghapusnya.

Untuk menghapus kombinasi kamar atau itinerari dari inventaris, tetapkan <Baserate> elemen <Result> ke -1. Untuk menghapus Paket Kamar bagi kamar atau itinerari tertentu, hapus elemen <RoomBundle> dari blok <Result> dalam pesan Transaksi.

Paket Kamar di feed data Anda dianggap sebagai kumpulan, yang jumlahnya berkisar antara 0 sampai puluhan. Saat mengirimkan Paket Kamar ke Google, Anda mengirimkan kumpulan lengkap saat ini. Anda tidak mengubah nilai setiap Paket Kamar untuk menandai yang sebelumnya tersedia sebagai tidak tersedia. Apa pun kumpulan paket yang ada dalam pesan Transaksi terbaru akan menggantikan kumpulan saat ini.

Misalnya, ada paket A, B, C, dan D. Pertama, Anda harus mengirim pesan yang menentukan kumpulan paket kamar A, B, C, dan D. Kemudian, jika paket B terjual habis, Anda mengirim ulang seluruh kumpulan hanya dengan paket A, C, dan D. Jika semua Paket Kamar telah terjual habis, kirim kumpulan Paket Kamar kosong.

Penyesuaian harga

Untuk mengubah harga Paket Kamar, tetapkan <Baserate> baru di elemen <Result>.

Setiap kali memperbarui blok <Result> kamar/itinerari dalam pesan Transaksi, Anda harus menyertakan kumpulan lengkap Paket Kamar yang tersedia untuk setiap <Result>. Google mengganti kumpulan Paket Kamar yang sudah ada dengan kumpulan baru. Jika Anda tidak menyertakan Paket Kamar di <Result>, Google akan menghapus semua Paket Kamar untuk kamar atau itinerari tersebut.

Pembaruan metadata

Anda memperbarui metadata Paket Kamar dengan respons terhadap <Query> dari Google.

Anda merespons pesan Kueri dengan pesan Transaksi yang menentukan metadata paket dan kamar untuk hotel tertentu. Untuk mengetahui informasi selengkapnya, lihat Pesan Kueri.