توفّر معظم الخدمات في Display & Video 360 API طريقة LIST
لاسترداد موارد
بشكل مجمّع. تتيح طرق LIST
هذه عادةً فلترة النتائج من خلال مَعلمة استعلام
filter
. استخدِم هذه المَعلمة لتحسين استخدام واجهة برمجة التطبيقات من خلال retrieving only
ما تحتاج إليه.
يوضّح هذا الدليل كيفية استخدام المَعلمة filter
بفعالية.
بنية الفلتر
قيمة المَعلمة filter
هي سلسلة تتألف من قيد واحد أو أكثر
يمكن دمجه مع عاملَي AND
أو OR
وتجميعه باستخدام
القوسَين.
تكون القيود بالتنسيق {field} {operator} {value}
. في ما يلي مثال على
ذلك:
entityStatus="ENTITY_STATUS_ACTIVE"
لا يمكن أن تتجاوز طول سلسلة الفلتر 500 حرف. إذا كانت سلسلة الفلتر تتجاوز 500 حرف، نفِّذ أحد الإجراءات التالية:
- قسِّم المنطق إلى سلاسل فلاتر متعددة، واسترِدّ الموارد باستخدام
طلبات
LIST
منفصلة. - أزِل بعض المنطق من سلسلة الفلتر واستخدِمه لفلترة موارد العميل التي تم استرجاعها محليًا.
احط قيم القيود بعلامات اقتباس لضمان تطبيق المنطق بشكل صحيح.
يجب ترميز سلاسل الفلاتر باستخدام ترميز عنوان URL إذا كنت تُجري مكالمات LIST
مباشرةً بدون
استخدام مكتبة عملاء.
اطّلِع على المنطق بين القيود للحصول على مزيد من التفاصيل حول تنسيق طلبات البحث.
الحقول القابلة للفلترة
يتم إدراج الحقول القابلة للفلترة لكل طريقة LIST
في وصف مَعلمة filter
الطريقة. في معظم الحالات، يمكنك الفلترة حسب مجموعة فرعية من
الحقول العادية للمورد. في بعض الحالات النادرة، تتوفّر حقول إضافية يمكنك استخدامها
للفلترة فقط.
يتيح كل حقل في وصف المَعلمة استخدام واحد على الأقل من عاملي المقارنة التاليين:
عوامل التشغيل المشابهة | ||
---|---|---|
EQUALS (=)
|
قيمة حقل المورد تساوي القيمة المحدّدة.
مثلاً: |
|
LESS THAN OR EQUAL TO (<=)
|
قيمة حقل المورد أقل من القيمة المحدّدة أو مساوية لها. يُستخدَم عادةً
عند مقارنة تاريخ أو تاريخ ووقت.
مثلاً: |
|
GREATER THAN OR EQUAL TO (>=)
|
قيمة حقل المورد أكبر من أو تساوي القيمة المحدّدة. يُستخدَم عادةً
عند مقارنة تاريخ أو تاريخ ووقت.
مثلاً: |
|
HAS (:)
|
تحتوي قيمة حقل المورد على القيمة المحدّدة. إذا كان حقل المورد هو سلسلة، سيتم التحقّق مما إذا كانت القيمة المقدَّمة سلسلة فرعية حالية. إذا كان حقل
المورد صفيفًا، سيتحقّق من ما إذا كان الصفيف يحتوي على قيمة
المحدّدة.
مثلاً: |
في حال عدم تحديد أي عوامل تشغيل للحقل في وصف المَعلمة،
يمكنك استخدام عامل التشغيل EQUALS (=)
فقط. تتيح بعض الحقول استخدام عوامل تشغيل متعددة.
تتطلّب بعض الحقول القابلة للفلترة، مثل الحقول المتعلّقة بالتواريخ والأوقات، أن تتّبع القيمة القابلة للمقارنة تنسيقًا معيّنًا. يتم تحديد التنسيق بجانب
الحقل في وصف المَعلمة filter
.
المنطق بين القيود
يمكنك الجمع بين قيود متعددة لتضييق نطاق الاستجابة من طلب
LIST
أو توسيعه.
يمكنك عادةً دمج قيود متعددة مع عاملَي التشغيل المنطقيَين AND
وOR
. تحدِّد كل طريقة من طرق LIST
مشغّلي الشبكات الذين تتوافق معهم.
لا تتيح بعض الطرق استخدام أكثر من قيد واحد في المَعلمة filter
.
ضَع في الاعتبار القيود التالية عند إنشاء سلاسل الفلاتر باستخدام عوامل التشغيل المنطقية AND
أو OR
:
- يجب استخدام
AND
بين القيود أو مجموعات القيود التي تؤدي إلى ترشيح حقول مختلفة أو ترشيح الحقل نفسه بشكل مختلف. في ما يلي بعض الأمثلة:updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE"
updateTime>="2023-03-01T12:00:00Z" AND updateTime<="2023-04-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED")
- يجب استخدام
OR
بين القيود الفردية التي يتم فلترتها حسب الحقل نفسه. في ما يلي مثال:(entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
لا يمكنك استخدام
OR
لدمج مجموعتَين من القيود. استخدِم طلباتLIST
متعددة بقيم فلاتر مختلفة بدلاً من ذلك. على سبيل المثال، استخدِم الطلبات التالية المنفصلةLIST
:(lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
(lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")
لا تستخدِم عامل التشغيل
OR
لدمجهما:(lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123") OR (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")
قد تكون الأقواس ضمنية إذا لم تستخدمها لتجميع القيود في سلسلة فلترة. على سبيل المثال، سلسلة الفلتر التالية:
updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT"
يتم تفسيرها على النحو التالي:
updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")