Nutzerabhängige Preise

Nutzerabhängige Preise sind eine Preisregel, mit der Sie unterschiedliche Preise für Reisepläne anbieten können, die auf Kriterien wie Gerät und Land des Nutzers basieren oder danach, ob der Nutzer bei Google angemeldet ist.

Wenn Sie für einen Reiseplan oder ein Zimmerpaket mehr als einen öffentlichen oder nutzerabhängigen Preis haben, sieht der Nutzer den niedrigsten Preis. Google wählt immer den niedrigsten zulässigen Preis für den Nutzer aus.

Überblick

Nutzerabhängige Preise sind in den Standardpreisslots sichtbar und werden nur Nutzern angezeigt, deren Suchanfragen die Kriterien für den zugehörigen nutzerabhängigen Preis erfüllen. Diese Kriterien können auf Folgendem basieren:

Ändern Sie Folgendes, um nutzerabhängige Preise zu aktivieren:

  • XML-Datei für Preisregeln: Definieren Sie die Bedingungen, unter denen die nutzerabhängigen Preise angewendet werden.

  • Preisfeed: Verwenden Sie das Element <Rate> in einer Transaktionsnachricht, um die Preise festzulegen.

  • Landingpage-Datei: Fügen Sie Ihren Deeplinks preisregelspezifische Werte hinzu.

Gerätespezifische nutzerabhängige Preise

Gerätespezifische Preise sind Hotelpreise, die nur von Nutzern auf einem bestimmten Gerät wie Smartphone, Tablet oder Computer angezeigt und gebucht werden können. Die Preise werden von Google-Partnern bereitgestellt und Endnutzer können die gleichen gerätespezifischen Preise auf der Website des Partners sehen und buchen.

fenced_rates

Länderspezifische nutzerabhängige Preise

Länderspezifische Preise sind Hotelpreise, die nur von Nutzern angezeigt und gebucht werden können, die nach Hotels aus einem bestimmten Land suchen. Google ermittelt das Land anhand der IP-Adresse des Endnutzers. Die Preise werden von Google-Partnern bereitgestellt und Endnutzer können die gleichen länderspezifischen Preise auf der eigenen länderspezifischen Website des Partners sehen und buchen.

Sprachspezifische nutzerabhängige Preise

Sprachspezifische Preise sind nur für Nutzer sichtbar, die über eine bestimmte Spracheinstellung in Google nach Hotels suchen. Sprachspezifische Bedingungen werden mit dem Element <LanguageCode> definiert.

Herabgetastete nutzerabhängige Preise

Herabgestufte nutzerabhängige Preise sind nur für eine zufällige Teilmenge aller berechtigten Nutzer sichtbar. Die Abtastrate wird mit dem Element <MaxUsersPercent> definiert und so berechnet:

MaxUsersPercent = (number of users selected to view rate)/(total eligible users)

Nutzerabhängige Preise für angemeldete Nutzer

Die Preise für angemeldete Nutzer sind nur für Nutzer sichtbar, die mit einem Google-Konto angemeldet sind. Die Partner von Google stellen die Preise bereit. Nutzer können die Preise auf der eigenen Website des Partners ansehen und buchen. Preise für angemeldete Nutzer werden mit dem Element <UserSignedIn> definiert.

Da Google immer den niedrigsten zulässigen Preis auswählt, wird der nutzerabhängige Preis nie ausgewählt, wenn ein nutzerabhängiger Preis höher ist als der auf <Result>-Ebene festgelegte Preis. Wenn Sie dies vermeiden möchten, entfernen Sie den Preis auf <Result>-Ebene und konditionieren Sie alle Preise. Alternativ können Sie Ihren Technical Account Manager bitten, eine standardmäßige Preisregel für auf <Result>-Ebene festgelegte Preise zu verwenden.

XML-Datei für Preisregeln erstellen

Preisregeln für nutzerabhängige Preise werden mithilfe einer Preisregel-XML-Datei definiert. Weitere Informationen finden Sie in der XML-Referenz für Preisregeln.

Preisfeed aktualisieren

Nutzerabhängige Preise werden mit dem Element in einer Transaktionsnachricht festgelegt.

Das <Rate>-Element kann auch als mehrere untergeordnete Elemente von <Rates> innerhalb der <RoomBundle>- oder <Result>-Elemente verwendet werden. Wenn Sie ihn als nutzerabhängigen Preis verwenden möchten, müssen Sie den Wert des Attributs rate_rule_id so festlegen, dass er mit der Preisregel-ID übereinstimmt, die Sie in der XML-Datei für Preisregeln definiert haben.

Wenn Sie keinen standardmäßigen öffentlichen Doppelzimmerpreis haben, legen Sie das untergeordnete Element <Baserate> der Nachricht <Result> auf -1 fest. Jede bedingte <Rates>, die in diesem Fall an Google gesendet wird, gilt als gültig.

Beispiele

Basis + Bedingung

Das folgende Beispiel zeigt eine Transaktionsnachricht, die einen Basispreis und einen nutzerabhängigen Preis enthält:

<?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>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

RoomBundle Einzel

Das folgende Beispiel zeigt eine Transaktionsnachricht, die einen einzelnen Preis unter einem <RoomBundle> enthält:

<?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 – mehrere

Das folgende Beispiel zeigt eine Transaktionsnachricht, die mehrere Preise unter einem <RoomBundle> enthält:

<?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>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

Keine Doppelbelegung in öffentlichen Verkehrsmitteln

Das folgende Beispiel zeigt eine Transaktionsnachricht mit einem nutzerabhängigen Preis ohne öffentlichen Doppelzimmerpreis:

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

Landingpage-Datei aktualisieren

Ändern Sie Ihre Landingpage-Datei, damit berechtigte Endnutzer den rabattierten Preis über einen Deeplink buchen können. Möglicherweise ist auch eine zusätzliche Implementierung auf der Buchungswebsite erforderlich, damit die ermäßigten Preise korrekt angezeigt und eingehalten werden können.

Wir erwarten, dass Partner den Preis berücksichtigen, der im Deeplink für den nutzerabhängigen Preis angezeigt wird.

In einem dynamischen Deeplink können Sie die Preisregel anhand ihres Namens, dem Attribut id des Elements <RateRule>, in die Variable RATE-RULE-ID einfügen.

Im folgenden Beispiel wird die Preisregel-ID hinzugefügt:

https://bookingsite.com/landing.do?id=(PARTNER-HOTEL-ID)&arrival=(CHECKINDAY)-(CHECKINMONTH)-(CHECKINYEAR)&departure=(CHECKOUTDAY)-(CHECKOUTMONTH)-(CHECKOUTYEAR)&lang=(USER-LANGUAGE)&currency=(USER-CURRENCY)&prid=(RATE-RULE-ID)

Die Landingpage-Datei unterstützt auch die IF-RATE-RULE-ID-Anweisung, mit der Sie Teile der URL bedingt definieren können, je nachdem, ob die Preisregel vorhanden ist:

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)&currency=(USER-CURRENCY)

In diesem Beispiel wird zwischen zwei Landingpages ausgewählt, je nachdem, ob die Preisregel-ID festgelegt ist.

Weitere Informationen finden Sie unter Variablen und Bedingungen verwenden.