Nutzerabhängige Preise sind eine Art von Preisregel, mit der Sie unterschiedliche Preise für Reisepläne anbieten können und zwar je nach Kriterien wie dem Gerät, dem Land oder der Anmeldung des Nutzers bei Google.
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 Preis aus, für den der Nutzer berechtigt ist.
Übersicht
Nutzerabhängige Preise werden in den Standard-Slots dargestellt und sind nur für Nutzer sichtbar, deren Suchanfragen die Kriterien für den zugehörigen nutzerabhängigen Preis erfüllen. Diese Kriterien können auf Folgendem basieren:
- Endnutzergerät
- Land des Endnutzers
- Spracheinstellung für Endnutzer
- Komprimierte Teilmenge aller Nutzer
- Ob der Endnutzer angemeldet ist
Ä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 für Nutzer auf einem bestimmten Gerät (z. B. Smartphone, Tablet oder Computer) sichtbar und buchbar sind. Die Preise werden von Google-Partnern bereitgestellt und Endnutzer können dieselben gerätespezifischen Preise auf der Website des Partners sehen und buchen.
Länderspezifische nutzerabhängige Preise
Länderspezifische Preise sind Hotelpreise, die nur für Nutzer sichtbar und buchbar sind, 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 anzeigen und buchen.
Sprachspezifische nutzerabhängige Preise
Sprachspezifische Preise sind nur für Nutzer sichtbar, die über eine bestimmte Spracheinstellung bei Google nach Hotels suchen. Sprachspezifische Bedingungen werden mit dem Element <LanguageCode>
definiert.
Die Sprache wird in Anfragen mit Kontext nicht angegeben. Wenn Sie also <LanguageCode>
in Ihren Preisregeln angeben, sollte die Antwort mit Kontext alle relevanten sprachspezifischen Preise enthalten.
Komprimierte nutzerabhängige Preise
Komprimierte nutzerabhängige Preise sind nur für eine zufällige Teilmenge aller berechtigten Nutzer sichtbar. Die Abtastrate wird mit dem Element <MaxUsersPercent>
definiert und mit der folgenden Formel 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 in einem Google-Konto angemeldet sind. Die Preise werden von Google-Partnern bereitgestellt und Nutzer können die Preise auf der eigenen Website des Partners anzeigen und buchen. Preise für angemeldete Nutzer werden mit dem Element <UserSignedIn>
definiert.
Da Google immer den niedrigsten infrage kommenden Preis auswählt, wird ein nutzerabhängiger Preis nie ausgewählt, wenn er über dem Preis liegt, der auf Ebene <Result>
festgelegt ist. Sie können dies vermeiden, indem Sie den Preis auf der <Result>
-Ebene entfernen und alle Preise nutzerabhängig machen. Alternativ können Sie sich an Ihren Technical Account Manager wenden, um mehr über die Verwendung von Standardpreisregeln für auf <Result>
-Ebene festgelegte Preise zu erfahren.
XML-Datei für Preisregeln erstellen
Preisregeln für nutzerabhängige Preise werden in einer Preisregel-XML-Datei definiert. Weitere Informationen finden Sie in der XML-Referenz für Preisregeln.
Preisfeed aktualisieren
Nutzerabhängige Preise werden mithilfe des Elements in einer Transaktionsnachricht festgelegt.
Das <Rate>
-Element kann auch als mehrere untergeordnete Elemente von <Rates>
in den <RoomBundle>
- oder <Result>
-Elementen 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 die Preisregeln definiert haben.
Wenn Sie keinen standardmäßigen öffentlichen Doppelzimmerpreis haben, legen Sie das untergeordnete Element <Baserate>
der Nachricht <Result>
auf -1
fest. Alle nutzerabhängigen <Rates>
, die in diesem Fall an Google gesendet werden, gelten als gültig.
Beispiele
Grundpreis + bedingt
Das folgende Beispiel zeigt eine Transaktionsnachricht mit einem Basispreis und einem nutzerabhängigen Preis:
<?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>
RoomBundle single
Das folgende Beispiel zeigt eine Transaktionsnachricht mit einem einzelnen Preis unter einer <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
Das folgende Beispiel zeigt eine Transaktionsnachricht mit mehreren Preisen unter einem <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>
Kein Doppelzimmerpreis
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
Damit berechtigte Endnutzer den rabattierten Preis über einen Deeplink buchen können, ändern Sie Ihre Landingpage-Datei. Auf der Buchungswebsite ist möglicherweise eine zusätzliche Implementierung erforderlich, um die rabattierten Preise korrekt anzuzeigen und auszuführen.
Wir erwarten, dass Partner den unter dem Deeplink für den nutzerabhängigen Preis angezeigten Preis einhalten.
In einen dynamischen Deeplink können Sie die Preisregel durch den Namen (das Attribut id
des Elements <RateRule>
) in die Variable RATE-RULE-ID
einbeziehen.
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)¤cy=(USER-CURRENCY)&prid=(RATE-RULE-ID)
Die Landingpage-Datei unterstützt auch die IF-RATE-RULE-ID
-Anweisung, mit der Sie Teile der URL abhängig davon, ob die Preisregel vorhanden ist, nutzerabhängig definieren können:
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)
In diesem Beispiel wird zwischen zwei Landingpages ausgewählt, abhängig davon, ob die Preisregel-ID festgelegt ist.
Weitere Informationen finden Sie unter Variablen und Bedingungen verwenden.