# হাই-স্পিড ডেলিভারি সেটআপ

## ওভারভিউ

Pushwoosh-এ, অডিয়েন্স সেগমেন্টগুলি **Segments** ব্যবহার করে সংজ্ঞায়িত করা হয়।

স্ট্যান্ডার্ড পুশ ক্যাম্পেইনের জন্য, [`/createMessage`](/bn/developer/api-reference/messages-api/#createmessage) রিকোয়েস্ট পাঠানোর **পরে** সেগমেন্ট কম্পাইল করা হয়। এর মানে হল মেসেজটি যাওয়ার আগে কিছুটা বিলম্ব হতে পারে, বিশেষ করে যদি সেগমেন্টটি জটিল হয়।

হাই-স্পিড ডেলিভারির মাধ্যমে, সেগমেন্টগুলি প্রতি ১০ মিনিটে প্রিকম্পাইল করা হয়। এটি তাদের আপ-টু-ডেট এবং ব্যবহারের জন্য প্রস্তুত রাখে, যাতে মেসেজগুলি তাৎক্ষণিকভাবে পাঠানো যায়—সেগমেন্ট কম্পাইল হওয়ার জন্য অপেক্ষা না করে।

হাই-স্পিড ডেলিভারি বিশেষ করে তখন কার্যকর যখন সময় অত্যন্ত গুরুত্বপূর্ণ। উদাহরণস্বরূপ, UEFA এবং FIBA-র মতো স্পোর্টস অর্গানাইজেশনগুলি রিয়েল-টাইম আপডেট দিতে এটি ব্যবহার করতে পারে, যেখানে প্রতিটি সেকেন্ড গুরুত্বপূর্ণ।

এই গাইডটি একটি স্পোর্টস অ্যাপকে উদাহরণ হিসেবে ব্যবহার করে কীভাবে হাই-স্পিড ডেলিভারি সেট আপ করতে হয় তা ব্যাখ্যা করে। আপনি শিখবেন কীভাবে আসন্ন ম্যাচ এবং লাইভ ইভেন্ট সম্পর্কে ব্যবহারকারীদের অবহিত করতে অডিয়েন্স সেগমেন্ট তৈরি করতে হয়।

## কেন হাই-স্পিড ডেলিভারি প্রয়োজন

স্পোর্টস অর্গানাইজেশনগুলির জন্য হাই-স্পিড ডেলিভারি ব্যবহারের পূর্বশর্তগুলি নিম্নরূপ:

* সমস্ত ম্যাচ আগে থেকেই নির্ধারিত থাকে, তাই আপনি জানেন কখন সংশ্লিষ্ট সেগমেন্ট তৈরি করতে হবে এবং অডিয়েন্স সেগমেন্ট প্রিকম্পাইল করতে পারেন
* প্রতিটি ম্যাচ একটি ইউনিক আইডির সাথে যুক্ত। উদাহরণস্বরূপ, চ্যাম্পিয়ন্স লিগ ফাইনালের ম্যাচ আইডি হল 0123
* প্রতিটি দল একটি ইউনিক আইডির সাথে যুক্ত। উদাহরণস্বরূপ, জুভেন্টাস আইডি 111, রিয়াল মাদ্রিদ আইডি 222, ইত্যাদি।
* লাইভ ইভেন্টগুলির একটি সেট রয়েছে যা সম্পর্কে আপনি ব্যবহারকারীদের অবহিত করতে চান (গোল, লাইনআপ, কিকঅফ, ইত্যাদি)

## সেটআপ

<Aside type="caution" icon="setting" title="ডেভেলপারের সহায়তা প্রয়োজন">
****
হাই-স্পিড ডেলিভারি সেটআপ করার জন্য ডেভেলপারের সহায়তার প্রয়োজন। সঠিক ইমপ্লিমেন্টেশনের জন্য অনুগ্রহ করে এই গাইডটি তাদের সাথে শেয়ার করুন।
</Aside>

হাই-স্পিড ডেলিভারির জন্য সমস্ত সেগমেন্ট আগে থেকেই তৈরি করা উচিত—আদর্শভাবে উদাহরণ ব্যবহারের ক্ষেত্রে ম্যাচ শুরুর আগে। Pushwoosh অ্যাপের ইউজার বেসে সেগমেন্ট কন্ডিশন প্রয়োগ করে এবং **প্রতি ১০ মিনিটে সেগমেন্ট প্রিকম্পাইল করে** (এই ব্যবধানটি পরিবর্তনযোগ্য)।

যখন আপনি পুশ কন্টেন্ট এবং সেগমেন্টের নাম সহ একটি [`/createMessage`](/bn/developer/api-reference/messages-api/#createmessage) API রিকোয়েস্ট পাঠান, তখন Pushwoosh-এর কাছে ইতিমধ্যেই প্রাপকদের একটি প্রিকম্পাইল্ড তালিকা থাকে, যা পুশ নোটিফিকেশনটি তাৎক্ষণিকভাবে পাঠানোর অনুমতি দেয়।

<Aside type="caution" title="গুরুত্বপূর্ণ">
****
সেগমেন্ট কম্পাইলেশন রিসোর্স-সাপেক্ষ, এবং এর গতি নির্ভর করে:
- সেগমেন্ট কন্ডিশনের জটিলতা (ব্যবহৃত ট্যাগের সংখ্যা, ট্যাগ ভ্যালুর উচ্চ কার্ডিনালিটি);
- একই সময়ে প্রিকম্পাইল করা ইউনিক সেগমেন্টের সংখ্যা;
- অ্যাপে সাবস্ক্রাইব করা ব্যবহারকারীর সংখ্যা।

অতএব, **একটি গেমের জন্য সমস্ত সেগমেন্ট গেম শুরুর আগে API-এর মাধ্যমে তৈরি করতে হবে এবং পরে মুছে ফেলতে হবে** যাতে সক্রিয় প্রিকম্পাইল্ড সেগমেন্টের সংখ্যা ন্যূনতম রাখা যায় এবং কম্পিউটিং রিসোর্স সাশ্রয় করা যায়।

</Aside>

### ট্যাগ তৈরি করুন (Create Tags)

প্রথমে, প্রয়োগ করার জন্য ট্যাগের একটি সেট তৈরি করুন এবং ব্যবহারকারীদের ডিভাইসের জন্য ট্যাগ ভ্যালু সেট করুন।
লাইভ ম্যাচ ইভেন্ট যেমন **কিকঅফ, গোল, লাল কার্ড** ইত্যাদির সাথে সম্পর্কিত LIST টাইপের [ট্যাগ তৈরি করুন](/bn/product/audience-data-and-segmentation/user-data-tags/tags/)।

উদাহরণস্বরূপ:
**MATCH-KICKOFF, MATCH-GOAL, MATCH-RED\_CARD**
![ট্যাগ তৈরি করুন](/push-notifications-high-speed-delivery-2.webp)

একই সেট ট্যাগ তৈরি করুন যা দলের লাইভ ম্যাচ ইভেন্টগুলি বর্ণনা করে।
উদাহরণস্বরূপ:
**TEAM-KICKOFF, TEAM-GOAL, TEAM-RED\_CARD**

<Aside type="tip">
API-এর মাধ্যমে ট্যাগ তৈরি করতে, [`/addTag`](/bn/developer/api-reference/tags/#addtag) কল করুন।
</Aside>

এই ট্যাগগুলিতে সাবস্ক্রাইব করে, অ্যাপ ব্যবহারকারীরা বেছে নিতে পারেন তারা কোন বিজ্ঞপ্তিগুলি পেতে চান:

- নির্দিষ্ট ম্যাচ সম্পর্কে বিজ্ঞপ্তি (যেমন, জুভেন্টাস - রিয়াল মাদ্রিদ ম্যাচ);
- প্রিয় দলের ম্যাচ সম্পর্কে বিজ্ঞপ্তি (যেমন, শুধুমাত্র জুভেন্টাস ম্যাচ);
- ম্যাচ চলাকালীন ঘটা ইভেন্ট সম্পর্কে বিজ্ঞপ্তি (যেমন, শুধুমাত্র জুভেন্টাস - রিয়াল মাদ্রিদ ম্যাচে গোল);
- প্রিয় দলের নির্দিষ্ট ইভেন্ট সম্পর্কে বিজ্ঞপ্তি (যেমন, জুভেন্টাস ম্যাচের গোল এবং লাইনআপ)।

### ট্যাগ সেট করুন (Set Tags)

এখন আপনি [`setTags`](/bn/developer/api-reference/device-api/#settags) API রিকোয়েস্টের মাধ্যমে পূর্বে নির্দিষ্ট করা ট্যাগ ভ্যালুগুলি পপুলেট করতে পারেন এবং ব্যবহারকারীদের নির্দিষ্ট ক্যাটাগরির পুশ নোটিফিকেশনে সাবস্ক্রাইব করাতে পারেন।

উদাহরণস্বরূপ:
যখন একজন ব্যবহারকারী চ্যাম্পিয়ন্স লিগ ফাইনালের কিকঅফ এবং গোলের আপডেট পেতে সাবস্ক্রাইব করেন, তখন ম্যাচ আইডি সহ [`/setTags`](/bn/developer/api-reference/device-api/#settags) কল করুন:

```javascript
{
  "request": {
    "application": "app_code",
    "hwid": "device_hardware_id",
    "tags": {
      "MATCH_KICKOFF": "0123", // ম্যাচ আইডি
      "MATCH_GOAL": "0123"     // ম্যাচ আইডি
    }
  }
}
```

ব্যবহারকারী চ্যাম্পিয়ন্স লিগ ফাইনালের কিকঅফ এবং গোল সম্পর্কে বিজ্ঞপ্তি পাবেন।
যখন একজন ব্যবহারকারী রিয়াল মাদ্রিদ ম্যাচের গোল এবং লাল কার্ডের আপডেট পেতে সাবস্ক্রাইব করেন, তখন [`/setTags`](/bn/developer/api-reference/device-api/#settags) কল করুন নিম্নরূপ:

```javascript
{
  "request": {
    "application": "app_code",
    "hwid": "device_hardware_id",
    "tags": {
      "TEAM_KICKOFF": "222", // টিম আইডি
      "TEAM_GOAL": "222"     // টিম আইডি
    }
  }
}
```

এই ব্যবহারকারী যখনই রিয়াল মাদ্রিদ খেলবে তখনই কিকঅফ এবং গোল সম্পর্কে বিজ্ঞপ্তি পাবেন।

### সেগমেন্ট তৈরি করুন (Create Segments)

এখন আপনি ট্যাগ এবং তাদের ভ্যালু (ম্যাচ আইডি এবং টিম আইডি) এর উপর ভিত্তি করে ম্যাচ ইভেন্টগুলির জন্য সেগমেন্ট তৈরি করতে পারেন। ম্যাচ শুরুর ৩০ মিনিট আগে [`/createFilter`](/bn/developer/api-reference/segmentation-filters-api/#createfilter) API রিকোয়েস্টের মাধ্যমে সেগমেন্ট তৈরি করা উচিত।

উপরে দেওয়া উদাহরণ থেকে চ্যাম্পিয়ন্স লিগ ফাইনালে গোল হওয়ার বিষয়ে ব্যবহারকারীদের অবহিত করতে, নিম্নলিখিত প্যারামিটারগুলির সাথে [`/createFilter`](/bn/developer/api-reference/segmentation-filters-api/#createfilter) কল করুন:
**সেগমেন্টের নাম**: 0123_GOAL
**সেগমেন্ট কন্ডিশন**: `#TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)`

```javascript
{
  "request": {
    "auth": "auth_token",
    "name": "0123_GOAL",
    "conditions": [
      ["TEAM-GOAL", "IN", ["111", "222"]],
      ["MATCH-GOAL", "IN", ["0123"]]
    ],
    "operator": "OR", // ঐচ্ছিক। অপারেটর ভ্যালু: 'AND', 'OR'
    "application" : "AAAAA-00000"
  }
}
```

এই রিকোয়েস্টটি চ্যাম্পিয়ন্স লিগ ফাইনালের (ম্যাচ আইডি=0123) গোলের আপডেটের জন্য সাবস্ক্রাইব করা ব্যবহারকারীদের অথবা যারা জুভেন্টাস বা রিয়াল মাদ্রিদ (টিম আইডি=111,222) ফলো করেন তাদের সেগমেন্ট কম্পাইল করবে।

আপনার Pushwoosh কন্ট্রোল প্যানেলে একটি হাই-স্পিড ডেলিভারি সেট আপ করতে, সংশ্লিষ্ট ট্যাগ ভ্যালু সহ [একটি নতুন সেগমেন্ট তৈরি করুন](/bn/product/audience-data-and-segmentation/segmentation/create-segments) এবং আপনি যে অ্যাপে পুশ পাঠাতে যাচ্ছেন তার সাথে এটি যুক্ত করুন। অ্যাপ-স্পেসিফিক সেগমেন্টগুলি অডিয়েন্স সেগমেন্ট সর্বদা আপডেট রাখতে প্রতি ১০ মিনিটে প্রিকম্পাইল করা হয়।

![একটি নতুন সেগমেন্ট তৈরি করুন](/push-notifications-high-speed-delivery-1.webp)

যখন ম্যাচ ইভেন্ট ঘটে (গোল, ম্যাচ কিকঅফ, লাল কার্ড, ইত্যাদি), তখন পুশ নোটিফিকেশন কন্টেন্ট এবং সেগমেন্টের নাম সহ [`/createMessage`](/bn/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`](/bn/developer/api-reference/messages-api/#createmessage) কলটি পেলে, আমাদের কাছে ইতিমধ্যেই সেগমেন্ট ক্রাইটেরিয়ার সাথে মিলে যাওয়া ডিভাইসগুলির একটি প্রিকম্পাইল্ড তালিকা থাকে, এবং আমরা অবিলম্বে APNs এবং FCM গেটওয়েগুলির দিকে বিজ্ঞপ্তিটি পাঠাই।

<Aside type="caution" title="গুরুত্বপূর্ণ">
*****
হাই-স্পিড ডেলিভারি সেগমেন্টগুলি **daysago** অপারেটর ব্যবহার সমর্থন করে না। আপনি যদি এই অপারেটর দিয়ে একটি সেগমেন্ট তৈরি করার চেষ্টা করেন তবে আপনি একটি ত্রুটি বার্তা পাবেন।

এই সীমাবদ্ধতা বিদ্যমান কারণ, সঠিকভাবে কাজ করার জন্য, হাই-স্পিড ডেলিভারি সেগমেন্টগুলি ব্যবহারকারীর ডিভাইসে অ্যাপে ঘটে যাওয়া পরিবর্তনের উপর নির্ভর করে (যেমন পুশ নোটিফিকেশনের জন্য সাবস্ক্রাইব করা বা একটি নির্দিষ্ট ট্যাগ ভ্যালু সেট করা)। **daysago** অপারেটরে এই ধরনের পরিবর্তন জড়িত নয়, তাই সেগমেন্টটি উদ্দেশ্য অনুযায়ী কাজ করবে না।
এছাড়াও, মনে রাখবেন যে হাই-স্পিড ডেলিভারি সেগমেন্টগুলি শিডিউলড মেসেজের সাথে ব্যবহার করা যাবে না।
</Aside>

## সেগমেন্ট মুছে ফেলুন (Delete Segments)

ম্যাচ শেষ হওয়ার পরে, সমস্ত সংশ্লিষ্ট সেগমেন্ট মুছে ফেলা উচিত যাতে আর প্রাসঙ্গিক নয় এমন সেগমেন্টগুলির পুনঃ-কম্পাইলেশনে কম্পিউটিং রিসোর্স ব্যয় না হয়, বিশেষ করে পরবর্তী শিডিউল করা ম্যাচের সেগমেন্টের খরচে। [`/deleteFilter`](/bn/developer/api-reference/segmentation-filters-api/#deletefilter) API রিকোয়েস্টের মাধ্যমে সেগমেন্ট মুছে ফেলুন, উদাহরণস্বরূপ:

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

ম্যানুয়াল সেগমেন্ট মুছে ফেলা এড়াতে, [`/createFilter`](/bn/developer/api-reference/segmentation-filters-api/#createfilter) রিকোয়েস্টের মাধ্যমে সেগমেন্টের মেয়াদ শেষ হওয়ার তারিখ সেট করুন যাতে নির্দিষ্ট তারিখে সেগমেন্টটি স্বয়ংক্রিয়ভাবে মুছে যায়:

```javascript
{
  "request": {
    "auth": "auth_token",
    "name": "0123_GOAL",
    "conditions": [
      ["TEAM-GOAL", "IN", ["111", "222"]],
      ["MATCH-GOAL", "IN", ["0123"]]
    ],
    "operator": "OR",  // ঐচ্ছিক। ভ্যালু: 'AND', 'OR'
    "application": "AAAAA-00000",
    "expiration_date": "YYYY-MM-DD"  // ঐচ্ছিক। সেগমেন্ট (ফিল্টার) মেয়াদ শেষ
  }
}
```