يوفر هذا القسم مرجعًا للغة XML المستندة إلى Google رسائل "طلب تلميح"، رسائل الرد على التلميحات، ورسائل طلب البحث.
<Hint>
(رسالة رد تلميح)
العنصر الجذر لرسالة استجابة التلميح. رسائل ردّ التلميح تحديد مجموعات الفنادق أو برامج الرحلات التي ينبغي إعادة تسعيرها. وهي الرد على رسالة "طلب تلميح" من Google.
يجب أن تحدد رسالة الرد التلميحي فقط الفنادق التي تحتوي أسعارها تم تغيير منذ آخر مرة تلقّت فيها Google رد تلميح ناجحًا من خوادمك.
تستخدم رسائل الاستجابة على التلميحات إحدى الطرق التالية لتحديد الفنادق وبرامج الرحلات التي على Google إعادة تسعيرها:
برامج الرحلات الدقيقة: مزيج من تاريخ تسجيل الوصول ومدة الإقامة.
النطاقات الزمنية لتسجيل الوصول: لتحديد نطاق تسجيل الوصول التواريخ، التي تبدأ بتاريخ تسجيل الوصول الأول وتنتهي بآخر تاريخ تسجيل الوصول.
الإقامة ذات النطاق الزمني العالي (أو برامج الرحلات ذات النطاق الزمني)
تتطلب كل طريقة من هذه الطرق بناء جملة مختلفًا لـ Hint Response. .
للحصول على مزيد من المعلومات، يمكنك الاطّلاع على رسائل ردود على التلميحات.
البنية
يستخدم العنصر <Hint>
بنية مختلفة، بناءً على نوع التلميح.
رسالة الردّ:
برامج الرحلات المحدّدة
يعرض ما يلي بنية برامج الرحلة الدقيقة في رسالة ردّ على تلميح:
<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>hotel_ID</Property>
...
<Stay>
<CheckInDate>checkin_date</CheckInDate>
<LengthOfStay>number_of_nights</LengthOfStay>
</Stay>
</Item>
...
</Hint>
نطاقات تسجيل الوصول
يوضح ما يلي بناء الجملة لنطاقات التحقق في استجابة التلميح الرسالة:
<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<Property>hotel_ID</Property>
[...]
<!-- Required -->
<FirstDate>first_checkin_date</FirstDate>
<!-- Required -->
<LastDate>last_checkin_date</LastDate>
</Item>
...
</Hint>
إقامة منتظمة
يوضح ما يلي بناء الجملة للإقامات المدى في استجابة التلميح الرسالة:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<!-- At least one is required -->
<Property>hotel_ID</Property>
[...]
<StaysIncludingRange>
<!-- Required -->
<FirstDate>first_date</FirstDate>
<!-- Optional -->
<LastDate>last_date</LastDate>
</StaysIncludingRange>
</Item>
...
</Hint>
السمات
يحتوي العنصر <Hint>
على سمة اختيارية: id
فعندما
تم تضمينها كسمة hintId
في <Query>
الرسائل المُرسَلة بناءً على <Hint>
العناصر الفرعية
يحتوي العنصر <Hint>
على العناصر الفرعية التالية:
عنصر ثانوي | مطلوب؟ | النوع | نوع استجابة التلميح | الوصف |
---|---|---|---|---|
<CheckInDate> | Required | Date | برامج الرحلات الدقيقة | تاريخ تسجيل الوصول في برنامج الرحلة |
<FirstDate> | Required | Date | نطاقات تسجيل الوصول وبرامج الرحلات الطويلة | التاريخ الأول من النطاق الزمني لنطاق تسجيل الوصول أو نطاق زمني الاحتفاظ برسالة رد التلميح. التواريخ شاملة. |
<Item> | Required | Object | الكل | حاوية الفندق/برنامج الرحلة المطلوب تعديلها |
<LastDate> | Required* | Date | نطاقات تسجيل الوصول وبرامج الرحلات الطويلة | آخر تاريخ للنطاق الزمني لنطاق تسجيل الوصول أو نطاق زمني الاحتفاظ برسالة رد التلميح. التواريخ شاملة. * هذا العنصر اختياري للإقامة ضمن نطاق سعري. |
<LengthOfStay> | Required | integer | خطو الرحلات المحددون | عدد الليالي لبرنامج الرحلة، ويتم التعبير عنه باعتبارها إيجابية عدد صحيح. |
<Property> | Required | string | الكل | رقم تعريف فندق، باستخدام رقم التعريف نفسه في قائمة الفنادق. الرقم
من
|
<Stay> | Required | Object | برامج الرحلات المحدّدة | حاوية لكل من <CheckinDate>
عناصر <LengthOfStay> في تلميح برنامج رحلة دقيق
رسالة الردّ. يمكن أن يحتوي كل <Item> على عنصر واحد فقط
<Stay> |
<StaysIncludingRange> | Required | Object | خط السير المحدّد | حاوية لكل من <FirstDate>
عناصر <LastDate> في استجابة تلميح دائمة البقاء
. |
أمثلة
برامج الرحلات الدقيقة
يحدّد المثال التالي برامج رحلات متعدّدة لموقع واحد رسالة رد على التلميح:
<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>12345</Property>
<Stay>
<CheckInDate>2018-07-03</CheckInDate>
<LengthOfStay>3</LengthOfStay>
</Stay>
</Item>
<Item>
<Property>12345</Property>
<Stay>
<CheckInDate>2018-07-03</CheckInDate>
<LengthOfStay>4</LengthOfStay>
</Stay>
</Item>
</Hint>
نطاقات تسجيل الوصول
يحدد المثال التالي فندقين تم تغيير أسعارهما مرة أخرى. عرض جميع برامج الرحلات لـ Google بين 3 تموز (يوليو) وتموز (يوليو) 6 للعقارات 12345 و67890:
<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<Item>
<Property>12345</Property>
<Property>67890</Property>
<FirstDate>2018-07-03</FirstDate>
<LastDate>2018-07-06</LastDate>
</Item>
</Hint>
إقامة منتظمة
يوضِّح المثال التالي استخدامَين مختلفَين للإقامات المحدودة، أحدهما نطاق الليالي والأخرى لليلة واحدة:
<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
<!-- Google fetches prices for all itineraries (first and last date are set) -->
<Item>
<Property>12345</Property>
<StaysIncludingRange>
<FirstDate>2018-07-03</FirstDate>
<LastDate>2018-07-06</LastDate>
</StaysIncludingRange>
</Item>
<!-- Google fetches prices for a single night (first date only) -->
<Item>
<Property>67890</Property>
<StaysIncludingRange>
<FirstDate>2018-07-03</FirstDate>
</StaysIncludingRange>
</Item>
</Hint>
لكل مثال من هذه الأمثلة، تردّ Google باستخدام <Query>
، وعليك
ثم الرد باستخدام <Transaction>
يتضمن التعديلات على أسعار
الفنادق/برامج الرحلات المحددة.
<HintRequest>
العنصر الجذر لرسالة "طلب تلميح" ترسل Google طلب تلميح إلى خادمك ويتوقع ردًا يحدد الفنادق برامج الرحلات التي تغيّرت أسعارها منذ آخر مرة تلقّت فيها Google استجابة التلميح الناجحة من الخادم.
وفي حال حدوث أي تغييرات في السعر، ترسل Google حينئذٍ <Query>
بيانات الأسعار المحدّثة للفنادق وبرامج الرحلات المشار إليها.
لمزيد من المعلومات، يُرجى الاطّلاع على رسائل طلب التلميحات.
البنية
يستخدم العنصر <HintRequest>
الصيغة التالية:
البنية
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest>
<LastFetchTime>last_fetch_time</LastFetchTime>
</HintRequest>
السمات
لا يتضمّن العنصر <HintRequest>
أي سمات.
العناصر الفرعية
يحتوي العنصر <HintRequest>
على العناصر الثانوية التالية:
عنصر ثانوي | النوع | الوصف |
---|---|---|
<LastFetchTime> | DateTime | آخر مرة نجحت فيها Google في تلقي رسالة رد تلميح
إلى رسالة "طلب تلميح".
إذا كان هذا الوقت أقدم من آخر مرة الأسعار الجديدة على خادمك، فينبغي عليك الرد بتلميح رسالة رد تحدّد الفنادق التي تم تغييرها. إذا لم تكن هناك عملية جلب ناجحة مؤخرًا، سيتم ضبطها على قيمة المهلة الثابتة (لتجنب المشكلات الأكثر خطورة مع قوائم المهام). علمًا بأن قيمة الفاصل الزمني الثابتة الحالية هي 1000 ثانية، إلا أنها للتغيير. لمزيد من المعلومات استشارة رسائل ردّ على التلميحات |
أمثلة
يوضّح المثال التالي رسالة طلب قائمة بالتعديلات:
رسالة لطلب تلميح
يعرض المثال التالي رسالة "طلب تلميح":
<?xml version="1.0" encoding="UTF-8"?>
<HintRequest id="ABCDEF" timestamp="2018-06-07T16:20:00Z">
<LastFetchTime>2018-03-25T00:04:09Z</LastFetchTime>
</HintRequest>
<Query>
العنصر الجذر لرسالة Query
. رسائل Query
هي طلبات
من Google لتعديلات الأسعار أو البيانات الوصفية. فهي تستخدم مع كل من سحب
وتغيير الأسعار
أوضاع التسليم:
هناك ثلاثة أنواع من رسائل Query
:
السعر في الوقت الفعلي: تردّ Google على طلب معيّن من المستخدمين، وتسألهم عن بتحديث السعر في الوقت الفعلي. عندما يتلقّى الشركاء رسالة
Live pricing query
، عليهم الردّ برسالة<Transaction>
تحتوي على معلومات الأسعار المطلوبة في عناصر<Result>
.باستخدام التسعير حسب السياق: تعدّل Google ذاكرة التخزين المؤقت للأسعار استنادًا إلى السياقات. التي تحظى بشعبية تاريخية. عند تلقّي
With context query
يجب الرد برسالة<Transaction>
تحتوي على معلومات التسعير المطلوبة في عناصر<Result>
.البيانات الوصفية: تطلب Google تعديل البيانات الوصفية للغرف وحِزم الغرف. للفنادق المحددة. عندما تتلقى رسالة
Metadata Query
، يعني ذلك رسالة<Transaction>
تحدد البيانات المتعلقة الغرف وحِزم الغرف في عناصر<PropertyDataSet>
.
لمزيد من المعلومات، يُرجى الرجوع إلى مقالة نظرة عامة على الأسعار. لطلبات البحث عن الأسعار والبيانات الوصفية لحزمة الغرف لاستعلامات بيانات التعريف.
في ما يلي الأنواع الثلاثة المختلفة لقواعد النحو:
البنية
يستخدم العنصر <Query>
الصيغة التالية:
الأسعار في الوقت الفعلي
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
<Checkin>YYYY-MM-DD</Checkin>
<Nights>number_of_nights</Nights>
<!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
<FirstDate>YYYY-MM-DD</FirstDate>
<LastDate>YYYY-MM-DD</LastDate>
<!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
<AffectedNights>number_of_nights</AffectedNights>
<PropertyList>
<Property>hotel_id</Property>
...
</PropertyList>
<!-- See documentation below for <Context> -->
<Context>
...
</Context>
</Query>
مع سياق
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>YYYY-MM-DD</Checkin>
<Nights>number_of_nights</Nights>
<!-- Only for Check-in Date Range pricing queries (Changed Pricing) -->
<FirstDate>YYYY-MM-DD</FirstDate>
<LastDate>YYYY-MM-DD</LastDate>
<!-- Only for Ranged Stay pricing queries (Changed Pricing) -->
<AffectedNights>number_of_nights</AffectedNights>
<PropertyContextList>
<PropertyContext>
<Property>hotel_id</Property>
...
<!-- See documentation below for <Context> -->
<Context>
...
</Context>
</PropertyContext>
</PropertyContextList>
</Query>
البيانات الوصفية
<HotelInfoProperties>
<Property>property_ID</Property>
...
</HotelInfoProperties>
السمات
يمكن أن يحتوي عنصر <Query>
على سمة واحدة: latencySensitive
.
السمة latencySensitive
اختيارية. عند توفيرها وضبطها على
true
، فإنها تشير إلى أن طلب البحث Live Pricing Query
. إتاحة خدمات Google
لإرسال الطلبات باستخدام السمة latencySensitive
، يُرجى التواصل مع فريق
مدير الحساب (TAM).
العناصر الفرعية
يحتوي العنصر <Query>
على العناصر الثانوية التالية:
عنصر ثانوي | نوع طلب البحث | النوع | الوصف |
---|---|---|---|
<AffectedNights> | Pricing | integer | تمثّل هذه السمة عدد ليالي الإقامة لمدة طويلة. لا يُستخدَم هذا العنصر إلا لطلبات البحث عن أسعار الإقامة ضمن نطاق زمني معيّن التي يتم استخدامها مع ميزة "تغيير في السعر". |
<Checkin> | Pricing | Date | تواريخ تغيير سعر معيّن. |
<Context> | Pricing (Live Pricing Queries only) | <Context> | بالنسبة إلى طلبات البحث عن الأسعار في الوقت الفعلي، تحدد هذه السياسة معلمات معينة
يتم إجراء الاستعلام. تشمل العناصر الفرعية ما يلي:
يمكن تكرار العنصر |
<FirstDate> | Pricing | Date | تاريخ البدء لمجموعة من برامج الرحلات التي تختلف أسعارها تنطبق. يُستخدم هذا العنصر فقط لأسعار "النطاق الزمني لتسجيل الوصول". الاستعلامات المستخدمة مع الوضع "تغيير في السعر". |
<HotelInfoProperties> | Metadata | string | موقع واحد أو أكثر تريد Google تعديل
البيانات الوصفية للغرف وحِزم الغرف فيه في رسالة Query للبيانات الوصفية.
يمكن أن يحتوي هذا العنصر على عنصر <Property> واحد أو أكثر.
العناصر التي تحدِّد أرقام تعريف الفنادق. |
<LastDate> | Pricing | Date | تاريخ الانتهاء لمجموعة من برامج الرحلات التي تختلف أسعارها تنطبق. يُستخدم هذا العنصر فقط لأسعار "النطاق الزمني لتسجيل الوصول". الاستعلامات المستخدمة مع سحب + تلميحات. |
<Nights> | Pricing | integer | عدد الليالي لبرنامج رحلة معيّن، حتى 30 ليالٍ |
<PropertyList> | Pricing | Object | معرّف واحد أو أكثر للفنادق التي تتطلّب تعديلات على الأسعار حدِّد كل فندق في عنصر <PropertyList> <Property>pid1</Property> <Property>pid2</Property> </PropertyList> |
أمثلة
طلب بحث عن السعر
يعرض المثال التالي رسالة "طلب بحث عن التسعير" التي تطلب السعر. هي تحديثات لمجموعة من الفنادق، تكون متاحة لمدة 3 ليالٍ، وتبدأ اعتبارًا من 10 حزيران (يونيو) 2018:
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>3</Nights>
<PropertyList>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</PropertyList>
</Query>
طلب بحث عن السعر في الوقت الفعلي
يعرض المثال التالي طلب بحث عن الأسعار في الوقت الفعلي مع مدة معالجة محدودة تبلغ 500 ملي ثانية:
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>5</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>8675309</Property>
</PropertyList>
<Context>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="8"/>
<Child age="5"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
باستخدام طلب بحث عن السياق
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<Checkin>2023-05-23</Checkin>
<Nights>2</Nights>
<PropertyContextList>
<PropertyContext>
<Property>8675309</Property>
<!-- In the future, occupancy and device might be specified -->
<Context><UserCountry>US</UserCountry></Context>
<Context><UserCountry>GB</UserCountry></Context>
</PropertyContext>
<PropertyContext>
<Property>8675310</Property>
<Property>8675311</Property>
<Context><UserCountry>CA</UserCountry></Context>
</PropertyContext>
</PropertyContextList>
</Query>
طلب بيانات وصفية
<?xml version="1.0" encoding="UTF-8"?>
<Query>
<HotelInfoProperties>
<Property>pid5</Property>
<Property>pid8</Property>
<Property>pid13</Property>
<Property>pid21</Property>
</HotelInfoProperties>
</Query>
للحصول على أمثلة إضافية، بما في ذلك مدة الإقامة والنطاق الزمني لتسجيل الوصول
طلبات البحث عن الأسعار، يمكنك الاطّلاع على أمثلة على رسائل Query
.
<Context>
يصف عنصر <Context>
معلومات عن Live pricing query
،
بما في ذلك عدد النزلاء ونوعهم وبلد المستخدم وجهاز المستخدم.
لن يتم استخدام <Context>
متعددة مطلقًا مع بلدان مستخدمين أو
أجهزة مستخدمين مختلفة. عند استخدام عدة عناصر <Context>
للبحث عن عدة طلبات
للإشغال، وعليك تقديم سعر الإشغال كحزمة غرف إضافية.
للموقع أو برنامج الرحلة المقابل ينبغي لكل فندق أو برنامج رحلة
تحتوي على حظر واحد في <Result>
مع أسعار الإقامة المتعددة.
.
للحصول على تفاصيل الردّ على الطلب <Context>
، يمكنك الاطّلاع على
<OccupancyDetails>
البنية
يستخدم العنصر <Context>
الصيغة التالية:
البنية
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true_or_false">
<Checkin>date</Checkin>
<Nights>number_of_nights</Nights>
<DeadlineMs>number_of_milliseconds</DeadlineMs>
<PropertyList>
<Property>property_ID</Property>
</PropertyList>
<Context>
<Occupancy>total_number_of_guests</Occupancy>
<OccupancyDetails>
<NumAdults>number_of_adults</NumAdults>
<Children>
<Child age=age_of_one_child_guest/>
<Child age=age_of_one_child_guest/>
</Children>
</OccupancyDetails>
<UserCountry>end_user_country</UserCountry>
<UserDevice>user_device_type</UserDevice>
</Context>
</Query>
العناصر الفرعية
يحتوي العنصر <Context>
على العناصر الثانوية التالية:
عنصر ثانوي | نوع طلب البحث | النوع | الوصف |
---|---|---|---|
<Occupancy> | Pricing | integer | تُحدِّد إجمالي عدد الضيوف. إنّ طلبات البحث التي تتضمّن ملاحظة: قد لا تظهر القيمة |
<OccupancyDetails> | Pricing | Object | مسبوقة بقيمة <Occupancy> . يتم تحديد الضيوف حسب
النوع، بما في ذلك:
طلبات البحث التي تتضمّن ملاحظة: قد لا لا يكون الاسم |
<UserCountry> | Pricing | string | يؤدي هذا الخيار إلى فلترة الأسعار حسب البلد الذي يقيم فيه المستخدم. القيمة هي
رمز بلد مكوّن من حرفَين، مثل يجب أن تؤدي طلبات البحث ذات السمة |
<UserDevice> | Pricing | string | يؤدي هذا الخيار إلى فلترة التقييمات حسب نوع الجهاز الذي يبحث منه المستخدم. القيم المتاحة:
يجب أن تؤدي طلبات البحث ذات السمة |
أمثلة
الإشغال
يعرض المثال التالي طلب بحث عن السعر في الوقت الفعلي في <Occupancy>
.
في حدود <Context>
. الاستعلام عن السعر في الوقت الفعلي مخصص لثلاثة أشخاص بالغين
الضيوف.
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>4</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>45617</Property>
</PropertyList>
<Context>
<Occupancy>3</Occupancy>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
تفاصيل الإشغال
يعرض المثال التالي طلب بحث عن السعر في الوقت الفعلي مع
<OccupancyDetails>
في <Context>
.
طلب البحث عن "السعر في الوقت الفعلي" هو 4 نزلاء، اثنان منهم
الأطفال، وطلب سعرًا يسري على حجز النزلاء في الولايات المتحدة من
جهاز محمول:
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>5</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>8675309</Property>
</PropertyList>
<Context>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="4"/>
<Child age="12"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>
سياقات متعددة
يعرض المثال التالي استخدام عنصر <Context>
إضافي
في طلب بحث عن الأسعار في الوقت الفعلي.
<?xml version="1.0" encoding="UTF-8"?>
<Query latencySensitive="true">
<Checkin>2017-06-07</Checkin>
<Nights>4</Nights>
<DeadlineMs>500</DeadlineMs>
<PropertyList>
<Property>45617</Property>
</PropertyList>
<Context>
<Occupancy>3</Occupancy>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
<Context>
<Occupancy>6</Occupancy>
<OccupancyDetails>
<NumAdults>4</NumAdults>
<Children>
<Child age="6"/>
<Child age="10"/>
</Children>
</OccupancyDetails>
<UserCountry>US</UserCountry>
<UserDevice>mobile</UserDevice>
</Context>
</Query>