# सेगमेंटेशन भाषा

Pushwoosh टैग मानों के आधार पर विस्तृत सेगमेंट बनाने के लिए एक शक्तिशाली सेगमेंटेशन इंजन प्रदान करता है। **सेगमेंटेशन भाषा** उन मानदंडों से मेल खाने वाले उपयोगकर्ताओं के एक विशेष समूह का वर्णन करने के लिए सेगमेंटेशन मानदंडों को लिखने और संयोजित करने का एक विशिष्ट तरीका है और उन्हें एक एकल ऑडियंस सेगमेंट के रूप में मानना है।

यह लेख सेगमेंटेशन भाषा की मूल अवधारणाओं और सिंटैक्स का वर्णन करता है और विभिन्न मामलों के लिए सेगमेंटेशन मानदंड बनाने के व्यापक उदाहरण प्रदान करता है।

## मूल बातें

आपके उपयोगकर्ता आधार में प्रत्येक डिवाइस के साथ **टैग मानों** के माध्यम से विशिष्ट विशेषताएँ जुड़ी होती हैं।

उदाहरण के लिए, मान लीजिए कि जेन नाम की एक उपयोगकर्ता टोक्यो में रहती है, और उसकी उम्र 28 है। उस उपयोगकर्ता के डिवाइस के लिए निम्नलिखित टैग सेट होंगे:

*   नाम: जेन
*   शहर: टोक्यो
*   उम्र: 28

जेन को लक्षित करने के लिए, आपको एक सेगमेंट का वर्णन इस प्रकार करना होगा:

`T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")`

शर्तों का यह संयोजन एक **फ़िल्टर एक्सप्रेशन** है जिसका उपयोग सेगमेंटेशन भाषा में उपयोगकर्ताओं के समूहों यानी ऑडियंस सेगमेंट का वर्णन करने के लिए किया जाता है।

## फ़िल्टर एक्सप्रेशन

फ़िल्टर एक्सप्रेशन एक स्ट्रिंग है जिसमें आपके आवश्यक सेगमेंट का वर्णन करने वाली एक शर्त या शर्तों का संयोजन होता है।

### शर्तें

प्रत्येक शर्त उन डिवाइसों के एक सेगमेंट का वर्णन करती है जो उस शर्त में निर्दिष्ट मानदंडों से मेल खाते हैं।

उदाहरण के लिए, निम्नलिखित शर्त उन उपयोगकर्ताओं का एक सेगमेंट बनाती है जो टोक्यो में रहते हैं:

`T("City", e, "Tokyo")`

जहाँ

*   T एक टैग (शर्त का प्रकार) है;
*   eq लागू करने के लिए एक ऑपरेटर है;
*   "Tokyo" एक टैग मान है जो उपयोगकर्ताओं के डिवाइसों से जुड़ा हुआ है।

#### शर्त के प्रकार

सेगमेंटेशन के लिए निम्नलिखित शर्त प्रकार उपलब्ध हैं:

*   **A** (एप्लिकेशन) – एक विशेष ऐप इंस्टॉल किए हुए डिवाइसों के एक सेगमेंट का वर्णन करता है। उपनाम: **App**, **Application**;
*   **T** (टैग) – निर्दिष्ट टैग मानों वाले डिवाइसों के एक सेगमेंट का वर्णन करता है;
*   **AT** (ऐप-स्कोप्ड टैग) – एक विशिष्ट एप्लिकेशन के भीतर एक टैग मान की तलाश करता है; पहले तर्क के रूप में ऐप कोड आवश्यक है। उपनाम: **Tag**;
*   **Event** – एक विशिष्ट Pushwoosh इवेंट को ट्रिगर करने वाले डिवाइसों के एक सेगमेंट का वर्णन करता है;
*   **Geo** – एक विशिष्ट भौगोलिक दायरे के भीतर डिवाइसों के एक सेगमेंट का वर्णन करता है;
*   **BTTS** – उनके भेजने के सर्वोत्तम समय के आधार पर डिवाइसों के एक सेगमेंट का वर्णन करता है;
*   **Updated** – उनके अंतिम अपडेट टाइमस्टैम्प के आधार पर डिवाइसों के एक सेगमेंट का वर्णन करता है;
*   **Segment** – किसी अन्य फ़िल्टर/सेगमेंट को उसके कोड द्वारा संदर्भित करता है;

### शर्तों के साथ संचालन

परिष्कृत सेगमेंट बनाने के लिए, फ़िल्टर एक्सप्रेशन के भीतर शर्तों पर निम्नलिखित संचालन लागू किए जा सकते हैं:

#### यूनियन (+)

सेगमेंट को जोड़ता है, यानी, उन उपयोगकर्ताओं का एक नया सेगमेंट बनाता है जो निर्दिष्ट शर्तों में से कम से कम एक से मेल खाते हैं।

<img src="/filters-segmentation-language-1.webp" alt=""/>

उदाहरण के लिए, उन उपयोगकर्ताओं को लक्षित करने के लिए जो टोक्यो या ओसाका में रहते हैं, आपको निम्नलिखित शर्तों के साथ सेगमेंट का वर्णन करना होगा:

`T("City", eq, "Tokyo") + T("City", eq, "Osaka")`

<Aside type="note">
तार्किक **वियोजन** (**OR**) के बराबर। इसे **or** ऑपरेटर के रूप में भी लिखा जा सकता है।
</Aside>

#### इंटरसेक्शन (\*)

शर्तों द्वारा वर्णित दोनों सेगमेंट से संबंधित उपयोगकर्ताओं का एक सेगमेंट बनाता है। इस प्रकार, केवल वे उपयोगकर्ता शामिल होंगे जो आपके द्वारा निर्दिष्ट प्रत्येक शर्त का अनुपालन करते हैं।

<img src="/filters-segmentation-language-2.webp" alt=""/>

निम्नलिखित एक्सप्रेशन उन उपयोगकर्ताओं के एक सेगमेंट का वर्णन करता है जो टोक्यो में रहते हैं और जिन्होंने अपने नाम निर्दिष्ट किए हैं:

`T("City", eq, "Tokyo") * T("Name", any)`

<Aside type="note">
तार्किक **संयोजन** (**AND**) के अनुरूप। इसे **and** ऑपरेटर के रूप में भी लिखा जा सकता है।
</Aside>

#### अंतर (\\)

उन उपयोगकर्ताओं का एक सेगमेंट बनाता है जो वर्णित सेगमेंट में से एक से संबंधित हैं और दूसरे से संबंधित नहीं हैं।

<img src="/filters-segmentation-language-3.webp" alt=""/>

जो उपयोगकर्ता टोक्यो में रहते हैं लेकिन उन्होंने आपको अपना नाम नहीं दिया है, उनका वर्णन इस प्रकार किया जाएगा:

`T("City", eq, "Tokyo") \ T("Name", any)`

<Aside type="note">
तार्किक **निषेध** (**NOT**) के बराबर। इसे **not** ऑपरेटर के रूप में भी लिखा जा सकता है।
</Aside>

#### कोष्ठक

आपके फ़िल्टर एक्सप्रेशन में शर्तों के साथ किए जाने वाले संचालन के क्रम को निर्धारित करते हैं।

उदाहरण के लिए, निम्नलिखित फ़िल्टर एक्सप्रेशन पहले 12345-67890 ग्राहकों का एक सेगमेंट प्राप्त करेगा जिनकी उम्र 18 है और फिर उस सेगमेंट के सभी पुरुषों को घटा देगा:

`( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")`

## टैग शर्तों के ऑपरेटर्स

प्रत्येक टैग प्रकार के लिए, उनके अपने ऑपरेटर्स लागू होते हैं।

### इंटीजर टैग ऑपरेटर्स

*   **eq** - एक निर्दिष्ट मान के बराबर
*   **noteq** - एक निर्दिष्ट मान के बराबर नहीं
*   **lte** - एक निर्दिष्ट मान से कम या उसके बराबर
*   **gte** - एक निर्दिष्ट मान से अधिक या उसके बराबर
*   **in** - निर्दिष्ट मानों में से कोई भी
*   **notin** - निर्दिष्ट मानों में से किसी के भी बराबर नहीं
*   **between** - एक निर्दिष्ट सीमा में
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="इंटीजर टैग सिंटैक्स उदाहरण">
`T("int", eq, 42)`
</Aside>

### स्ट्रिंग टैग ऑपरेटर्स

*   **eq** - एक निर्दिष्ट मान के बराबर
*   **noteq** - एक निर्दिष्ट मान के बराबर नहीं
*   **startswith** - एक निर्दिष्ट उपसर्ग से शुरू होता है
*   **endswith** - एक निर्दिष्ट प्रत्यय के साथ समाप्त होता है
*   **contains** - एक निर्दिष्ट सबस्ट्रिंग शामिल है
*   **in** - निर्दिष्ट मानों में से किसी के भी बराबर
*   **notin** - निर्दिष्ट मानों में से किसी के भी बराबर नहीं
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="स्ट्रिंग टैग सिंटैक्स उदाहरण">
* `T("str", eq, "kangaroo")` - सटीक मिलान
* `T("str", startswith, "kang")` - "kang" से शुरू होता है
* `T("str", endswith, "roo")` - "roo" के साथ समाप्त होता है
* `T("str", contains, "nga")` - स्ट्रिंग में कहीं भी "nga" शामिल है
</Aside>

### लिस्ट टैग ऑपरेटर्स

*   **in** - निर्दिष्ट टैग मानों में से किसी के साथ डिवाइस
*   **notin** - डिवाइस से जुड़े निर्दिष्ट टैग मानों में से कोई नहीं
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="लिस्ट टैग सिंटैक्स उदाहरण">
`T("list", notin, ["kangaroo", "raccoon"])`
</Aside>

### डेट टैग ऑपरेटर्स

*   **eq** - निर्दिष्ट तिथि के बराबर
*   **noteq** - निर्दिष्ट तिथि के बराबर नहीं
*   **lte** - निर्दिष्ट तिथि से पहले या उस पर
*   **gte** - निर्दिष्ट तिथि के बाद या उस पर
*   **in** - निर्दिष्ट तिथियों में से किसी के भी बराबर
*   **notin** - निर्दिष्ट तिथियों में से किसी के भी बराबर नहीं
*   **between** - एक निर्दिष्ट सीमा में
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस
*   **match** - वर्ष के एक निर्दिष्ट महीने और महीने के दिन से मेल खाता है।

<Aside type="note" title="मैच ऑपरेटर उदाहरण">


* `AT("XXXXX-XXXXX", "Date tag", match month 4 day 1)` - वे डिवाइस जिनका "Date tag" किसी भी वर्ष के 1 अप्रैल पर सेट है।
* `AT("XXXXX-XXXXX", "Date tag", match month "now" day 13)` - वे डिवाइस जिनका "Date tag" वर्तमान महीने के 13वें दिन पर सेट है।
* `AT("XXXXX-XXXXX", "Date tag", match month "now" day "now+2")` - वे डिवाइस जिनका "Date tag" परसों के दिन पर सेट है। सामान्य उपयोग का मामला: जन्मदिन की शुभकामनाएं।
</Aside>

<Aside type="note" title="वर्षगांठ और जन्मदिन सेगमेंट के लिए मैच ऑपरेटर उदाहरण">
आप [आवर्ती कैलेंडर तिथियों के आधार पर उपयोगकर्ताओं को सेगमेंट कर सकते हैं](/hi/product/audience-data-and-segmentation/segmentation/create-segments/anniversary-segments), जैसे जन्मदिन या वर्षगांठ। इन मामलों में, केवल महीने और दिन को ध्यान में रखा जाता है, जबकि वर्ष को अनदेखा कर दिया जाता है।

* `AT("XXXXX-XXXXX", "birthday", match month "now" day "now")`
   **उन उपयोगकर्ताओं को लक्षित करता है जिनका जन्मदिन आज है** (आज के समान दिन और महीना)।
   *उपयोगकर्ता के वास्तविक जन्मदिन पर जन्मदिन की शुभकामनाएं या विशेष ऑफ़र भेजने के लिए इसका उपयोग करें।*

* `AT("XXXXX-XXXXX", "birthday", match month "now" day "now+N")`
   **उन उपयोगकर्ताओं को लक्षित करता है जिनका जन्मदिन N दिनों में है** (समान महीना और दिन, आज से N दिन)।
   *उपयोगकर्ताओं को पहले से तैयार करने के लिए इसका उपयोग करें, उदाहरण के लिए, उलटी गिनती संदेश या आगामी ईवेंट रिमाइंडर भेजें।*

* `AT("XXXXX-XXXXX", "birthday", match month "now" day "now-N")`
   **उन उपयोगकर्ताओं को लक्षित करता है जिनका जन्मदिन N दिन पहले था**।
   *देर से जन्मदिन संदेशों या फीडबैक अनुरोधों जैसे फॉलो-अप के लिए इसका उपयोग करें।*
* `AT("XXXXX-XXXXX", "birthday", match month "now" day N)`
   **उन उपयोगकर्ताओं को लक्षित करता है जिनका जन्मदिन वर्तमान महीने के Nवें दिन है**, वर्ष की परवाह किए बिना।
   *विशिष्ट तिथियों से जुड़े निश्चित मासिक अभियानों की योजना बनाते समय इसका उपयोग करें (उदाहरण के लिए, 10 तारीख को मासिक लॉयल्टी पुरस्कार)।*
</Aside>

*   **daysago eq** - वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों के बराबर
*   **daysago noteq** - वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों के बराबर नहीं
*   **daysago lte** - वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों से कम या उसके बराबर
*   **daysago gte** - वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों से अधिक या उसके बराबर
*   **daysago between** - दिनों की निर्दिष्ट संख्याओं के बीच

<Aside type="note" title="डेजएगो ऑपरेटर उदाहरण">

* `T("Date tag", daysago, eq, 0)` - वर्तमान दिन 00:00 से वर्तमान क्षण तक
* `T("Date tag", daysago, eq, 1)` - पिछले दिन के 00:00 से वर्तमान दिन के 00:00 तक
* `T("Date tag", daysago, gte, 1)` - वर्तमान दिन के 00:00 तक का सारा समय
* `T("Date tag", daysago, lte, 7)` - 6 दिन पहले के 00:00 से वर्तमान क्षण तक
* `T("Date tag", daysago, between, [2,7])` - 7 से 2 दिन पहले तक।
</Aside>

*   **minutesago lte** - वर्तमान क्षण से पहले एक निर्दिष्ट संख्या के मिनटों से कम या उसके बराबर
*   **minutesago gte** - वर्तमान क्षण से पहले एक निर्दिष्ट संख्या के मिनटों से अधिक या उसके बराबर

<Aside type="note" title="मिनट्सएगो ऑपरेटर उदाहरण">

* `T("Date tag", minutesago, lte, 30)` - पिछले 30 मिनट;
* `T("Date tag", minutesago, gte, 60)` - 60 या अधिक मिनट पहले;
* `T("Date tag", minutesago, lte, 1)` - पिछले मिनट के भीतर।
</Aside>

*   **daysahead** - वर्तमान दिन (UTC) से N से M दिनों में, दोनों सिरों पर समावेशी

<Aside type="note" title="डेजअहेड ऑपरेटर उदाहरण">

`daysahead` एक `[from, to]` अंतराल लेता है (आज के UTC मध्यरात्रि से दिन, दोनों सिरे समावेशी)। `daysago` के विपरीत, इसमें कोई उप-ऑपरेटर नहीं है — केवल अंतराल रूप।

* `T("Date tag", daysahead, [0, 0])` - वर्तमान दिन 00:00 से 23:59:59 तक
* `T("Date tag", daysahead, [1, 1])` - अगला दिन 00:00 से 23:59:59 तक
* `T("Date tag", daysahead, [2, 5])` - अब से 2 दिनों की शुरुआत से लेकर अब से 5 दिनों के अंत तक कोई भी क्षण
</Aside>

<Aside type="note" title="डेट ऑपरेटर उदाहरण">
* `T("Date tag", eq "2022-12-05 00:00:00")`
</Aside>

### बूलियन टैग ऑपरेटर्स

*   **eq** - एक निर्दिष्ट मान के बराबर
*   **noteq** - एक निर्दिष्ट मान के बराबर नहीं
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="बूलियन टैग सिंटैक्स उदाहरण">
 `T("bool", eq, true)`
</Aside>

### प्राइस टैग ऑपरेटर्स

*   **eq** - एक निर्दिष्ट मान के बराबर
*   **noteq** - एक निर्दिष्ट मान के बराबर नहीं
*   **lte** - एक निर्दिष्ट मान से कम या उसके बराबर
*   **gte** - एक निर्दिष्ट मान से अधिक या उसके बराबर
*   **in** - निर्दिष्ट मानों में से किसी के भी बराबर
*   **notin** - निर्दिष्ट मानों में से किसी के भी बराबर नहीं
*   **between** - एक निर्दिष्ट सीमा में
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="प्राइस टैग सिंटैक्स उदाहरण">
`T("price", between, ["4.2", "6.9"])`
</Aside>

### वर्जन टैग ऑपरेटर्स

*   **eq** - एक निर्दिष्ट मान के बराबर
*   **noteq** - एक निर्दिष्ट मान के बराबर नहीं
*   **lte** - एक निर्दिष्ट मान से कम या उसके बराबर
*   **gte** - एक निर्दिष्ट मान से अधिक या उसके बराबर
*   **in** - निर्दिष्ट मानों में से किसी के भी बराबर
*   **notin** - निर्दिष्ट मानों में से किसी के भी बराबर नहीं
*   **between** - एक निर्दिष्ट सीमा में
*   **any** - टैग के लिए कोई भी मान सेट किए हुए डिवाइस
*   **notset** - टैग के लिए कोई मान सेट नहीं किए हुए डिवाइस

<Aside type="note" title="वर्जन टैग सिंटैक्स उदाहरण">
`T("version", lte, "4.2")`
</Aside>

## इवेंट शर्तों के ऑपरेटर्स

<Aside type="note">
कृपया ध्यान रखें कि इवेंट की शर्तें ऐप-विशिष्ट हैं इसलिए आपके फ़िल्टर एक्सप्रेशन में इवेंट के नाम के साथ ऐप कोड निर्दिष्ट किया जाना चाहिए।
</Aside>

### इवेंट गणना

*   **count gte** - इवेंट को n बार से अधिक या ठीक n बार ट्रिगर करने वाले डिवाइस
*   **count lte** - इवेंट को n बार से कम या ठीक n बार ट्रिगर करने वाले डिवाइस
*   **count eq** - इवेंट को ठीक n बार ट्रिगर करने वाले डिवाइस
*   **count noteq** - इवेंट को किसी भी बार ट्रिगर करने वाले डिवाइस लेकिन n के बराबर नहीं

<Aside type="note" title="इवेंट गणना सिंटैक्स उदाहरण">
 `Event("11111-11111", "Level reached", count gte 10) // 11111-11111 एक ऐप कोड है`
</Aside>

### इवेंट तिथि

*   **date gte** - निर्दिष्ट तिथि के बाद या ठीक उसी पर इवेंट को ट्रिगर करने वाले डिवाइस
*   **date lte** - निर्दिष्ट तिथि से पहले या ठीक उसी पर इवेंट को ट्रिगर करने वाले डिवाइस
*   **date eq** - निर्दिष्ट तिथि पर ठीक इवेंट को ट्रिगर करने वाले डिवाइस
*   **date noteq** - निर्दिष्ट तिथि पर नहीं बल्कि कभी भी इवेंट को ट्रिगर करने वाले डिवाइस
*   **date in** - निर्दिष्ट तिथियों में से किसी पर भी इवेंट को ट्रिगर करने वाले डिवाइस
*   **date notin** - निर्दिष्ट तिथियों में से किसी पर भी नहीं बल्कि कभी भी इवेंट को ट्रिगर करने वाले डिवाइस
*   **date between** - एक निर्दिष्ट अवधि के भीतर इवेंट को ट्रिगर करने वाले डिवाइस
*   **date daysago eq** - इवेंट ट्रिगर तिथि वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों के बराबर है
*   **date daysago noteq** - इवेंट ट्रिगर तिथि वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों के बराबर नहीं है
*   **date daysago lte** - इवेंट ट्रिगर तिथि वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों से कम या उसके बराबर है
*   **date daysago gte** - इवेंट ट्रिगर तिथि वर्तमान दिन से पहले एक निर्दिष्ट संख्या के दिनों से अधिक या उसके बराबर है
*   **date daysago between** - इवेंट ट्रिगर तिथि दिनों की निर्दिष्ट संख्याओं के बीच है
*   **date daysahead** - इवेंट ट्रिगर तिथि वर्तमान दिन से एक निर्दिष्ट संख्या के दिनों में है (अंतराल दोनों सिरों पर समावेशी है, पूर्ण सिमेंटिक्स के लिए ऊपर डेट टैग ऑपरेटर्स देखें)
*   **date minutesago lte** - इवेंट ट्रिगर तिथि वर्तमान क्षण से पहले निर्दिष्ट संख्या के मिनटों से कम या उसके बराबर है
*   **date minutesago gte** - इवेंट ट्रिगर तिथि वर्तमान क्षण से पहले निर्दिष्ट संख्या के मिनटों से अधिक या उसके बराबर है

<Aside type="note" title="इवेंट तिथि सिंटैक्स उदाहरण">

- `Event("11111-11111", "Level reached", date gte "2022-01-01 01:02:03")`
- `Event("11111-11111", "Level reached", date in ["2022-01-01 01:02:03", "2022-01-01 02:03:04"])`
- `Event("11111-11111", "Level reached", date between "2022-01-01 01:02:03" "2022-01-01 02:03:04")`
- `Event("11111-11111", "Level reached", date daysahead 0 7)` - अगले 7 दिनों के भीतर ट्रिगर तिथि वाले इवेंट
- `Event("11111-11111", "Level reached", date minutesago lte 30)` - पिछले 30 मिनट के भीतर के इवेंट
- `Event("11111-11111", "Level reached", date minutesago gte 60)` - 60+ मिनट पहले के इवेंट

</Aside>

### इवेंट प्लेटफॉर्म

इवेंट को उस प्लेटफॉर्म के आधार पर फ़िल्टर करें जहां वे ट्रिगर हुए थे।

*   **platforms** - प्लेटफॉर्म की सूची (जैसे, ["ios", "android"])

<Aside type="note" title="इवेंट प्लेटफॉर्म सिंटैक्स उदाहरण">
`Event("11111-11111", "Level reached", platforms ["android", "ios"], count gte 5)`
</Aside>

### इवेंट एट्रिब्यूट्स

इवेंट की शर्तें इवेंट एट्रिब्यूट मानों के आधार पर फ़िल्टर कर सकती हैं। एट्रिब्यूट्स उनके संबंधित ऑपरेटरों के साथ विभिन्न डेटा प्रकारों का समर्थन करते हैं।

#### इंटीजर इवेंट एट्रिब्यूट्स

*   **attribute "name" eq** - एट्रिब्यूट एक निर्दिष्ट मान के बराबर है
*   **attribute "name" noteq** - एट्रिब्यूट एक निर्दिष्ट मान के बराबर नहीं है
*   **attribute "name" gte** - एट्रिब्यूट एक निर्दिष्ट मान से अधिक या उसके बराबर है
*   **attribute "name" lte** - एट्रिब्यूट एक निर्दिष्ट मान से कम या उसके बराबर है
*   **attribute "name" between** - एट्रिब्यूट एक निर्दिष्ट सीमा में है
*   **attribute "name" in** - एट्रिब्यूट निर्दिष्ट मानों में से किसी के भी बराबर है
*   **attribute "name" notin** - एट्रिब्यूट निर्दिष्ट मानों में से किसी के भी बराबर नहीं है
*   **attribute "name" any** - एट्रिब्यूट के लिए कोई भी मान सेट है
*   **attribute "name" notset** - एट्रिब्यूट के लिए कोई मान सेट नहीं है

<Aside type="note" title="इंटीजर एट्रिब्यूट सिंटैक्स उदाहरण">

* `Event("11111-11111", "Purchase", attribute "amount" eq 42)`
* `Event("11111-11111", "Purchase", attribute "amount" between 10 100)`
* `Event("11111-11111", "Purchase", attribute "amount" in [10, 20, 30])`

</Aside>

#### स्ट्रिंग इवेंट एट्रिब्यूट्स

*   **attribute "name" eq** - एट्रिब्यूट एक निर्दिष्ट मान के बराबर है
*   **attribute "name" noteq** - एट्रिब्यूट एक निर्दिष्ट मान के बराबर नहीं है
*   **attribute "name" startswith** - एट्रिब्यूट एक निर्दिष्ट उपसर्ग से शुरू होता है
*   **attribute "name" endswith** - एट्रिब्यूट एक निर्दिष्ट प्रत्यय के साथ समाप्त होता है
*   **attribute "name" contains** - एट्रिब्यूट एक निर्दिष्ट सबस्ट्रिंग शामिल है
*   **attribute "name" in** - एट्रिब्यूट निर्दिष्ट मानों में से किसी के भी बराबर है
*   **attribute "name" notin** - एट्रिब्यूट निर्दिष्ट मानों में से किसी के भी बराबर नहीं है
*   **attribute "name" any** - एट्रिब्यूट के लिए कोई भी मान सेट है
*   **attribute "name" notset** - एट्रिब्यूट के लिए कोई मान सेट नहीं है

<Aside type="note" title="स्ट्रिंग एट्रिब्यूट सिंटैक्स उदाहरण">

* `Event("11111-11111", "Page View", attribute "url" startswith "https://example.com")`
* `Event("11111-11111", "Page View", attribute "url" endswith ".html")`
* `Event("11111-11111", "Page View", attribute "url" contains "/products/")`
* `Event("11111-11111", "Button Click", attribute "button_name" in ["submit", "cancel"])`

</Aside>

#### बूलियन इवेंट एट्रिब्यूट्स

*   **attribute "name" eq** - एट्रिब्यूट true या false के बराबर है
*   **attribute "name" noteq** - एट्रिब्यूट true या false के बराबर नहीं है

<Aside type="note" title="बूलियन एट्रिब्यूट सिंटैक्स उदाहरण">
`Event("11111-11111", "Feature Toggle", attribute "enabled" eq true)`
</Aside>

#### डेट इवेंट एट्रिब्यूट्स

*   **attribute "name" eq** - एट्रिब्यूट एक निर्दिष्ट तिथि के बराबर है
*   **attribute "name" noteq** - एट्रिब्यूट एक निर्दिष्ट तिथि के बराबर नहीं है
*   **attribute "name" gte** - एट्रिब्यूट एक निर्दिष्ट तिथि के बाद या उस पर है
*   **attribute "name" lte** - एट्रिब्यूट एक निर्दिष्ट तिथि से पहले या उस पर है
*   **attribute "name" between** - एट्रिब्यूट एक निर्दिष्ट तिथि सीमा के भीतर है
*   **attribute "name" in** - एट्रिब्यूट निर्दिष्ट तिथियों में से किसी के भी बराबर है
*   **attribute "name" notin** - एट्रिब्यूट निर्दिष्ट तिथियों में से किसी के भी बराबर नहीं है
*   **attribute "name" daysago eq/noteq/gte/lte/between** - एट्रिब्यूट दिनों पहले के सापेक्ष
*   **attribute "name" daysahead from to** - एट्रिब्यूट वर्तमान दिन से दिनों के एक निर्दिष्ट अंतराल में है (अंतराल दोनों सिरों पर समावेशी है, पूर्ण सिमेंटिक्स के लिए ऊपर डेट टैग ऑपरेटर्स देखें)
*   **attribute "name" minutesago gte/lte** - एट्रिब्यूट मिनटों पहले के सापेक्ष
*   **attribute "name" any** - एट्रिब्यूट के लिए कोई भी मान सेट है
*   **attribute "name" notset** - एट्रिब्यूट के लिए कोई मान सेट नहीं है

<Aside type="note" title="डेट एट्रिब्यूट सिंटैक्स उदाहरण">

* `Event("11111-11111", "Subscription", attribute "start_date" eq "2022-01-01 01:02:03")`
* `Event("11111-11111", "Subscription", attribute "start_date" between "2022-01-01 00:00:00" "2022-12-31 23:59:59")`
* `Event("11111-11111", "Subscription", attribute "start_date" daysago lte 30)` - पिछले 30 दिनों के भीतर
* `Event("11111-11111", "Subscription", attribute "renewal_at" daysahead 0 30)` - अगले 30 दिनों में नवीनीकरण
* `Event("11111-11111", "Subscription", attribute "start_date" minutesago gte 60)` - 60+ मिनट पहले

</Aside>

#### प्राइस इवेंट एट्रिब्यूट्स

*   **attribute "name" eq** - एट्रिब्यूट एक निर्दिष्ट मूल्य मान के बराबर है
*   **attribute "name" noteq** - एट्रिब्यूट एक निर्दिष्ट मूल्य मान के बराबर नहीं है
*   **attribute "name" gte** - एट्रिब्यूट एक निर्दिष्ट मूल्य से अधिक या उसके बराबर है
*   **attribute "name" lte** - एट्रिब्यूट एक निर्दिष्ट मूल्य से कम या उसके बराबर है
*   **attribute "name" between** - एट्रिब्यूट एक निर्दिष्ट मूल्य सीमा में है
*   **attribute "name" in** - एट्रिब्यूट निर्दिष्ट मूल्यों में से किसी के भी बराबर है
*   **attribute "name" notin** - एट्रिब्यूट निर्दिष्ट मूल्यों में से किसी के भी बराबर नहीं है
*   **attribute "name" any** - एट्रिब्यूट के लिए कोई भी मान सेट है
*   **attribute "name" notset** - एट्रिब्यूट के लिए कोई मान सेट नहीं है

<Aside type="note" title="प्राइस एट्रिब्यूट सिंटैक्स उदाहरण">
`Event("11111-11111", "Purchase", attribute "total_price" between 10.00 50.00)`
</Aside>

#### लिस्ट इवेंट एट्रिब्यूट्स

*   **attribute "name" in** - एट्रिब्यूट में निर्दिष्ट मानों में से कोई भी शामिल है
*   **attribute "name" notin** - एट्रिब्यूट में निर्दिष्ट मानों में से कोई भी शामिल नहीं है
*   **attribute "name" any** - एट्रिब्यूट के लिए कोई भी मान सेट है
*   **attribute "name" notset** - एट्रिब्यूट के लिए कोई मान सेट नहीं है

<Aside type="note" title="लिस्ट एट्रिब्यूट सिंटैक्स उदाहरण">
`Event("11111-11111", "Cart Update", attribute "product_ids" in ["prod-123", "prod-456"])`
</Aside>

## अतिरिक्त शर्त प्रकार

### जियो कंडीशन

एक निर्दिष्ट दायरे के भीतर भौगोलिक स्थान के आधार पर डिवाइसों को लक्षित करें।

**सिंटैक्स:** `Geo("<app-code>", <latitude>, <longitude>, <range-in-km>)`

<Aside type="note" title="जियो सिंटैक्स उदाहरण">
`Geo("11111-11111", 53.2734, -7.77832031, 100.05)` - निर्देशांकों के 100.05 किमी के भीतर डिवाइस
</Aside>

### BTTS कंडीशन

सूचनाएं भेजने के उनके सर्वोत्तम समय (दिन का घंटा, 0-23) के आधार पर डिवाइसों को लक्षित करें।

**ऑपरेटर्स:**
*   **any** - कोई भी सर्वोत्तम भेजने का समय मान सेट है
*   **eq** - सटीक घंटे का मिलान
*   **noteq** - घंटे के बराबर नहीं
*   **gte** - घंटा इससे अधिक या बराबर
*   **lte** - घंटा इससे कम या बराबर

<Aside type="note" title="BTTS सिंटैक्स उदाहरण">

* `BTTS("11111-11111", eq 10)` - 10:00 बजे सर्वोत्तम समय वाले डिवाइस
* `BTTS("11111-11111", gte 18)` - 18:00 बजे से आगे सर्वोत्तम समय वाले डिवाइस
* `BTTS("11111-11111", any)` - किसी भी सर्वोत्तम समय मान वाले डिवाइस

</Aside>

### अपडेटेड कंडीशन

उनके अंतिम अपडेट टाइमस्टैम्प के आधार पर डिवाइसों को फ़िल्टर करें।

**ऑपरेटर्स:**
*   **gte** - निर्दिष्ट तिथि के बाद या उस पर अपडेट किया गया
*   **lte** - निर्दिष्ट तिथि से पहले या उस पर अपडेट किया गया
*   **between** - तिथि सीमा के भीतर अपडेट किया गया

<Aside type="note" title="अपडेटेड सिंटैक्स उदाहरण">

* `Updated("11111-11111", gte "2022-01-01 00:00:00")` - 1 जनवरी, 2022 के बाद अपडेट किए गए डिवाइस
* `Updated("11111-11111", lte "2022-12-31 23:59:59")` - 31 दिसंबर, 2022 से पहले अपडेट किए गए डिवाइस
* `Updated("11111-11111", between "2022-01-01 00:00:00" "2022-12-31 23:59:59")` - 2022 में अपडेट किए गए डिवाइस

</Aside>

### सेगमेंट कंडीशन

किसी अन्य फ़िल्टर/सेगमेंट को उसके कोड द्वारा संदर्भित करें।

<Aside type="note" title="सेगमेंट सिंटैक्स उदाहरण">
`Segment("11111-11111", "22222-22222")` - कोड "22222-22222" वाले फ़िल्टर को संदर्भित करें
</Aside>

## एप्लिकेशन कंडीशन डिवाइस उपस्थिति फ्लैग्स

एप्लिकेशन की शर्तें डिवाइस और टोकन फ़िल्टरिंग को नियंत्रित करने के लिए अतिरिक्त फ्लैग्स का समर्थन करती हैं:

*   **with_tokens** - पुश नोटिफिकेशन टोकन वाले डिवाइस
*   **without_tokens** - पुश नोटिफिकेशन टोकन के बिना डिवाइस
*   **with_devices** - पंजीकृत डिवाइस वाले उपयोगकर्ता
*   **without_devices** - पंजीकृत डिवाइस के बिना उपयोगकर्ता/प्रोफाइल

<Aside type="note" title="एप्लिकेशन फ्लैग्स सिंटैक्स उदाहरण">

* `A("11111-11111", ["ios", "android"], [with_tokens])` - पुश टोकन वाले डिवाइस
* `A("11111-11111", ["ios", "android"], [without_tokens])` - पुश टोकन के बिना डिवाइस
* `A("11111-11111", [], [with_devices])` - डिवाइस रिकॉर्ड वाले सभी डिवाइस
* `A("11111-11111", ["ios", "android"], [without_tokens, with_devices])` - टोकन के बिना लेकिन डिवाइस रिकॉर्ड वाले डिवाइस

</Aside>

## फ़िल्टर एक्सप्रेशन उदाहरण

<Aside type="note">
JSON क्वेरी लिखते समय, कोट्स (`"`) और बैकस्लैश (`\`) को एक बैकस्लैश (`\`) से एस्केप करना सुनिश्चित करें।
एक उदाहरण अनुरोध के लिए, [/exportSegment](/hi/developer/api-reference/segmentation-filters-api/#exportsegment) देखें।
</Aside>

### बुनियादी उदाहरण

1.  ऐप इंस्टॉल किए हुए और पुश टोकन वाले iOS और Android डिवाइस:

```json
A("11111-11111", ["ios","android"], [with_tokens])
```

2.  ऐप इंस्टॉल किए हुए लेकिन पुश टोकन के बिना iOS और Android डिवाइस:

```json
A("11111-11111", ["ios","android"], [without_tokens])
```

3.  ऐप इंस्टॉल किए हुए iOS और Android डिवाइस, चाहे उनके पास पुश टोकन हों या नहीं:

```json
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
```

4.  सभी ऐप ग्राहक जिन्होंने ऐप में कुछ खरीदा है:

```json
AT("11111-11111", "In-App Purchase", gte, 1)
```

### उन्नत उदाहरण

5.  टोक्यो में उपयोगकर्ता जिन्होंने पिछले 7 दिनों में ऐप खोला है:

```json
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)
```

6.  वे उपयोगकर्ता जिन्होंने पिछले 30 दिनों में $50 से अधिक की खरीदारी की है:

```json
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)
```

7.  वे उपयोगकर्ता जिनके नाम "J" से शुरू होते हैं या "e" पर समाप्त होते हैं:

```json
T("Name", startswith, "J") + T("Name", endswith, "e")
```

8.  न्यूयॉर्क के 100 किमी के भीतर सक्रिय iOS उपयोगकर्ता जिन्होंने हाल ही में खरीदारी नहीं की है:

```json
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)
```

9.  सुबह 9 बजे से शाम 5 बजे के बीच भेजने के लिए सर्वोत्तम समय वाले उपयोगकर्ता:

```json
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
```

10. वे उपयोगकर्ता जिन्होंने पिछले घंटे में Android या iOS पर एक विशिष्ट इवेंट को ट्रिगर किया है:

```json
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)
```

11. पिछले 3 महीनों में ऐप संस्करण 4.2 या उच्चतर के साथ अपडेट किए गए डिवाइस:

```json
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")
```