الأسعار المشروطة هي نوع من قواعد الأسعار التي تتيح لك تقديم أسعار مختلفة للبرامج السياحية، استنادًا إلى معايير مثل جهاز المستخدم أو بلده أو ما إذا كان المستخدم قد سجّل الدخول إلى Google.
عندما يكون لديك أكثر من سعر علني أو مشروط واحد لبرنامج رحلات أو مجموعة غرف، سيرى المستخدم أدنى سعر. تختار Google دائمًا أدنى سعر مؤهّل للمستخدم.
نظرة عامة
تظهر الأسعار المشروطة في خانات الأسعار العادية، ولا يتم عرضها إلا للمستخدمين الذين تستوفي عمليات البحث التي يجرونها معايير السعر المشروط المرتبط. ويمكن أن تستند هذه المعايير إلى ما يلي:
- جهاز المستخدم النهائي
- بلد المستخدم النهائي
- اللغة المفضّلة للمستخدم النهائي
- مجموعة فرعية تم خفض عيّنتها من جميع المستخدِمين
- ما إذا كان المستخدم النهائي قد سجّل الدخول
لتفعيل الأسعار المشروطة، عليك تعديل ما يلي:
ملف XML لقواعد الأسعار: حدِّد الشروط التي يتم فيها تطبيق الأسعار الشَرطية.
خلاصة الأسعار: استخدِم العنصر
<Rate>
في رسالة "المعاملة" لضبط الأسعار.ملف الصفحة المقصودة: أضِف قيمًا خاصة بقاعدة تحديد السعر إلى روابطك لصفحات في التطبيق.
الأسعار المشروطة الخاصة بالأجهزة
الأسعار الخاصة بالأجهزة هي أسعار الفنادق التي لا تظهر ولا يمكن حجزها إلا من قِبل المستخدمين على جهاز معيّن، مثل جهاز جوّال أو جهاز لوحي أو كمبيوتر مكتبي. يوفّر شركاء Google الأسعار، ويمكن للمستخدمين النهائيين الاطّلاع على الأسعار الخاصة بالأجهزة نفسها وحجزها على الموقع الإلكتروني للشريك.
الأسعار المشروطة الخاصة بكل بلد
الأسعار الخاصة بالبلد هي أسعار الفنادق التي لا يمكن رؤيتها وحجزها إلا من قِبل المستخدمين الذين يبحثون عن فنادق من بلد معيّن. تحدِّد Google البلد باستخدام عنوان IP للمستخدِم النهائي. يوفّر شركاء Google الأسعار، ويمكن للمستخدمين النهائيين الاطّلاع على الأسعار الخاصة بكل بلد وحجزها على الموقع الإلكتروني الخاص بالشريك في ذلك البلد.
الأسعار المشروطة بلغات معيّنة
لا تظهر الأسعار المحدّدة باللغة إلا للمستخدمين الذين يبحثون عن فنادق
أثناء استخدام إعداد لغة معيّن في Google. يتم تحديد الشروط الخاصة باللغة باستخدام العنصر <LanguageCode>
.
لا يتم تحديد اللغة في رسائل طلب طلبات البحث التي تتضمّن سياقًا. وبالتالي، إذا حدّدت <LanguageCode>
في قواعد الأسعار، يجب أن يتضمّن الردّ الذي يتضمّن السياق كل الأسعار ذات الصلة بلغة معيّنة.
الأسعار المشروطة التي تمّ تقليل عيّنتها
لا تظهر الأسعار المشروطة التي تمّت خفض عيّنتها إلا لمجموعة فرعية عشوائية من كل
المستخدمين المؤهّلين. يتم تحديد معدّل أخذ العينات باستخدام العنصر <MaxUsersPercent>
ويتم احتسابه باستخدام ما يلي:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
الأسعار المشروطة عند تسجيل الدخول
لا تظهر معدّلات الاشتراكات النشطة إلا للمستخدمين الذين سجّلوا الدخول باستخدام حساب Google. يقدّم شركاء Google الأسعار، ويمكن للمستخدمين الاطّلاع على الأسعار وحجزها
على الموقع الإلكتروني الخاص بالشريك. يتم تحديد معدّلات الاشتراكات النشطة باستخدام العنصر
<UserSignedIn>
.
بما أنّ Google تختار دائمًا أدنى سعر مؤهّل، إذا كان السعر المشروط
أعلى من السعر المحدّد على مستوى <Result>
، لن يتم اختيار السعر المشروط أبدًا. لتجنُّب ذلك، عليك إزالة القيمة
rate على مستوى <Result>
ووضع شروط على جميع الأسعار. بدلاً من ذلك، يمكنك أن تسأل مدير الحساب الفني
عن استخدام قاعدة تعرفة تلقائية للأسعار التي تم ضبطها على مستوى <Result>
.
إنشاء ملف XML لقواعد الأسعار
يتم تحديد قواعد الأسعار للمعدّلات الشَرطية باستخدام ملف XML لقواعد الأسعار. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع XML لقواعد الأسعار.
تعديل خلاصة الأسعار
يتم ضبط الأسعار الشَرطية باستخدام العنصر في رسالة المعاملة.
يمكن أيضًا استخدام العنصر <Rate>
كعناصر ثانوية متعددة من <Rates>
ضمن العنصرَين <RoomBundle>
أو <Result>
. لاستخدامه كقائمة أسعار مشروطة، يجب ضبط قيمة السمة rate_rule_id
لتتطابق مع
معرّف قاعدة الأسعار الذي حدّدته في ملف XML الخاص بقواعد الأسعار.
إذا لم يكن لديك سعر مزدوج متاح للجميع بشكل تلقائي، اضبط العنصر الفرعي <Baserate>
لرسالة <Result>
على -1
. في هذه الحالة، سيتم اعتبار أيّ
<Rates>
شَرطي يتم إرساله إلى Google صالحًا.
أمثلة
القاعدة + الشروط
يعرض المثال التالي رسالة معاملة تحتوي على سعر أساسي وسعر شَرطي:
<?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
يعرض المثال التالي رسالة معاملة تحتوي على قائمة واحدة
بسعر ضمن <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 متعددة
يعرض المثال التالي رسالة معاملة تحتوي على معدّلات
متعدّدة ضمن <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>
لا تتوفّر غرف مزدوجة عامة
يعرض المثال التالي رسالة معاملة تحتوي على سعر مشروط بدون سعر علني للإشغال المزدوج:
<?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>
تعديل ملف صفحتك المقصودة
لضمان تمكّن المستخدمين النهائيين المؤهَّلين من حجز السعر المخفَّض من خلال ملف رابط لصفحة في التطبيق، عليك تعديل ملف الصفحة المقصودة. قد يكون هناك أيضًا تنفيذ إضافي على الموقع الإلكتروني للحجز لعرض الأسعار المخفَّضة بشكل صحيح وتنفيذها.
نتوقع من الشركاء الالتزام بالسعر المعروض في الرابط المؤدّي إلى السعر المشروط.
في رابط ديناميكي لصفحة في التطبيق، يمكنك تضمين قاعدة السعر باسمها، وهي سمة
id
للعنصر <RateRule>
، مع المتغيّر RATE-RULE-ID
.
يضيف المثال التالي معرّف قاعدة السعر:
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)
يتيح لك ملف الصفحة المقصودة أيضًا استخدام التوجيه IF-RATE-RULE-ID
الذي يتيح تحديد أجزاء من عنوان URL بشكل مشروط، استنادًا إلى ما إذا كانت قاعدة الأسعار متوفرة:
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)
يختار هذا المثال بين صفحتَين مقصودتَين، استنادًا إلى ما إذا تم ضبط رقم تعريف قاعدة الأسعار.
لمزيد من المعلومات، اطّلِع على استخدام المتغيّرات و الشروط.