يوفر هذا القسم مرجعًا للغة 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 -->
<!-- Can be > 1 if MultipleItineraries is "checkin_range" in your
QueryControl message -->
<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 -->
<!-- Can be > 1 if MultipleItineraries is "affected_dates" in your
QueryControl message -->
<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>
لاحظ أنه لكي تتمكن رسالة نطاق الوصول من تحديد عدة
الخصائص في <Item>
واحدة، تساوي قيمة
يجب ضبط <MultipleItineraries>
في <QueryControl>
على
"checkin_range"
إقامة منتظمة
يوضِّح المثال التالي استخدامَين مختلفَين للإقامات المحدودة، أحدهما نطاق الليالي والأخرى لليلة واحدة:
<!-- 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>
لاحظ أنه لكي تكون رسالة البقاء في النطاق قادرًا على تحديد عدة نطاقات
الخصائص في <Item>
واحدة، تساوي قيمة
يجب ضبط <MultipleItineraries>
في <QueryControl>
على
"affected_dates"
لكل مثال من هذه الأمثلة، تردّ 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>