# High-speed delivery सेटअप

## अवलोकन

Pushwoosh में, ऑडियंस सेगमेंट्स को **Segments** का उपयोग करके परिभाषित किया जाता है।

मानक पुश अभियानों (campaigns) के लिए, [`/createMessage`](/hi/developer/api-reference/messages-api/#createmessage) अनुरोध भेजे जाने के **बाद** सेगमेंट को कंपाइल किया जाता है। इसका मतलब है कि संदेश बाहर जाने से पहले थोड़ी देरी हो सकती है, खासकर यदि सेगमेंट जटिल है।

High-speed delivery (हाई-स्पीड डिलीवरी) के साथ, सेगमेंट्स हर 10 मिनट में प्री-कंपाइल (पहले से तैयार) किए जाते हैं। यह उन्हें अपडेट और उपयोग के लिए तैयार रखता है, ताकि संदेश तुरंत भेजे जा सकें—सेगमेंट के कंपाइल होने का इंतजार किए बिना।

High-speed delivery विशेष रूप से तब उपयोगी होती है जब समय महत्वपूर्ण होता है। उदाहरण के लिए, UEFA और FIBA जैसे खेल संगठन इसका उपयोग रीयल-टाइम अपडेट देने के लिए कर सकते हैं जहाँ हर सेकंड मायने रखता है।

यह गाइड एक स्पोर्ट्स ऐप को उदाहरण के रूप में उपयोग करते हुए हाई-स्पीड डिलीवरी सेट करने का तरीका बताती है। आप सीखेंगे कि आगामी मैचों और लाइव इवेंट्स के बारे में उपयोगकर्ताओं को सूचित करने के लिए ऑडियंस सेगमेंट्स कैसे बनाएं।

## High-speed delivery क्यों?

खेल संगठनों द्वारा हाई-स्पीड डिलीवरी का उपयोग करने के लिए पूर्वापेक्षाएँ (prerequisites) इस प्रकार हैं:

* सभी मैच पहले से निर्धारित होते हैं, इसलिए आप जानते हैं कि संबंधित Segments कब बनाने हैं और ऑडियंस सेगमेंट्स को प्री-कंपाइल कर सकते हैं।
* प्रत्येक मैच एक यूनिक ID से जुड़ा होता है। उदाहरण के लिए, चैंपियंस लीग फाइनल के लिए मैच ID 0123 है।
* प्रत्येक टीम एक यूनिक ID से जुड़ी होती है। उदाहरण के लिए, जुवेंटस (Juventus) ID 111 है, रियल मैड्रिड (Real Madrid) ID 222 है, आदि।
* लाइव इवेंट्स का एक सेट होता है जिसके बारे में आप उपयोगकर्ताओं को सूचित करना चाहते हैं (गोल, लाइनअप, किकऑफ, आदि)।

## सेटअप

<Aside type="caution" icon="setting" title="डेवलपर सहायता की आवश्यकता है">
****
High-speed delivery सेट करने के लिए डेवलपर सहायता की आवश्यकता होती है। कृपया उचित कार्यान्वयन के लिए इस गाइड को उनके साथ साझा करें।
</Aside>

हाई-स्पीड डिलीवरी के लिए सभी सेगमेंट्स पहले से बनाए जाने चाहिए—आदर्श रूप से उदाहरण के उपयोग के मामले में मैच शुरू होने से पहले। Pushwoosh ऐप के यूज़र बेस पर सेगमेंट की शर्तें लागू करता है और **हर 10 मिनट में सेगमेंट्स को प्री-कंपाइल करता है** (यह अंतराल समायोज्य है)।

जब आप पुश सामग्री और सेगमेंट नाम के साथ [`/createMessage`](/hi/developer/api-reference/messages-api/#createmessage) API अनुरोध भेजते हैं, तो Pushwoosh के पास पहले से ही प्राप्तकर्ताओं (recipients) की एक प्री-कंपाइल सूची होती है, जिससे पुश नोटिफिकेशन तुरंत भेजा जा सकता है।

<Aside type="caution" title="महत्वपूर्ण">
****
सेगमेंट कंपाइलेशन संसाधन-खपत (resource-consuming) वाला कार्य है, और इसकी गति इस पर निर्भर करती है:
- Segment शर्तों की जटिलता (उपयोग किए गए Tags की संख्या, Tag मानों की उच्च कार्डिनलिटी);
- एक साथ प्री-कंपाइल किए गए यूनिक Segments की संख्या;
- ऐप को सब्सक्राइब करने वाले उपयोगकर्ताओं की संख्या।

इसलिए, **एक गेम के लिए सभी Segments गेम शुरू होने से पहले API के माध्यम से बनाए जाने चाहिए और बाद में हटा दिए जाने चाहिए** ताकि सक्रिय प्री-कंपाइल Segments की संख्या कम से कम रहे और कंप्यूटिंग संसाधनों की बचत हो सके।

</Aside>

### Tags बनाएं

सबसे पहले, लागू करने के लिए Tags का एक सेट बनाएं, और उपयोगकर्ताओं के डिवाइस के लिए Tag मान सेट करें।
लाइव मैच इवेंट्स जैसे **kickoff (किकऑफ), goal (गोल), red card (रेड कार्ड),** आदि के अनुरूप LIST प्रकार के [Tags बनाएं](/hi/product/audience-data-and-segmentation/user-data-tags/tags/)।

उदाहरण के लिए:
**MATCH-KICKOFF, MATCH-GOAL, MATCH-RED\_CARD**
![टैग्स बनाएं](/push-notifications-high-speed-delivery-2.webp)

टीमों के लिए लाइव मैच इवेंट्स का वर्णन करने वाले Tags का समान सेट बनाएं।
उदाहरण के लिए:
**TEAM-KICKOFF, TEAM-GOAL, TEAM-RED\_CARD**

<Aside type="tip">
API के माध्यम से Tags बनाने के लिए, [`/addTag`](/hi/developer/api-reference/tags/#addtag) कॉल करें।
</Aside>

इन Tags को सब्सक्राइब करके, ऐप उपयोगकर्ता चुन सकते हैं कि वे कौन से नोटिफिकेशन प्राप्त करना चाहते हैं:

- विशिष्ट मैच के बारे में नोटिफिकेशन (उदाहरण के लिए, जुवेंटस - रियल मैड्रिड मैच);
- पसंदीदा टीम के मैचों के बारे में नोटिफिकेशन (उदाहरण के लिए, केवल जुवेंटस मैच);
- मैच के दौरान होने वाली घटनाओं के बारे में नोटिफिकेशन (उदाहरण के लिए, केवल जुवेंटस - रियल मैड्रिड मैच में गोल);
- पसंदीदा टीम से विशिष्ट घटनाओं के बारे में नोटिफिकेशन (उदाहरण के लिए, जुवेंटस मैचों के गोल और लाइनअप)।

### Tags सेट करें

अब आप [`setTags`](/hi/developer/api-reference/device-api/#settags) API अनुरोध के माध्यम से पहले से निर्दिष्ट Tag मानों को पॉप्युलेट कर सकते हैं, और उपयोगकर्ताओं को पुश नोटिफिकेशन की विशिष्ट श्रेणियों के लिए सब्सक्राइब कर सकते हैं।

उदाहरण के लिए:
जब कोई उपयोगकर्ता चैंपियंस लीग फाइनल किकऑफ और गोल अपडेट प्राप्त करने के लिए सब्सक्राइब करता है, तो मैच ID के साथ [`/setTags`](/hi/developer/api-reference/device-api/#settags) कॉल करें:

```
{
  "request": {
    "application": "app_code",
    "hwid": "device_hardware_id",
    "tags": {
      "MATCH_KICKOFF": "0123", // match ID
      "MATCH_GOAL": "0123"     // match ID
    }
  }
}
```

उपयोगकर्ता को चैंपियंस लीग फाइनल किकऑफ और किए गए गोल के बारे में नोटिफिकेशन प्राप्त होंगे।
जब कोई उपयोगकर्ता रियल मैड्रिड मैचों के गोल और रेड कार्ड अपडेट प्राप्त करने के लिए सब्सक्राइब करता है, तो [`/setTags`](/hi/developer/api-reference/device-api/#settags) को इस प्रकार कॉल करें:

```
{
  "request": {
    "application": "app_code",
    "hwid": "device_hardware_id",
    "tags": {
      "TEAM_KICKOFF": "222", // team ID
      "TEAM_GOAL": "222"     // team ID
    }
  }
}
```

जब भी रियल मैड्रिड खेल रही होगी, इस उपयोगकर्ता को किकऑफ और गोल के बारे में नोटिफिकेशन प्राप्त होंगे।

### Segments बनाएं

अब आप Tags और उनके मानों (मैच IDs और टीम IDs) के आधार पर मैच इवेंट्स के लिए Segments बना सकते हैं। Segments को मैच शुरू होने से 30 मिनट पहले [`/createFilter`](/hi/developer/api-reference/segmentation-filters-api/#createfilter) API अनुरोध के माध्यम से बनाया जाना चाहिए।

ऊपर दिए गए उदाहरण से चैंपियंस लीग फाइनल में किए गए गोल के बारे में उपयोगकर्ताओं को सूचित करने के लिए, निम्नलिखित मापदंडों के साथ [`/createFilter`](/hi/developer/api-reference/segmentation-filters-api/#createfilter) कॉल करें:
**Segment name**: 0123_GOAL
**Segment conditions**: `#TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)`

```
{
  "request": {
    "auth": "auth_token",
    "name": "0123_GOAL",
    "conditions": [
      ["TEAM-GOAL", "IN", ["111", "222"]],
      ["MATCH-GOAL", "IN", ["0123"]]
    ],
    "operator": "OR", // optional. Operator values: 'AND', 'OR'
    "application" : "AAAAA-00000"
  }
}
```

यह अनुरोध चैंपियंस लीग फाइनल (मैच ID=0123) के गोल अपडेट के लिए सब्सक्राइब किए गए उपयोगकर्ताओं OR (या) उन उपयोगकर्ताओं के सेगमेंट को कंपाइल करेगा जो जुवेंटस या रियल मैड्रिड (टीम ID=111,222) को फॉलो करते हैं।

अपने Pushwoosh कंट्रोल पैनल में High-Speed Delivery सेट करने के लिए, संबंधित Tag मानों के साथ [एक नया Segment बनाएं](/hi/product/audience-data-and-segmentation/segmentation/create-segments) और इसे उस ऐप से संबद्ध करें जिसे आप पुश भेजने जा रहे हैं। ऑडियंस सेगमेंट्स को हमेशा अपडेट रखने के लिए ऐप-विशिष्ट Segments हर 10 मिनट में प्री-कंपाइल किए जाते हैं।

![नया Segment बनाएं](/push-notifications-high-speed-delivery-1.webp)

जब मैच इवेंट होता है (गोल हुआ, मैच किकऑफ, रेड कार्ड, आदि), तो पुश नोटिफिकेशन सामग्री और Segment नाम के साथ [`/createMessage`](/hi/developer/api-reference/messages-api/#createmessage) कॉल करें:

```json
{
  "request": {
    "application": "AAAAA_00000",
    "auth": "auth_token",
    "notifications": [
      {
        "content": "12’ Juventus goal! Juventus 1 – 0 Real Madrid",
        "filter": "0123_GOAL",
        "send_date": "now"
      }
    ]
  }
}
```

जैसे ही हमें [`/createMessage`](/hi/developer/api-reference/messages-api/#createmessage) कॉल प्राप्त होती है, हमारे पास पहले से ही उन उपकरणों की एक प्री-कंपाइल सूची होती है जो Segment मानदंडों से मेल खाते हैं, और हम तुरंत APNs और FCM गेटवे की ओर नोटिफिकेशन भेजते हैं।

<Aside type="caution" title="महत्वपूर्ण">
*****
High-Speed Delivery Segments **daysago** ऑपरेटर के उपयोग का समर्थन नहीं करते हैं। यदि आप इस ऑपरेटर के साथ एक Segment बनाने का प्रयास करते हैं, तो आपको एक त्रुटि संदेश प्राप्त होगा।

यह प्रतिबंध इसलिए मौजूद है क्योंकि, ठीक से काम करने के लिए, High-Speed Delivery Segments उन परिवर्तनों पर निर्भर करते हैं जो उपयोगकर्ता उपकरणों पर ऐप में हुए हैं (जैसे पुश नोटिफिकेशन के लिए सब्सक्राइब करना या एक विशिष्ट Tag मान सेट करना)। **daysago** ऑपरेटर में ऐसे परिवर्तन शामिल नहीं हैं, इसलिए Segment इच्छित रूप में काम नहीं करेगा।
यह भी ध्यान दें कि High-Speed Delivery Segments का उपयोग शेड्यूल किए गए संदेशों के साथ नहीं किया जा सकता है।
</Aside>

## Segments हटाएं

मैच खत्म होने के बाद, सभी संबंधित Segments को हटा दिया जाना चाहिए ताकि कंप्यूटिंग संसाधन उन Segments के पुन: कंपाइलेशन (re-compilation) पर खर्च न हों जो अब प्रासंगिक नहीं हैं, विशेष रूप से उन Segments की कीमत पर जो अगले शेड्यूल किए गए मैचों के लिए हैं। [`/deleteFilter`](/hi/developer/api-reference/segmentation-filters-api/#deletefilter) API अनुरोध के माध्यम से Segments हटाएं, उदाहरण के लिए:

```json
{
  "request": {
    "auth": "auth_token",
    "name": "0123_GOAL"
  }
}
```

मैनुअल Segments विलोपन (deletion) से बचने के लिए, [`/createFilter`](/hi/developer/api-reference/segmentation-filters-api/#createfilter) अनुरोध के माध्यम से Segment समाप्ति तिथि (expiration date) सेट करें ताकि निर्दिष्ट तिथि पर Segment स्वचालित रूप से हटा दिया जाए:

```
{
  "request": {
    "auth": "auth_token",
    "name": "0123_GOAL",
    "conditions": [
      ["TEAM-GOAL", "IN", ["111", "222"]],
      ["MATCH-GOAL", "IN", ["0123"]]
    ],
    "operator": "OR",  // optional. Values: 'AND', 'OR'
    "application": "AAAAA-00000",
    "expiration_date": "YYYY-MM-DD"  // optional. Segment (Filter) expiry
  }
}
```