Zimmerpakete

Mit Zimmerpaketen können Sie mehrere Zimmertypen für eine einzelne Unterkunft definieren oder einen Reiseplan eines Zimmers mit Preismerkmalen – zusätzlichen Services, die mit einem Preis und Verkaufsbedingungen verbunden sind – für Ihre Nutzer kombinieren, die über den Standardpreis hinausgehen.

Schlüsselkonzepte und Workflow

Mit Zimmerpaketen können Sie zusätzliche Kombinationen physischer Zimmertypen mit unterschiedlichen Servicepaketen anbieten.

Die folgende Abbildung zeigt Beispiele für Zimmerpakete:

In diesem Beispiel ist das erste Paket das Basiszimmer mit einem Rabatt für nur einen Erwachsenen. Das zweite ist ein anderer Zimmertyp, der für bis zu 3 Erwachsene verfügbar ist. Das dritte ist ein weiterer Zimmertyp innerhalb derselben Unterkunft. Das vierte ist ein „Premium“-Paket des Basiszimmers, das beispielsweise ein kostenloses Frühstück oder einen späteren Check-out beinhaltet.

Die folgenden Bilder zeigen Beispiele für Preismerkmale:

Die Anzeige von Zimmerpaketen und Preismerkmalen in Suchergebnissen unterliegt demselben Auswahlprozess wie Standard-Zimmerpreise.

Zimmerpakete

Zimmerpakete und Preismerkmale definieren Sie in Transaktionsnachrichten. Das Stammelement einer Transaktionsnachricht ist <Transaction>.

Die Struktur der Transaktionsnachricht hängt davon ab, was Sie tun: Sie definieren die Metadaten des Zimmerpakets oder Preismerkmals oder aktualisieren die Preise oder Verfügbarkeit des Zimmerpakets.

Metadaten
Definieren Sie Zimmerpaket- und Preismerkmal-Metadaten mit <PackageData> in einem <PropertyDataSet>-Element. Weitere Informationen finden Sie unter Zimmer- und Paketmetadaten definieren. Für Zimmerpakete werden vorhandene <RoomData>-Elemente für ihre Beschreibungen verwendet.
Preise und Verfügbarkeit
Definieren Sie Zimmerpaketpreise und -verfügbarkeit mit dem Element <RoomBundle> in einer <Result> für jede Paket/Reiseplan-Kombination. Weitere Informationen finden Sie unter Preise und Verfügbarkeit definieren.

Der Preis des Basiszimmers, Steuern und sonstige Gebühren sind unter <Result> obligatorisch, wenn das Zimmer nicht mit Zimmerpaketen verwendet wird. Bei Verwendung mit Zimmerpaketen können sie entfernt werden. Wenn Sie Zimmerpakete mit einem Live-Konto implementieren, gehen Sie so vor:

  1. Geben Sie den Preis des Basiszimmers, Steuern und andere Gebühren unter <Result> an und fügen Sie ein Zimmerpaket hinzu, das dem Basiszimmerpaket entspricht.

  2. Definieren Sie bei Bedarf zusätzliche Zimmerpakete innerhalb desselben <Result>-Blocks für andere Zimmertypen in diesem Hotel oder andere Dienstleistungspakete.

  3. Nachdem das Zimmerpaket gestartet wurde, entfernen Sie den Preis des Basiszimmers, die Steuern und andere Gebühren.

Zimmerpaketmetadaten

Wenn Sie Zimmerpakete und Preismerkmale definieren, definieren Sie in der Regel im Voraus die Beschreibung, zusätzliche Leistungen, die Teil des Preises sind, und andere Informationen zum Zimmerpaket. Diese Informationen werden als Zimmerpaketmetadaten bezeichnet. Auf diese Metadaten verweisen Sie dann in Ihren Preisaktualisierungen, schließen sie jedoch nicht in die Nachrichten für Preisaktualisierungen ein.

Verwenden Sie beim Definieren von Zimmerpaketen vorhandene <RoomData>-Elemente für die physischen Zimmerbeschreibungen und <PackageData>-Elemente für die Preismerkmale und Bedingungen, die nicht Teil der physischen Zimmerbeschreibung sind.

Wenn Sie die Elemente <RoomData> und <PackageData> verwenden, können Sie die Größe Ihrer Hotelliste und Ihres Hotelpreisfeeds erheblich reduzieren, da sich dadurch die Menge an sich wiederholenden Daten reduziert, die in Transaktionsnachrichten gesendet werden.

Daten wie der Zimmername und die Beschreibung wiederholen sich beispielsweise in der Regel für jeden Reiseplan. Mit den Elementen <RoomData> und <PackageData> können Sie diesen Datentyp nur einmal definieren. Die reiseplanspezifischen Zimmerpaketdaten werden dann zur Ansicht für den Endnutzer mit den gespeicherten Zimmer- und Paketdefinitionen zusammengeführt.

Google gleicht Ihre Metadaten mit Ihren reiseplanspezifischen Daten ab, um den Inhalt Ihrer Anzeigen zu rendern. Es gibt eine spezielle Verarbeitung, um die Namen und Beschreibungen der Elemente <RoomData> und <PackageData> zu kombinieren. So kann das physische Zimmer in <RoomData> und Preismerkmale und Paketdetails in <PackageData> beschrieben werden.

Wenn Sie sowohl die Zimmer- als auch die Paketdaten für ein einzelnes Zimmer oder Zimmerpaket definieren, bezieht Google beide in die Anzeigenausgabe ein, getrennt durch einen Bindestrich.

Fotorichtlinien

Wenn Sie Raumfotos senden, beachten Sie die folgenden Richtlinien, damit Ihre Fotos den Nutzern angezeigt werden:

  • Senden Sie Fotos für jeden Zimmertyp, einschließlich Fotos von barrierefreien Zimmern, z. B. ausgewiesenen barrierefreien Zimmern mit verschiedenen Badarmaturen wie einer barrierefreien Dusche.

  • Fügen Sie mindestens vier Fotos des Zimmers und ein Foto des Badezimmers bei.

  • Fotos sollten das Zimmer selbst und nicht das Gebäude zeigen. Die wichtigsten Fotos sind vom Bett, vom ganzen Zimmer, vom Badezimmer, vom Wohnbereich und von der Aussicht aus dem Zimmer (wobei der Rest des Zimmers auf dem gleichen Foto zu sehen ist) und gegebenenfalls vom Balkon, der Terrasse oder der Terrasse.

    Es ist auch hilfreich, Fotos vom Schreibtisch, von der Küche, von der Kaffee-/Teemaschine und von den einzelnen Ausstattungsmerkmalen der Zimmer zu machen.

  • Vermeiden Sie Fotos von Personen und Objekten, z. B. von der Außenansicht oder der Ausstattung der Unterkunft, Sightseeing/Tourismus und Essen.

  • Vermeiden Sie Nahaufnahmen von Objekten, z. B. Nahaufnahmen von Stielglas.

  • Vermeiden Sie Branding und Marken, obwohl Markenpflegeprodukte oder Markenpflegeprodukte auf einem Foto verwendet werden dürfen, das den gesamten Badezimmerbereich abbildet. Fotos dürfen keine großen Textblöcke, Logos oder Wasserzeichen enthalten.

  • Stellen Sie horizontale Standardfotos im Querformat mit einem breiten Sichtfeld zur Verfügung. Vermeiden Sie Fischaugenfotos und verzerrte Fotos. Nehmen Sie Fotos mit der höchsten Auflösung auf, um ein besseres Ranking zu erzielen. Sie müssen dasselbe Foto nicht in verschiedenen Auflösungen einreichen.

Datenvorrang

Zimmerpaketdaten werden aus allen Quellen erfasst und unter Anwendung von Prioritätsregeln kombiniert, um die endgültigen Daten für ein bestimmtes Hotel, einen Reiseplan und ein Zimmerpaket zu erstellen. Es gilt die folgende Reihenfolge, von der niedrigsten zur höchsten Priorität:

  1. (Niedrigste) Partnerdaten
  2. Property-Daten
  3. <RoomData>, wobei <RoomID> mit <RoomID> im Block <RoomBundle> übereinstimmt
  4. <PackageData>, wobei <PackageID> mit <PackageID> im Block <RoomBundle> übereinstimmt
  5. (Höchstes) <RoomBundle>

Preise und Verfügbarkeit festlegen

Verwenden Sie zum Definieren der Preise und Verfügbarkeit eines Zimmerpakets für jede Paket- oder Reiseplankombination ein <RoomBundle>-Element in einer Transaktionsnachricht. Das Element <RoomBundle> muss sich innerhalb des Elements <Result> befinden. Im Folgenden sehen Sie Beispielcode für zwei <RoomBundle>-Elemente. In diesem Beispiel verweisen die beiden <RoomBundle>-Elemente mit <RoomID> und <PackageID> auf Zimmer- und Paketmetadaten.

Der enthaltene Satz von Zimmerpaketen überschreibt für jeden <Result> den vorhandenen Satz für diese Hotel- oder Reiseplankombination. Wenn Sie im Element <Result> keine Zimmerpakete oder Preismerkmale angeben, werden alle Zimmerpakete entfernt und in den Suchergebnissen wird nur das einfache Zimmer für dieses Hotel oder diesen Reiseplan angezeigt.

Verwenden Sie Elemente wie <Name>, um Ihre Zimmerpakete für potenzielle Kunden ansprechender zu gestalten, und achten Sie darauf, dass sie mit der Landingpage des Hotels übereinstimmen. In diesem Beispiel definieren Sie Namen und andere beschreibende Informationen in den Metadaten.

<RatePlanID> ist optional und stellt die eindeutige Kennung für eine Kombination aus Zimmer und Paket dar. Wir empfehlen dringend, RatePlanID als Variable zu verwenden, um Ihre dynamische Landingpage-URL (früher Point of Sale) zu erstellen. Weitere Informationen finden Sie unter Variablen und Bedingungen verwenden.

Die folgenden Elemente sind in Zimmerpaketen optional:

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

Wenn Sie ein Zimmerpaket in einem Live-Konto implementieren, entfernen Sie <Baserate>, nachdem das Zimmerpaket aktiviert wurde.

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

Zimmer- und Paketmetadaten definieren

Verwenden Sie zum Definieren von Zimmerpaket-Metadaten die Elemente <PackageData> und <RoomData> im Element <PropertyDataSet> einer Transaktionsnachricht.

Sie definieren Zimmer- und Paketmetadaten in einer Transaktionsnachricht, die von den Preis- und Verfügbarkeitsdaten getrennt ist. Wenn Sie diese Daten im Voraus definieren, müssen Ihre Preisaktualisierungen keine sich wiederholenden Informationen wie Beschreibungen, Foto-URLs, Ausstattung und andere Daten zu jedem einzelnen Zimmer oder Paket für jeden Reiseplan enthalten.

Google speichert die Metadaten und fügt sie in Ihre Anzeigen ein, wenn diese eingeblendet werden. Sie können die Zimmer- und Paketmetadaten jederzeit mit einer neuen Transaktionsnachricht aktualisieren.

In der Transaktionsnachricht legen Sie für jeden Block eine Paket-ID und eine Zimmer-ID fest, auf die Sie dann bei Preisaktualisierungen in den <Result>-Blöcken verweisen.

Wenn sich die Zimmer- und Paketdaten ändern, z. B. wenn Sie einen neuen Zimmertyp in einer Unterkunft hinzufügen, eine neue Transaktionsnachricht mit den aktualisierten Zimmer- und Paketdaten senden, ersetzt Google die vorhandenen Metadaten zu einem Zimmer oder Paket durch die neuen Daten.

Google empfiehlt, Metadaten bei der Ersteinrichtung zu definieren. Nachdem Sie die Metadaten definiert haben, müssen Sie in Ihren Preisaktualisierungen nur auf die Werte <RoomID> und <PackageID> verweisen, anstatt alle Informationen noch einmal anzugeben. Google ordnet anhand dieser IDs Zimmer und Zimmerpakete den gespeicherten Metadaten zu. Dadurch kann sich die Gesamtgröße Ihrer Transaktionsnachrichten erheblich verringern.

Da sich die Preise für Zimmer- oder Reiseplankombinationen viel häufiger ändern als die Zimmer- oder Paketbeschreibungen, ist es wesentlich effizienter, Metadaten einmalig zu definieren und dann darauf zu verweisen. Darüber hinaus können Fehler wie nicht übereinstimmende Zimmerbeschreibungen durch die Verwendung von Metadaten vermieden werden, anstatt Daten inline zu definieren.

Dies ist die empfohlene und effizienteste Methode, um Metadaten und Preise separat zu definieren:

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

Belegung und Kapazität

Beim Definieren von Zimmerpaketen müssen Sie den Unterschied zwischen Belegung und Kapazität kennen:

Anwesenheit
Die Anzahl der Gäste, für die ein Zimmerpaket gelten soll. Das „Flitterwochenpaket“ hat beispielsweise eine Belegung von zwei Personen. Den Wert für die Belegung eines Pakets legen Sie mit dem untergeordneten Element <Occupancy> des Elements <PackageData> oder <RoomBundle> fest.
Kapazität
Die maximale Anzahl von Personen, die ein Zimmer physisch belegen können. Die Kapazität eines Zimmers ist immer gleich oder höher als die Belegung. Die „Flitterwochen-Suite“ in Ihrem Hotel hat beispielsweise eine maximale Kapazität von sechs Personen, Sie legen jedoch den Preis für ein Paket für zwei Gäste fest. Den Kapazitätswert eines Pakets legen Sie mit dem untergeordneten Element <Capacity> des Elements <RoomData> fest.

Bei der Preisangabe für ein Zimmerpaket müssen Sie den Preis für die Anzahl der Gäste angeben, für die das Paket bestimmt ist (die im Element <Occupancy> des Pakets angegebene Anzahl). Wenn <Occupancy> auf 2 gesetzt ist, muss der Preis in diesem Paket für zwei Personen sein. Sie können <Occupancy> nicht auf vier Gäste festlegen und den Paketpreis für zwei Gäste festlegen.

Mehrbettzimmer

Mit Belegung und Kapazität in Zimmerpaketen legen Sie auch Preise für Gemeinschaftszimmer (z. B. Hostel) fest. Wenn Sie beispielsweise einen Preis pro Person für ein Mehrbettzimmer mit 8 Betten festlegen möchten, setzen Sie die Belegung auf 1 und die Kapazität auf 8 und kennzeichnen dies im Namen <RoomData>. Beispiel ansehen

Zimmerpakete aktualisieren

In diesem Abschnitt wird beschrieben, wie Sie ein nicht mehr verfügbares Zimmerpaket entfernen und den Preis eines vorhandenen Zimmerpakets aktualisieren können.

Zimmerpaket entfernen

Zimmerpakete unterscheiden sich von Hotelpreisen in der Art und Weise, wie Sie sie entfernen.

Wenn Sie eine Kombination aus Zimmer oder Reiseplan aus dem Inventar entfernen möchten, setzen Sie den <Baserate> des <Result>-Elements auf -1. Wenn Sie ein Zimmerpaket für ein bestimmtes Zimmer oder einen bestimmten Reiseplan entfernen möchten, entfernen Sie in der Transaktionsnachricht das Element <RoomBundle> aus dem Block <Result>.

Zimmerpakete in Ihren Datenfeeds werden als Sätze betrachtet, die zwischen 0 und zehn von ihnen liegen. Wenn Sie Zimmerpakete an Google senden, senden Sie den aktuellen, vollständigen Satz. Sie können die Werte eines einzelnen Zimmerpakets nicht ändern, um ein zuvor verfügbares Zimmer als nicht verfügbar zu markieren. Der aktuelle Satz wird durch den Paketsatz in der letzten Transaktionsnachricht ersetzt.

Zum Beispiel gibt es die Sets A, B, C und D. Zuerst senden Sie eine Nachricht, in der die Zimmerpakete A, B, C und D definiert sind. Wenn Paket B später ausverkauft ist, senden Sie den gesamten Satz nur mit den Sets A, C und D noch einmal. Wenn alle Zimmerpakete ausverkauft sind, senden Sie einen leeren Satz von Zimmerpaketen.

Preisanpassungen

Wenn Sie den Preis eines Zimmerpakets ändern möchten, legen Sie im Element <Result> den neuen <Baserate> fest.

Jedes Mal, wenn Sie den Block <Result> einer Zimmer/Reiseplan-Kombination in Ihren Transaktionsnachrichten aktualisieren, müssen Sie für jede <Result> einen vollständigen Satz verfügbarer Zimmerpakete angeben. Google ersetzt den vorhandenen Satz von Zimmerpaketen durch den neuen Satz. Wenn Sie in <Result> keine Zimmerpakete hinzufügen, entfernt Google alle Zimmerpakete für dieses Zimmer oder diesen Reiseplan.

Aktualisierungen von Metadaten

Sie aktualisieren die Zimmerpaketmetadaten mit einer Antwort auf eine <Query> von Google.

Sie antworten auf eine Anfragenachricht mit einer Transaktionsnachricht, in der die Zimmer- und Paketmetadaten für die angegebenen Hotels definiert sind. Weitere Informationen finden Sie unter Abfragenachrichten.