الأسعار المشروطة هي نوع من قواعد الأسعار التي تتيح لك تقديم أسعار مختلفة لبرامج الرحلات بالاستناد إلى معايير مثل جهاز المستخدم أو بلده أو ما إذا كان المستخدم قد سجّل الدخول إلى Google
إذا كان لديك أكثر من سعر علني أو مشروط لبرنامج رحلة أو حزمة غرفة، سيرى المستخدم أدنى سعر. تختار Google دائمًا أدنى سعر مؤهل للمستخدم.
نظرة عامة
تظهر الأسعار المشروطة في خانات الأسعار العادية، ولا يتم عرضها إلا للمستخدمين الذين تستوفي عمليات بحثهم معايير السعر المشروط المرتبط. ويمكن أن تستند هذه المعايير إلى ما يلي:
- جهاز المستخدم
- بلد المستخدم
- اللغة التي يفضّلها المستخدم
- مجموعة فرعية أصغر من عيّنة من جميع المستخدِمين
- ما إذا كان المستخدم النهائي قد سجّل الدخول
لتفعيل الأسعار المشروطة، يجب تعديل ما يلي:
ملف XML لقواعد السعر: حدِّد الشروط التي يتم فيها تطبيق الأسعار المشروطة.
خلاصة الأسعار: يمكنك استخدام العنصر
<Rate>
في رسالة "المعاملة" لتحديد الأسعار.ملف الصفحة المقصودة: أضف قيمًا خاصة بقاعدة السعر إلى روابطك لصفحات في التطبيق.
الأسعار المشروطة الخاصة بالجهاز
الأسعار الخاصة بالأجهزة هي أسعار للفنادق تكون مرئية ولا يمكن حجزها إلا للمستخدمين على جهاز معيّن، مثل جهاز جوّال أو جهاز لوحي أو كمبيوتر مكتبي. يقدّم شركاء Google الأسعار، ويمكن للمستخدمين النهائيين الاطّلاع على الأسعار نفسها الخاصة بالأجهزة وحجزها على موقع الشريك الإلكتروني.
الأسعار المشروطة الخاصة بكل بلد
الأسعار الخاصة بكل بلد هي أسعار الفنادق التي تظهر فقط للمستخدمين الذين يبحثون عن فنادق من بلد معيّن ولا يمكن الحجز فيها. تحدّد Google البلد باستخدام عنوان IP الخاص بالمستخدم النهائي. يتم تحديد الأسعار من قِبل شركاء Google، ويمكن للمستخدمين النهائيين الاطّلاع على الأسعار الخاصة بكل بلد وحجزها على موقع الشريك الخاص بكل بلد.
الأسعار المشروطة لكل لغة
لا تظهر الأسعار الخاصة باللغة إلا للمستخدمين الذين يبحثون عن فنادق أثناء استخدام إعدادات لغة محدّدة في Google. ويتم تحديد الشروط الخاصة باللغة باستخدام العنصر <LanguageCode>
.
الأسعار المشروطة المستندة إلى عيّنات
لا تظهر الأسعار المشروطة المستندة إلى عينات إلا لمجموعة فرعية عشوائية من جميع
المستخدمين المؤهلين. يتم تحديد معدّل أخذ العيّنات باستخدام العنصر <MaxUsersPercent>
ويتم احتسابه باستخدام ما يلي:
MaxUsersPercent = (number of users selected to view rate)/(total eligible users)
الأسعار المشروطة عند تسجيل الدخول
لن تكون أسعار تسجيل الدخول مرئية إلا للمستخدمين الذين سجّلوا الدخول باستخدام حساب Google. يقدّم شركاء Google الأسعار، ويمكن للمستخدمين الاطّلاع على الأسعار وحجزها على الموقع الإلكتروني للشريك. يتم تحديد معدّلات تسجيل الدخول باستخدام
العنصر <UserSignedIn>
.
بما أنّ Google تختار دائمًا أدنى سعر مؤهّل، إذا كان السعر المشروط
أعلى من السعر المحدّد على المستوى <Result>
،
لن يتم اختيار السعر المشروط
مطلقًا. لتجنّب حدوث ذلك، عليك إزالة
معدّل الضريبة على مستوى <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>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
حزمة غرفة واحدة
يعرض المثال التالي رسالة "معاملة" تتضمن سعرًا واحدًا ضمن <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>
<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>
لا تتوفّر الإقامة المزدوجة العامة.
يعرض المثال التالي رسالة "معاملة" تتضمّن سعرًا مشروطًا بدون تحديد معدّل إشغال مزدوج علني:
<?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)
يختار هذا المثال بين صفحتين مقصودتين، استنادًا إلى ما إذا تم ضبط رقم تعريف قاعدة المعدّل.
لمزيد من المعلومات، راجِع استخدام المتغيرات والشروط.