Ad Manager API, List तरीकों के हिसाब से फ़िल्टर करने की सुविधा देता है. फ़िल्टर स्ट्रिंग के सिंटैक्स को EBNF ग्रैमर में आधिकारिक तौर पर बताया गया है.
शुरू करने के लिए, यहां सामान्य इस्तेमाल के कुछ उदाहरण दिए गए हैं.
| उदाहरण | मतलब |
|---|---|
orders.updateTime > "2024-01-01T00:00:00-5:00" |
ईस्टर्न स्टैंडर्ड टाइमज़ोन में, 1 जनवरी, 2024 के बाद के ऑर्डर को updateTime के साथ दिखाता है |
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 |
a और b के सही होने पर True दिखाता है. |
OR |
a OR b OR c |
अगर a, b, c में से कोई भी वैल्यू True है, तो यह फ़ंक्शन True दिखाएगा. |
नेगेटिव ऑपरेटर
Ad Manager API, एक आर्ग्युमेंट वाले ऑपरेटर NOT और - उपलब्ध कराता है. इनका इस्तेमाल एक-दूसरे की जगह पर किया जा सकता है.
| ऑपरेटर | उदाहरण | मतलब |
|---|---|---|
NOT |
NOT a |
अगर a सही नहीं है, तो True दिखाता है. |
- |
-a |
अगर a सही नहीं है, तो True दिखाता है. |
तुलना करने वाले ऑपरेटर
Ad Manager API, स्ट्रिंग, संख्या, टाइमस्टैंप, और अवधि वाले फ़ील्ड के लिए, बाइनरी तुलना ऑपरेटर =, !=, <, >,
<=, और >= के साथ काम करता है.
| ऑपरेटर | उदाहरण | मतलब |
|---|---|---|
= |
a = true |
अगर a सही है, तो True दिखाता है. |
!= |
a != 42 |
जब तक a की वैल्यू 42 न हो, तब तक True. |
< |
a < 42 |
अगर a की वैल्यू 42 से कम है, तो True दिखाता है. |
> |
a > "foo" |
अगर a को "foo" के बाद लेक्सिकल ऑर्डर में रखा गया है, तो यह सही है. |
<= |
a <= "foo" |
अगर a "foo" है या लेक्सिकल क्रम में उससे पहले है, तो True दिखाता है. |
>= |
a >= 42 |
अगर a की वैल्यू 42 या उससे ज़्यादा है, तो यह फ़ंक्शन True दिखाता है. |
फ़िल्टर को क्वेरी स्ट्रिंग के तौर पर स्वीकार किया जाता है. इसलिए, स्ट्रिंग को सही स्ट्रोंग-टाइप की वैल्यू में बदलने के लिए, टाइप कन्वर्ज़न होता है:
- स्ट्रिंग के लिए डबल कोटेशन का इस्तेमाल करना ज़रूरी है. उदाहरण:
"Foo bar". - Enums की वैल्यू के तौर पर, स्ट्रिंग में वैल्यू दी जा सकती है. यह केस-सेंसिटिव होती है.
- बूलियन फ़ंक्शन के लिए,
trueऔरfalseलिटरल वैल्यू का इस्तेमाल किया जाता है. - संख्याओं के लिए, स्टैंडर्ड इंटीजर या फ़्लोट का इस्तेमाल करना ज़रूरी है. फ़्लोट के लिए,
एक्सपोनेंट का इस्तेमाल किया जा सकता है. उदाहरण:
2.997e9. - अवधि के लिए, संख्या के बाद
sसफ़िक्स (सेकंड के लिए) होना चाहिए. उदाहरण:"20s","1.2s". - टाइमस्टैंप के लिए, RFC-3339 फ़ॉर्मैट की गई स्ट्रिंग का इस्तेमाल किया जाना चाहिए. उदाहरण:
"2012-04-21T11:30:00-04:00". यूटीसी ऑफ़सेट का इस्तेमाल किया जा सकता है.
वाइल्डकार्ड
एक जैसी होने के लिए स्ट्रिंग की तुलना करते समय, Ad Manager API में * वर्ण का इस्तेमाल करके वाइल्डकार्ड का इस्तेमाल किया जा सकता है.
| उदाहरण | मतलब |
|---|---|
a = "*.foo" |
अगर a ".foo" पर खत्म होता है, तो True. |
ट्रैवर्सल ऑपरेटर
Ad Manager API, . ऑपरेटर के साथ काम करता है. यह किसी मैसेज, मैप या स्ट्रक्चर के ज़रिए ट्रैवर्स करने का संकेत देता है.
| उदाहरण | मतलब |
|---|---|
a.b = true |
अगर a में कोई बूलियन b फ़ील्ड है और उसकी वैल्यू 'सही' है, तो यह फ़ंक्शन 'सही' दिखाता है. |
a.b > 42 |
अगर a में संख्या वाला b फ़ील्ड है और उसकी वैल्यू 42 से ज़्यादा है, तो यह फ़ंक्शन True दिखाएगा. |
a.b.c = "foo" |
अगर a.b में स्ट्रिंग c फ़ील्ड "foo" है, तो यह फ़ंक्शन True दिखाता है. |
ट्रैवर्सल, रिसॉर्स के फ़ील्ड के नामों का इस्तेमाल करके लिखा जाता है. अलग-अलग सेवाएं, फ़ील्ड के ऐसे सबसेट की जानकारी दे सकती हैं जिन पर ट्रैवर्सल की सुविधा काम करती है.
ऑपरेटर है
Ad Manager API, : ऑपरेटर के साथ काम करता है. इसका मतलब है कि "है". इसका इस्तेमाल, कलेक्शन (दोहराए गए फ़ील्ड या मैप), मैसेज, और स्ट्रिंग के साथ किया जा सकता है. हालांकि, हर मामले में इसका व्यवहार थोड़ा अलग होता है.
स्ट्रिंग फ़ील्ड की क्वेरी, यह देखने के लिए कि स्ट्रिंग में मैच करने वाली सबस्ट्रिंग है या नहीं:
| उदाहरण | मतलब |
|---|---|
r.displayName:"_250x250" |
अगर स्ट्रिंग फ़ील्ड r.displayName में सबस्ट्रिंग _250x250 शामिल है, तो True. |
दोहराए गए फ़ील्ड की क्वेरी, यह देखने के लिए कि दोहराए गए स्ट्रक्चर में मैच करने वाला एलिमेंट है या नहीं:
| उदाहरण | मतलब |
|---|---|
r:42 |
अगर r में 42 है, तो True दिखाता है. |
r.foo:42 |
अगर r में ऐसा एलिमेंट e है कि e.foo = 42, तो यह सही है. |
मैप, स्ट्रक्चर, और मैसेज, मैप में किसी फ़ील्ड या किसी खास वैल्यू की मौजूदगी के लिए क्वेरी कर सकते हैं:
| उदाहरण | मतलब |
|---|---|
m:foo |
अगर m में "foo" कुंजी शामिल है, तो True दिखाता है. |
m.foo:* |
अगर m में "foo" कुंजी शामिल है, तो True दिखाता है. |
m.foo:42 |
अगर m.foo की वैल्यू 42 है, तो True दिखाता है. |
मैसेज को ट्रैवर्स करते समय, किसी फ़ील्ड को सिर्फ़ तब मौजूद माना जाता है, जब उसकी वैल्यू डिफ़ॉल्ट न हो.
सीमाएं
अलग-अलग सेवाएं, यहां बताए गए स्ट्रक्चर या सीमाओं के अलावा, फ़िल्टर क्वेरी के लिए ज़्यादा स्ट्रक्चर या सीमाएं तय कर सकती हैं.
क्रम
ज़्यादातर संसाधनों को List तरीकों से ऑर्डर किया जा सकता है. List तरीके के दस्तावेज़ में, संसाधन के काम करने के तरीके के बारे में जानकारी देखें. साथ ही, यह भी जानें कि क्रम से लगाने के लिए कौनसे फ़ील्ड इस्तेमाल किए जा सकते हैं.
orderBy फ़ील्ड के लिए सिंटैक्स, फ़ील्ड के नामों की कॉमा लगाकर अलग की गई सूची है. उदाहरण के लिए: "foo,bar".
डिफ़ॉल्ट रूप से, डेटा को बढ़ते क्रम में क्रम से लगाया जाता है. किसी फ़ील्ड के लिए घटते क्रम में लगाने के लिए,
" desc" सफ़िक्स जोड़ें. उदाहरण के लिए: "foo desc, bar".
सिंटैक्स में मौजूद अतिरिक्त स्पेस को अनदेखा कर दिया जाता है. "foo, bar
desc", " foo , bar desc ", और "foo,bar desc" वैल्यू एक जैसी हैं.
सब-फ़ील्ड, ट्रैवल ऑपरेटर की मदद से तय किए जाते हैं. उदाहरण के लिए: foo.bar या address.street.