מסננים

ב-Ad Manager API יש תמיכה בסינון בשיטות List. התחביר של מחרוזת המסנן מוגדר באופן רשמי בתחביר EBNF.

כדי להתחיל בעבודה, ריכזנו כאן כמה דוגמאות של תרחישים נפוצים לדוגמה.

דוגמה משמעות
orders.updateTime > "2024-01-01T00:00:00-5:00" הצגת הזמנות עם הערך updateTime אחרי 1 בינואר 2024 באזור הזמן החוף המזרחי (EST)
lineItems.targeting.geoTargeting.targetedGeoIds:2840 רשימת פריטים עם טירגוט גיאוגרפי שכולל את ארצות הברית (מזהה יעד גיאוגרפי 2480)
lineItems.displayName = "*_interstitial" הצגת רשימת הפריטים ששם התצוגה שלהם מסתיים במחרוזת _interstitial
orders.displayName = "*video*" הצגת הזמנות שהשם המוצג שלהן מכיל את המחרוזת video
displayName:"video" הצגת הזמנות שהשם המוצג שלהן מכיל את המחרוזת video (תחביר חלופי)

ערכים מילוליים

ערך לישויות ללא תוכן (דוגמאות: 42,‏ Hugo) הוא ערך שצריך להתאים אליו. מילים שמופיעות ללא ערך התאמה חלקיות לכל השדות הנתמכים במשאב. במקורות המידע מפורטים השדות שנלקחים בחשבון להתאמה בשיטה list. התכונה הזו דומה לחיפוש אוניברסלי בממשק המשתמש של Ad Manager, אבל היא מוגבלת לסוג משאב אחד.

יש לתחום מחרוזות לוגיות שמכילות רווחים במירכאות כפולות (לדוגמה: "Foo bar"). אי אפשר להשתמש במירכאות יחידות כדי לתחום מחרוזות לוגיות.

אופרטורים לוגיים

ב-Ad Manager API יש תמיכה באופרטורים הבינאריים AND ו-OR.

מפעיל דוגמה משמעות
AND a AND b הפונקציה מחזירה את הערך True אם הערכים של a ו-b הם True.
OR a OR b OR c הפונקציה מחזירה את הערך True אם אחד מהערכים a,‏ b או c הוא True.

אופרטורים של הכחשה

ב-Ad Manager API יש את האופרטורים החד-ערכיים NOT ו--. אפשר להשתמש במונחים האלה לסירוגין.

מפעיל דוגמה משמעות
NOT NOT a הפונקציה מחזירה את הערך True אם הערך של a הוא לא True.
- -a הערך הוא True אם הערך של a לא נכון.

אופרטורים להשוואה

ב-Ad Manager API יש תמיכה באופרטור השוואה בינארי =, !=, <, >, <= ו->= בשדות של מחרוזות, ערכים מספריים, חותמות זמן ומשך זמן.

מפעיל דוגמה משמעות
= a = true הפונקציה מחזירה את הערך True אם הערך של a הוא True.
!= a != 42 True, אלא אם הערך של a שווה ל-42.
< a < 42 הפונקציה מחזירה את הערך True אם הערך של a הוא מספרי וקטן מ-42.
> a > "foo" הפונקציה מחזירה את הערך True אם a מופיע אחרי "foo" בסדר מילוני.
<= a <= "foo" הפונקציה מחזירה את הערך True אם a הוא "foo" או מופיע לפניו מבחינה לקסיקלית.
>= a >= 42 הערך מוגדר כ-True אם הערך המספרי של a הוא 42 ומעלה.

מכיוון שמסננים מתקבלים כמחרוזות שאילתות, מתבצעת המרה של הסוג כדי לתרגם את המחרוזת לערך המתאים עם סוג מוגדר:

  • מחרוזות צריכות להיות מירכאות כפולות. דוגמה: "Foo bar"
  • ב-enums צריך להשתמש בייצוג המחרוזת של ה-enum (תלוי אותיות רישיות).
  • בערכים בוליאניים צריך להשתמש בערכי הליבה true ו-false.
  • המספרים צריכים להיות מיוצגים כמספרים שלמים או כמספרים בנקודה צפה (float) רגילים. ב-floats יש תמיכה בחזקות. דוגמה: 2.997e9
  • משכי הזמן מצפים לייצוג מספרי ואחריו סיומת s (לשניות). דוגמאות: "20s",‏ "1.2s".
  • חותמות זמן צריכות להיות בפורמט של מחרוזת RFC-3339. דוגמה: "2012-04-21T11:30:00-04:00". יש תמיכה בקיזוזים לפי שעון UTC.

תווים כלליים לחיפוש

כשמשווים בין מחרוזות כדי לבדוק אם הן זהות, ה-API של Ad Manager תומך בתווים כלליים באמצעות התו *.

דוגמה משמעות
a = "*.foo" הפונקציה מחזירה את הערך True אם a מסתיימת ב-"‎.foo".

אופרטור מעבר

‏Ad Manager API תומך באופרטור ., שמציין טרaversal דרך הודעה, מפה או מבנה.

דוגמה משמעות
a.b = true הפונקציה מחזירה את הערך True אם ל-a יש שדה בוליאני b שהוא true.
a.b > 42 הפונקציה מחזירה את הערך True אם ל-a יש שדה b מספרי שגדול מ-42.
a.b.c = "foo" הפונקציה מחזירה את הערך True אם ל-a.b יש שדה מחרוזת c שהערך שלו הוא 'foo'.

החצייה נכתבת באמצעות שמות השדות מהמשאב. שירותים ספציפיים יכולים לציין קבוצת משנה של שדות שנתמכים לצורך סריקה.

כולל מפעיל

ב-Ad Manager API יש תמיכה באופרטור :, שמשמעותו 'יש'. אפשר להשתמש בו עם אוספים (שדות או מפות חוזרים), הודעות ומחרוזות, וההתנהגות שלו משתנה מעט בכל מקרה.

שאילתת שדות מחרוזת כדי לבדוק אם המחרוזת מכילה מחרוזת משנה תואמת:

דוגמה משמעות
r.displayName:"_250x250" הערך הוא True אם שדה המחרוזת r.displayName מכיל את מחרוזת המשנה _250x250.

שאילתה לגבי שדות חוזרים, כדי לראות אם המבנה החוזר מכיל רכיב תואם:

דוגמה משמעות
r:42 הפונקציה מחזירה את הערך True אם הערך של r הוא 42.
r.foo:42 הפונקציה מחזירה את הערך True אם r מכיל רכיב e כך ש-e.foo = 42.

מפות, מבני נתונים והודעות יכולים לשלוח שאילתות על נוכחות של שדה במפה או על ערך ספציפי:

דוגמה משמעות
m:foo הפונקציה מחזירה את הערך True אם m מכיל את המפתח foo.
m.foo:* הפונקציה מחזירה את הערך True אם m מכיל את המפתח foo.
m.foo:42 הפונקציה מחזירה את הערך True אם הערך של m.foo הוא 42.

כשמעיינים בהודעות, שדה נחשב קיים רק אם יש לו ערך שאינו ערך ברירת המחדל.

מגבלות

שירותים ספציפיים יכולים לציין מבנה או הגבלות נוספים לשאילתות סינון, בנוסף למה שמוגדר כאן.

הזמנה

ב-Ad Manager API יש תמיכה בסדר עולה בשיטות List. התחביר של שדות orderBy הוא רשימה מופרדת בפסיקים של שמות שדות. לדוגמה: "foo,bar".

סדר המיון שמוגדר כברירת מחדל הוא עולה. כדי לציין סדר יורד בשדה, צריך לצרף את הסיומת " desc". לדוגמה: "foo desc, bar".

המערכת מתעלמת מתווים מיותרים בתחביר. הערכים "foo, bar desc",‏ " foo , bar desc " ו-"foo,bar desc" זהים.

שדות משנה מצוינים באמצעות אופרטור הניווט. לדוגמה: foo.bar או address.street.