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.

Wichtige Konzepte und Workflow

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

Beispiele

Die folgenden Bilder zeigen Beispiele für Zimmerpakete auf Computern und Mobilgeräten:

Zimmerpakete mit Bildern

Dieses Beispiel ist die mobile Version von Zimmerpaketen, die alle verschiedenen Zimmertypen für die erforderliche Anzahl von Personen und die zugehörigen Zimmerbilder enthält.

Hinweis: Zimmerpakete ohne Bilder werden durch ein Platzhalterbild für ein Bett ersetzt.

Features bewerten

Die folgenden Bilder zeigen Beispiele für Preismerkmale:

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

Zimmerpakete

Zimmerpakete und Preismerkmale werden in Transaktionsnachrichten definiert. Das Stammelement einer Transaktionsnachricht ist <Transaction>.

Die Struktur der Transaktionsnachricht hängt davon ab, ob Sie die Metadaten für das Zimmerpaket oder Preismerkmal definieren oder die Preise oder die Verfügbarkeit des Zimmerpakets aktualisieren.

Metadaten
Definieren Sie Zimmerpaket- und Preismerkmalmetadaten 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 <RoomBundle>-Element in einem <Result> für jede Kombination aus Paket und Reiseplan. 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 die Preise entfernt werden. Wenn Sie Room-Bundles mit einem Live-Konto implementieren, gehen Sie so vor:

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

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

  3. Entfernen Sie nach der Einführung des Zimmerpakets den Preis, die Steuern und die sonstigen Gebühren des Basiszimmers.

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 Zimmerpaket-Metadaten bezeichnet. Auf diese Metadaten verweisen Sie später in Ihren Preisaktualisierungen, beziehen sie aber nicht in die Preisaktualisierungsnachrichten ein.

Verwenden Sie beim Definieren von Zimmerpaketen vorhandene <RoomData>-Elemente für die physischen Zimmerbeschreibungen und <PackageData>-Elemente für die Preismerkmale und Konditionen, 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 anschließend mit den gespeicherten Zimmer- und Paketdefinitionen zusammengeführt, um sie dem Endnutzer anzuzeigen.

Google gleicht Ihre Metadaten mit Ihren reiseplanspezifischen Daten ab, um den Inhalt Ihrer Anzeigen zu rendern. Es gibt ein spezielles Verfahren, um Namen und Beschreibungen der Elemente <RoomData> und <PackageData> zu kombinieren. Auf diese Weise können das physische Zimmer in <RoomData> und die Preismerkmale in <PackageData> beschrieben werden.

Wenn Sie sowohl die Zimmerdaten als auch die Paketdaten für ein Zimmer oder Zimmerpaket definieren, bezieht Google beides in die Anzeigenausgabe ein (getrennt durch einen Gedankenstrich).

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. speziell für Personen mit eingeschränkter Mobilität vorgesehene Zimmer mit verschiedenen Badezimmereinrichtungen wie einer rollstuhlgerechten Dusche.

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

  • 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, der Küche, dem Kaffee-/Teekocher und den Besonderheiten des Zimmers aufzunehmen.

  • Vermeiden Sie Fotos von Personen und Objekten, z. B. von der Außen- oder Gebäudeausstattung, von Sightseeing/Tourismus und Essen.

  • Vermeiden Sie Nahaufnahmen von Objekten wie z. B. von Glaswaren.

  • 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 bereit. Vermeiden Sie Fischaugenfotos und verzerrte Fotos. Fotografieren Sie mit der höchsten Auflösung, um ein besseres Ranking zu erzielen. Sie müssen dasselbe Foto nicht in verschiedenen Auflösungen einreichen.

Datenvorrang

Zimmerpaketdaten werden von allen Quellen gesammelt 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 wird die folgende Reihenfolge verwendet, von der niedrigsten zur höchsten Priorität:

  1. (Niedrigste) Partnerdaten
  2. Immobiliendaten
  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> sollte 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 würden Sie Namen und andere beschreibende Informationen in den Metadaten definieren.

<RatePlanID> ist optional und stellt die eindeutige Kennung für eine Zimmer- und Paketkombination 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

Zum Definieren von Zimmerpaketmetadaten verwenden Sie die Elemente <PackageData> und <RoomData> innerhalb des Elements <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 später bei Preisaktualisierungen in den <Result>-Blöcken verweisen.

Wenn sich die Zimmer- und Paketdaten ändern, z. B. wenn Sie einen neuen Zimmertyp für ein Hotel hinzufügen, senden Sie eine neue Transaktionsnachricht mit den aktualisierten Zimmer- und Paketdaten. Google ersetzt dann 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 weist anhand der IDs die gespeicherten Metadaten den Zimmern und Zimmerpaketen zu. Dadurch verringern Sie die Größe Ihrer Transaktionsnachrichten erheblich.

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. Außerdem können Fehler wie nicht übereinstimmende Zimmerbeschreibungen durch die Verwendung von Metadaten vermieden werden, anstatt Daten inline zu definieren.

Die empfohlene und effizienteste Methode zum separaten Definieren von Metadaten und Preisen ist unten dargestellt:

<!-- 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 zwischen Belegung und Kapazität unterscheiden:

Anwesenheit
Die Anzahl der Gäste, für die ein Zimmerpaket gelten soll. Das „Flitterwochenpaket“ hat beispielsweise eine Belegung von zwei Personen. Den Belegungswert für ein Paket legen Sie mit dem untergeordneten Element <Occupancy> der Elemente <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.

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

Mehrbettzimmer

Sie können über die Belegung und Kapazität in Zimmerpaketen die Preise für Mehrbettzimmer (z. B. Jugendherberge) festlegen. 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 identifizieren Sie 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.

Zimmerpaket entfernen

Zimmerpakete werden anders als Hotelpreise entfernt.

Wenn Sie eine Zimmer- oder Reiseplankombination aus dem Inventar entfernen möchten, setzen Sie den <Baserate> des Elements <Result> 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 Dutzende davon liegen. Wenn Sie Zimmerpakete an Google senden, senden Sie den aktuellen, vollständigen Satz. Sie ändern die Werte eines einzelnen Zimmerpakets nicht, um ein zuvor verfügbares Zimmer als nicht verfügbar zu kennzeichnen. Der aktuelle Satz wird durch den Paketsatz in der letzten Transaktionsnachricht ersetzt.

Es gibt z. B. die Pakete 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 mit den Paketen A, C und D noch einmal. Wenn alle Zimmerpakete ausverkauft sind, können Sie einen leeren Satz von Zimmerpaketen senden.

Preisanpassungen

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

Geben Sie bei jeder Aktualisierung des Blocks <Result> einer Zimmer/Reiseplan-Kombination in Ihren Transaktionsnachrichten für jeden Block <Result> einen vollständigen Satz verfügbarer Zimmerpakete an. 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.

Metadatenaktualisierungen

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

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