مرجع XML لطلبات البحث والتلميحات

يقدّم هذا القسم مرجعًا لرسائل طلب التلميحات ورسائل الردّ على التلميحات ورسائل طلب البحث المستندة إلى XML من Google.

<Hint> (رسالة ردّ على طلب قائمة بالتعديلات)

العنصر الجذر لرسالة ردّ على طلب قائمة بالتعديلات تحدّد رسائل Hint Response مجموعات الفنادق أو برامج الرحلات التي يجب إعادة تسعيرها. وهي تمثّل ردّك على رسالة طلب تلميح من Google.

يجب أن تحدّد رسالة ردّ على طلب قائمة بالتعديلات الفنادق التي تغيّرت أسعارها فقط منذ آخر مرة تلقّت فيها Google رسالة ردّ على طلب قائمة بالتعديلات ناجحة من خوادمك.

تستخدِم رسائل الرد على التلميحات إحدى الطرق التالية لتحديد الفنادق وبرامج الرحلات التي يجب أن تعيد Google تسعيرها:

  • برامج الرحلات المطابقة تمامًا: هي مزيج من تاريخ تسجيل الوصول ومدة الإقامة.

  • نطاقات تواريخ تسجيل الوصول: تحدّد نطاقًا من تواريخ تسجيل الوصول، بدءًا من تاريخ تسجيل الوصول الأول وانتهاءً بتاريخ تسجيل الوصول الأخير.

  • الإقامات المحدّدة النطاق (أو مسارات الرحلة المحدّدة النطاق)

تتطلّب كل طريقة من هذه الطرق بنية مختلفة لرسالة Hint Response.

لمزيد من المعلومات، يُرجى الاطّلاع على رسائل الردود على التلميحات.

البنية

يستخدم العنصر <Hint> بنية مختلفة، وذلك حسب نوع رسالة Hint Response:

برامج الرحلات المطابقة تمامًا

يوضّح ما يلي بنية الجداول الزمنية الدقيقة في رسالة Hint Response:

<!-- 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>

نطاقات تسجيل الوصول

يوضّح ما يلي صيغة نطاقات تسجيل الوصول في رسالة Hint Response:

<!-- 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>

الإقامات المحددة المدة

يوضّح ما يلي بنية الإقامات المحدودة النطاق في رسالة Hint Response:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <!-- At least one is required -->
    <Property>1458700</Property>
    <Property>5418701</Property>
    <StaysIncludingRange>
      <!-- Required -->
      <FirstDate>2025-04-28</FirstDate>
      <!-- Optional -->
      <LastDate>2025-04-29</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 الكل

رقم تعريف الفندق، باستخدام رقم التعريف نفسه المستخدَم في قائمة الفنادق يتم تحديد عدد عناصر <Property> التي يمكنك تحديدها في حزمة <Item> واحدة حسب نوع رسالة Hint Response:

  • برامج الرحلات المطابقة: ما يصل إلى 100 فندق
  • نطاقات تسجيل الوصول: أكثر من نطاق واحد إذا ضبطت <MultipleItineraries> على "checkin_range" في رسالة <QueryControl>.
  • إقامة ضمن نطاق: أكثر من واحد إذا ضبطت <MultipleItineraries> على "affected_dates" في رسالة <QueryControl>.
<Stay> Required Object برامج الرحلات المطابقة تمامًا حاوية لعنصرَي <CheckinDate> و<LengthOfStay> في رسالة الرد الخاصة بتلميح حول خطة الرحلة الدقيقة. يمكن أن يحتوي كل <Item> على <Stay> واحد فقط.
<StaysIncludingRange> Required Object برامج الرحلات المحدّدة النطاق حاوية للعنصرَين <FirstDate> و<LastDate> في رسالة Hint Response الخاصة بالإقامة ضمن نطاق محدّد.

أمثلة

برامج الرحلات المطابقة تمامًا

يحدّد المثال التالي برامج رحلات متعدّدة لمكان إقامة واحد في رسالة ردّ على طلب قائمة بالتعديلات:

<!-- 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 في تلقّي رسالة ردّ على طلب قائمة بالتعديلات من رسالة طلب قائمة بالتعديلات.

إذا كان هذا الوقت أقدم من آخر مرة عدّلت فيها الأسعار على الخادم، عليك الرد برسالة Hint Response تحدّد الفنادق التي تم تغييرها.

إذا لم يتم إجراء عملية جلب ناجحة مؤخرًا، سيتم ضبط هذا الحقل على قيمة فاصل زمني ثابتة (لتجنُّب حدوث مشاكل أكثر خطورة مع تراكمات كبيرة). تبلغ قيمة الفاصل الزمني الثابت الحالية 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 لتعديل الأسعار أو البيانات الوصفية. ويتم استخدامها مع طريقتَي الإرسال "السحب" و"تغيير في السعر".

رسائل طلبات الأسعار

تحدّد رسائل طلبات البحث عن الأسعار مجموعات المكان المخصّص للاستئجار وبرنامج الرحلة التي تقدّم الأسعار لها.

عندما يتلقّى الخادم رسالة طلب بحث pricing، يجب أن يردّ برسالة <Transaction> تتضمّن معلومات الأسعار المطلوبة.

لمزيد من المعلومات، اطّلِع على نظرة عامة على الأسعار.

هناك ثلاثة أنواع خاصة من رسائل Query:

  • الأسعار المباشرة: تردّ Google على طلب محدّد من المستخدم، وتطلب منه تحديث السعر في الوقت الفعلي. عندما يتلقّى الشركاء رسالة Live pricing query، عليهم الردّ برسالة <Transaction> تتضمّن معلومات الأسعار المطلوبة في عناصر <Result>.

  • مع ميزة "التسعير حسب السياق": تعدّل Google ذاكرة التخزين المؤقت للأسعار استنادًا إلى السياقات الرائجة في السابق. عند تلقّي رسالة With Context query، عليك الردّ برسالة <Transaction> تتضمّن معلومات الأسعار المطلوبة في عناصر <Result>.

    • مع "طلبات البحث الواعية بالسياق" للإقامة الفردية

      عند تقديم أسعار استجابةً لطلبات البحث التي تتضمّن سياقًا، يجب إرسال السعر الذي يتوافق مع السياق المحدّد فقط. تتطلّب الإقامة بالسعر الأساسي شخصَين على الأقل، لذا إذا تم إدخال شخص واحد في السعر الأساسي، سيتم تجاهله وسيتم التعامل معه على أنّه إقامة مزدوجة. في هذه الحالة، يجب إرسال السعر الأساسي على أنّه غير متوفّر واستخدام السعر المتداخل ضمن الإشغال الفردي. راجِع مثال على الردّ مع السياق. يمكنك استخدام الأسعار المتغيرة حسب السياق لدمج الأسعار من خلال ضبط السمة mergeable على "true". مزيد من المعلومات

    • الوضع "تغيير في السعر" (معروف سابقًا باسم Pull with Hints) مع السياق

      عند إرسال ردّ <Transaction> على رسالة بشأن الوضع "تغيير في السعر" مع طلب بحث يتضمّن سياقًا، يتعامل معه محرّك بحث Google على أنّه استبدال كامل لمعلومات الأسعار ومدى التوفّر لفندق أو برنامج رحلة معيّن، ويتم استبعاد جميع الأسعار الخاصة بالسياق من الردّ وإزالتها من ذاكرة التخزين المؤقت.

      لمنع الكتابة فوقها، يجب ضبط السمة mergeable على "true" ضمن العنصر <Result> في الرسالة <Transaction>. تضيف Google الأسعار إلى الأسعار الحالية المخزّنة مؤقتًا للسياق المقدَّم في الردّ. في حال عدم استخدام السمة القابلة للدمج، يجب إرسال جميع الأسعار لجميع السياقات السارية في الردّ.

    • طلب بحث عن "السعر في الوقت الفعلي" مع السياق

      يتضمّن طلب البحث عن السعر في الوقت الفعلي مع السياق سلوك السمة القابلة للدمج تلقائيًا، لذا ليس من الضروري ضبط هذه السمة. عليك إرسال الأسعار فقط للسياقات المحدّدة التي طلبتها Google إذا بقيت جميع السياقات الأخرى كما هي. إذا تغيّرت سياقات أخرى، عليك إرسال التغييرات بشكل صريح لهذه السياقات، وإلا لن يتم تعديل الأسعار الجديدة في ذاكرة التخزين المؤقت من Google.

  • البيانات الوصفية: تطلب Google تحديثات البيانات الوصفية للغرف وحِزم الغرف في الفنادق المحدّدة. عند تلقّي رسالة Metadata Query، عليك الردّ برسالة <Transaction> تحدّد بيانات حول الغرف وحِزم الغرف في عناصر <PropertyDataSet>. لمزيد من المعلومات، يُرجى الاطّلاع على البيانات الوصفية لحزمة الغرف.

البنية

يستخدم العنصر <Query> البنية التالية:

طلب البحث عن الأسعار

<?xml version="1.0" encoding="UTF-8"?>
<Query>
  <Checkin>YYYY-MM-DD</Checkin>
  <Nights>number_of_nights</Nights>
  <PropertyList>
    <Property>hotel_id</Property>
    ...
  </PropertyList>
</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> بالنسبة إلى طلبات البحث عن &quot;السعر في الوقت الفعلي&quot;، تحدّد هذه السمة معلَمات معيّنة يتم بموجبها تقديم طلب البحث. تشمل العناصر الفرعية ما يلي:
  • <Occupancy>: إجمالي عدد الضيوف
  • <OccupancyDetails>: نوع الضيوف، مثل البالغين أو الأطفال
  • <UserCountry>: البلد الذي يقيم فيه المستخدم
  • <UserDevice>: نوع الجهاز الذي استخدمه الضيف للبحث عن فندق، مثل "mobile أو tablet أو desktop

يمكن تكرار العنصر <Context> في طلب واحد، ما يتيح إمكانية البحث عن مدى توفّر أماكن إقامة مختلفة. يُرجى الرجوع إلى <Context> للاطّلاع على قائمة بالعناصر الفرعية والبنية والأمثلة.

<FirstDate> Pricing Date تمثّل هذه السمة تاريخ البدء لنطاق من برامج الرحلات التي ينطبق عليها السعر. يُستخدَم هذا العنصر فقط لطلبات البحث عن الأسعار ضمن &quot;نطاق تواريخ تسجيل الوصول&quot; التي يتم استخدامها مع ميزة &quot;تغيير في السعر&quot;.
<HotelInfoProperties> Metadata string خاصية واحدة أو أكثر تريد Google الحصول على بيانات وصفية محدّثة بشأنها حول الغرف وحِزم الغرف في رسالة بيانات وصفية Query. يمكن أن يحتوي هذا العنصر على عنصر واحد أو أكثر من عناصر <Property> التي تحدّد معرّفات الفنادق.
<LastDate> Pricing Date تمثّل هذه السمة تاريخ انتهاء نطاق برامج الرحلات التي ينطبق عليها السعر. يُستخدم هذا العنصر فقط لطلبات البحث عن الأسعار ضمن &quot;نطاق تواريخ تسجيل الوصول&quot; التي يتم استخدامها مع Pull + Hints.
<Nights> Pricing integer عدد الليالي في برنامج الرحلة المحدّد، بحد أقصى 30 ليلة
<PropertyList> Pricing Object

معرّف واحد أو أكثر للفنادق التي تتطلّب تعديلات في الأسعار

حدِّد كل فندق في عنصر <Property>. القيمة هي سلسلة تتطابق مع معرّف فندق في قائمة الفنادق. على سبيل المثال:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

أمثلة

طلب البحث عن الأسعار

يعرض المثال التالي رسالة طلب أسعار تطلب تعديلات على الأسعار لمجموعة من الفنادق، متاحة لمدة 3 ليالٍ، وتبدأ في 23 أيار (مايو) 2023:

<?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, 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>

الردّ مع مراعاة السياق

يوضّح المثال التالي كيفية ضبط السعر الأساسي على unavailable(-1) لشخص واحد ودمج الأسعار في العنصر <Occupancy>.

<?xml version="1.0" encoding="UTF-8"
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2025-11-19T18:36:48Z">
<Result>
  <Property>6781291</Property>
  <Checkin>2026-01-15</Checkin>
  <Nights>1</Nights>
  <!-- Base rate is set to -1 to indicate unavailability for the default (2-person) occupancy -->
  <Baserate currency="USD">-1</Baserate>
  <Tax currency="USD">0</Tax>
  <OtherFees currency="USD">0</OtherFees>
  <Rates>
    <!-- Nested Rate for Single Occupancy -->
    <Rate rate_rule_id="rule-951">
      <Occupancy>1</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
      </OccupancyDetails>
      <Baserate currency="USD">150.00</Baserate>
      <Tax currency="USD">15.00</Tax>
      <OtherFees currency="USD">5.00</OtherFees>
    </Rate>
  <!-- Other nested rates for different occupancies or room types could be included here if available -->
  </Rates>
</Result>
</Transaction>

طلب البيانات الوصفية

<?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 تحدّد هذه السمة إجمالي عدد الضيوف.

على الرغم من أنّ استخدام <Occupancy> ليس إلزاميًا، من المفترض أن تؤدي طلبات البحث التي تتضمّن <Occupancy> إلى عرض رسالة معاملة تتضمّن &quot;حِزم الغرف&quot; المناسبة المحدّدة لكل <Occupancy>، ولكن في حال عدم توفّر &quot;حِزم الغرف&quot;، ننصحك بتحديد العنصر <Occupancy>.

ملاحظة: قد لا يظهر <Occupancy> دائمًا في طلب بحث. في مثل هذه الحالات، عليك عرض أسعار جميع أنواع الإشغال.

<OccupancyDetails> Pricing Object يسبقه <Occupancy>. تحدّد هذه السمة الضيوف حسب النوع، بما في ذلك:
  • <NumAdults>: عدد النزلاء البالغين
  • <Children> و<Child="age">: تحدّد هذه السمة الضيوف الذين هم أطفال (عادةً من 0 إلى 17 عامًا)، وتتضمّن اختياريًا عمر كل طفل.

على الرغم من أنّ استخدامها ليس إلزاميًا، من المفترض أن تؤدي طلبات البحث التي تتضمّن <OccupancyDetails> إلى عرض رسالة معاملة تتضمّن حِزم الغرف المناسبة المحدّدة لكل <Occupancy>، ولكن إذا لم تكن حِزم الغرف متاحة، ننصحك بتحديد العنصر <OccupancyDetails>.

ملاحظة: قد لا يظهر <OccupancyDetails> دائمًا في طلب بحث. في هذه الحالات، عليك افتراض أنّ جميع النزلاء بالغون.

<UserCountry> Pricing string

تتم فلترة الأسعار حسب البلد الذي يقيم فيه المستخدم. القيمة هي رمز بلد مكوّن من حرفين، مثل "US" للولايات المتحدة، أو رمز منطقة، مثل "EU" لـ "أوروبا".

يجب أن تؤدي طلبات البحث التي تم تحديد <UserCountry> لها إلى ظهور رسالة معاملة تتضمّن حظر <Rates> المناسب للبلد الذي تم البحث عنه.

<UserDevice> Pricing string

تتم فلترة الأسعار حسب نوع الجهاز الذي يجري المستخدم البحث منه. القيم المتاحة:

  • mobile
  • desktop
  • tablet

يجب أن تؤدي الطلبات التي تم تحديد <UserDevice> لها إلى ظهور رسالة معاملة تتضمّن كتلة <Rates> المناسبة المحدّدة لنوع الجهاز الذي تم الاستعلام عنه.

أمثلة

الإشغال

يعرض المثال التالي طلب بحث عن "السعر في الوقت الفعلي" <Occupancy> ضمن <Context>. طلب البحث عن السعر في الوقت الفعلي مخصّص لـ 3 ضيوف بالغين.

<?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>. طلب البحث عن السعر في الوقت الفعلي مخصّص لأربعة نزلاء، اثنان منهم أطفال، ويهدف إلى الحصول على سعر ينطبق على حجز نزيل من الولايات المتحدة باستخدام جهاز جوّال:

<?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>