# ট্যাগ

ট্যাগ হলো Pushwoosh-এর সবচেয়ে দরকারী টুলগুলোর মধ্যে একটি, যা বিভিন্ন ধরনের উন্নত কার্যকারিতা সক্ষম করে। ট্যাগ ব্যবহার করে, আপনি আপনার দর্শকদের বিভাজন করতে পারেন এবং তাদের বৈশিষ্ট্যের উপর ভিত্তি করে নির্দিষ্ট ব্যবহারকারীদের কাছে লক্ষ্যযুক্ত পুশ নোটিফিকেশন পাঠাতে পারেন।

ট্যাগগুলোতে কোনো নির্দিষ্ট ব্যবহারকারী বা ডিভাইসের সাথে সম্পর্কিত যেকোনো নির্বিচার ডেটা থাকতে পারে। এই ডেটার মধ্যে ব্যবহারকারীর নাম, আইডি, শহর, প্রিয় ফুটবল দল, পছন্দের সংবাদ বিভাগ বা আপনার ব্যবহারকারীদের সম্পর্কে অন্য কোনো প্রাসঙ্গিক তথ্য অন্তর্ভুক্ত থাকতে পারে।

## কোন ট্যাগ ব্যবহার করবেন তা নির্ধারণ করা

আপনার ব্যবসার প্রয়োজনগুলো চিহ্নিত করে শুরু করুন এবং নির্ধারণ করুন আপনি কীভাবে আপনার দর্শকদের বিভাজন করতে চান। ব্যবহারকারীদের লক্ষ্য করার জন্য বয়স, অবস্থান, অ্যাপ-মধ্যস্থ কেনাকাটার ইতিহাস বা অন্য কোনো প্রাসঙ্গিক মানদণ্ড বিবেচনা করুন।
<Aside type="tip">
আপনার মার্কেটিং লক্ষ্য এবং দর্শক বিভাজন কৌশলের সাথে কোন ট্যাগগুলো সবচেয়ে ভালো মেলে তা নির্ধারণে সাহায্য করার জন্য মার্কেটিং দলকে এই প্রক্রিয়ায় জড়িত করার প্রয়োজন হতে পারে।
</Aside>

## ট্যাগের মান

ট্যাগের মান আপনার পুশ ক্যাম্পেইনগুলোকে আরও স্মার্ট করতে সাহায্য করতে পারে। প্রতিটি ট্যাগ প্রায় _সীমাহীন সংখ্যক মান_ সংরক্ষণ করতে সক্ষম। মূলত, এর মানে হলো আপনার ডাটাবেসের প্রতিটি শেষ-ব্যবহারকারীর সম্পর্কে একটি নির্দিষ্ট ধরনের তথ্য রেকর্ড করার জন্য একটি ট্যাগই যথেষ্ট।

প্রতিটি অ্যাকাউন্টের জন্য মাত্র কয়েকটি ট্যাগ উপলব্ধ, কিন্তু প্রতিটি ট্যাগের জন্য প্রায় অসীম স্থান বিবেচনা করে, আপনার ব্যবহারকারীদের সম্পর্কে বিপুল পরিমাণ তথ্য সংগ্রহ করতে এবং খুব জটিল টার্গেটিং প্যাটার্ন সেট আপ করার জন্য মাত্র কয়েকটি ট্যাগই যথেষ্ট।

## ট্যাগের প্রকারভেদ

*   **Integer (পূর্ণসংখ্যা)** — পূর্ণসংখ্যার ডেটার জন্য ব্যবহৃত হয় (ইন-গেম ক্যাশের পরিমাণ, অর্জিত লেভেল, বয়স)।
*   **String (স্ট্রিং)** — স্ট্রিং মানের জন্য ব্যবহৃত হয় (ব্যবহারকারীর নাম, ই-মেইল, শনাক্তকারী)।
*   **List (তালিকা)** — স্ট্রিং প্রকারের মতোই, কিন্তু প্রতিটি ব্যবহারকারীর একই সাথে একাধিক মান সেট করা থাকতে পারে (সংগীত পছন্দ, সংবাদ বিভাগ, খাবারের পছন্দ)।
*   **Boolean (বুলিয়ান)** — ট্রু / ফলস (true / false) ধরনের ট্যাগ।
*   **Date (তারিখ)** — ক্যালেন্ডারের তারিখের জন্য ব্যবহৃত হয়। মূলত, এটি একটি পূর্ণসংখ্যা ধরনের ট্যাগ যা ইউনিক্স এপোক টাইমস্ট্যাম্প সংরক্ষণ করে (স্বয়ংক্রিয়ভাবে গ্রেগরিয়ান তারিখে রূপান্তরিত হয়)।
*   **Price (মূল্য)** — "\*.XX" ফরম্যাটে নির্দিষ্ট মুদ্রা অনুযায়ী মান সেট করার অনুমতি দেয় [আরও জানুন](https://en.wikipedia.org/wiki/ISO_4217)।
*   **Version (সংস্করণ)** — সংস্করণ নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। অনুমোদিত বিন্যাসের উদাহরণ হলো w.x.y.z (Major.Minor.Patch.Build)। প্রতিটি সংস্করণ অংশের জন্য সর্বোচ্চ মান ৯৯৯৯, তাই সর্বোচ্চ সংস্করণ সংখ্যা ৯৯৯৯.৯৯৯৯.৯৯৯৯.৯৯৯৯ এর বেশি হতে পারে না।

### ট্যাগ অপারেটর

প্রতিটি ট্যাগ প্রকারের জন্য নির্দিষ্ট কিছু **অপারেটর** প্রযোজ্য। ট্যাগ অপারেটরগুলো বিভাজনের উদ্দেশ্যে ট্যাগ এবং এর মানগুলোর মধ্যে সম্পর্ক নির্ধারণ করে।

*   Integer ট্যাগ অপারেটর: `is`, `is not`, `are`, `not in`, `not set`, `any`
*   String ট্যাগ অপারেটর: `is`, `is not`, `are`, `not in`, `not set`, `any`
*   List ট্যাগ অপারেটর: `in`, `not in`, `not set`, `any`
*   Boolean ট্যাগ অপারেটর: `is` (true/false), `not set`, `any`
*   Date ট্যাগ অপারেটর: `exactly on`, `on or after`, `on or before`, `between`, `not set`, `any`
*   Price ট্যাগ অপারেটর: `is`, `is not`, `greater or equals`, `less or equals`, `between`, `in`, `not in`, `not set`, `any`
*   Version ট্যাগ অপারেটর: `is`, `is not`, `greater or equals`, `less or equals`, `between`, `in`, `not in`, `not set`, `any`

<Aside type="note">
"Not set" এবং "any" অপারেটরগুলো সব ধরনের ট্যাগের জন্য উপলব্ধ।
</Aside>

## ট্যাগের পরিধি: সাধারণ বনাম ব্যবহারকারী-নির্দিষ্ট

একটি ট্যাগ তৈরি করার সময়, আপনি বেছে নেন এর মানগুলো কীভাবে সংরক্ষণ করা হবে:

-   **সাধারণ** (ডিফল্ট, `user_specific: false`): ট্যাগের মান প্রতি ডিভাইস (HWID) অনুযায়ী সংরক্ষণ করা হয়। একই ব্যবহারকারীর প্রতিটি ডিভাইস স্বাধীনভাবে একটি ভিন্ন মান ধারণ করতে পারে।
-   **ব্যবহারকারী-নির্দিষ্ট** (`user_specific: true`): ট্যাগের মান প্রতি ব্যবহারকারী (UserID) অনুযায়ী সংরক্ষণ করা হয়। UserID এর মাধ্যমে সেট করা হলে, মানটি ব্যবহারকারীর সমস্ত ডিভাইসে একবারে প্রয়োগ করা হয়। এটি সেইসব বৈশিষ্ট্যের জন্য উপযোগী যা ব্যক্তির সাথে সম্পর্কিত, কোনো নির্দিষ্ট ডিভাইসের সাথে নয়: সাবস্ক্রিপশন স্তর, লয়ালটি পয়েন্ট, পছন্দের ভাষা।

### উদাহরণ

একজন ব্যবহারকারীর আপনার অ্যাপের iOS এবং Android উভয় সংস্করণই ইনস্টল করা আছে। তাদের UserID এর মাধ্যমে একটি `subscription_tier` ট্যাগকে `"premium"` এ সেট করলে তা উভয় ডিভাইসে অবিলম্বে প্রয়োগ হয়। একটি সাধারণ ট্যাগের ক্ষেত্রে আপনাকে এটি প্রতি ডিভাইসের জন্য আলাদাভাবে সেট করতে হতো।

```javascript title="উদাহরণ: UserID এর মাধ্যমে একটি ব্যবহারকারী-নির্দিষ্ট ট্যাগ সেট করুন"
{
   "request":{
      "application": "XXXXX-XXXXX",
      "userId": "the id of a specific user",
      "tags": {
           "subscription_tier": "premium",
           "loyalty_points": 350
      }
   }
}
```

## ডিফল্ট ট্যাগ

এই ট্যাগগুলো Pushwoosh দ্বারা আউট-অফ-দ্য-বক্স উপলব্ধ, তাই আপনাকে এগুলো ম্যানুয়ালি সেট করতে হবে না (এবং, আসলে, করা উচিতও নয়)। এগুলোর বেশিরভাগই অ্যাপ্লিকেশন থেকে সেট করা হয় এবং আমাদের সার্ভারে [`registerDevice`](/bn/developer/api-reference/device-api/) এবং অন্যান্য API কলের মাধ্যমে পাঠানো হয়, এবং কিছু সার্ভার নিজেই সেট করে।

| নাম | প্রকার | কোথায় সেট করা হয়েছে | বিবরণ |
| ------------------------- | ------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| অ্যাপ্লিকেশন সংস্করণ (Application Version) | সংস্করণ (Version) | SDK | একটি ডিভাইসে ইনস্টল করা অ্যাপের বর্তমান সংস্করণ |
| ব্রাউজারের প্রকার (Browser Type) | স্ট্রিং (String) | SDK | যখন একটি ডিভাইস আপনার ওয়েব প্রকল্পের জন্য নিবন্ধিত হয়, তখন এর প্রকার - মোবাইল বা ডেস্কটপ - স্বয়ংক্রিয়ভাবে ট্র্যাক করা হয় |
| শহর (City) | স্ট্রিং (String) | সার্ভার | একটি ডিভাইসের সর্বশেষ নিবন্ধিত ভৌগোলিক অবস্থান |
| দেশ (Country) | স্ট্রিং (String) | সার্ভার | একটি ডিভাইসের সর্বশেষ নিবন্ধিত ভৌগোলিক অবস্থান |
| ডিভাইসের মডেল (Device Model) | স্ট্রিং (String) | SDK | অ্যাপটি যে ডিভাইস মডেলে ইনস্টল করা আছে তা নির্দেশ করে |
| প্রথম ইনস্টল (First Install) | তারিখ (Date) | সার্ভার | একটি ডিভাইস প্রথমবার নোটিফিকেশনের জন্য নিবন্ধিত হওয়ার সময় নির্দেশ করে |
| ইন-অ্যাপ পণ্য (In-App Product) | তালিকা (List) | SDK | অ্যাপের একজন ব্যবহারকারীর দ্বারা কেনা ইন-অ্যাপ পণ্য |
| সর্বশেষ ইন-অ্যাপ ক্রয়ের তারিখ (Last In-App Purchase Date) | তারিখ (Date) | SDK | একটি ডিভাইসে করা সর্বশেষ ইন-অ্যাপ ক্রয়ের তারিখ |
| ভাষা (Language) | স্ট্রিং (String) | SDK | ISO-639-1 অনুযায়ী একটি ডিভাইসের লোকালের দুই-অক্ষরের ছোট হাতের সংক্ষিপ্ত রূপ; ডিভাইস সেটিংস থেকে নেওয়া |
| সর্বশেষ অ্যাপ্লিকেশন খোলার সময় (Last Application Open) | তারিখ (Date) | সার্ভার | একটি ডিভাইসে সবচেয়ে সাম্প্রতিক অ্যাপ লঞ্চের সময় |
| সর্বশেষ ইমেল খোলার তারিখ (Last Email Open) | তারিখ (Date) | সার্ভার | ডিভাইসের ইমেল ঠিকানা সবচেয়ে সম্প্রতি একটি ইমেল খোলার ইভেন্ট নিবন্ধিত করার তারিখ |
| সর্বশেষ ইমেল খোলার বার্তা কোড (Last Email Open Message Code) | স্ট্রিং (String) | সার্ভার | সবচেয়ে সম্প্রতি খোলা ইমেলের [বার্তা কোড](/bn/developer/api-reference/api-identifiers#message-code) (ফরম্যাট `XXXX-XXXXXXXX-XXXXXXXX`)। প্রতিটি [`PW_EmailOpen`](/bn/product/audience-data-and-segmentation/events/default-events/#pw_emailopen) ইভেন্টে আপডেট করা হয়। এটি একটি নির্দিষ্ট ইমেল ক্যাম্পেইনের প্রাপকদের মধ্যে কারা এটি খুলেছে তা দ্বারা বিভাজন করতে ব্যবহার করুন |
| সর্বশেষ ইমেল ক্লিক (Last Email Click) | তারিখ (Date) | সার্ভার | ডিভাইসের ইমেল ঠিকানা সবচেয়ে সম্প্রতি একটি ইমেল লিঙ্ক ক্লিকে নিবন্ধিত করার তারিখ |
| সর্বশেষ ইমেল ক্লিকের বার্তা কোড (Last Email Click Message Code) | স্ট্রিং (String) | সার্ভার | সবচেয়ে সাম্প্রতিক ইমেল যেখানে একটি লিঙ্ক ক্লিক করা হয়েছিল তার [বার্তা কোড](/bn/developer/api-reference/api-identifiers#message-code) (ফরম্যাট `XXXX-XXXXXXXX-XXXXXXXX`)। প্রতিটি [`PW_EmailLinkClicked`](/bn/product/audience-data-and-segmentation/events/default-events/#pw_emaillinkclicked) ইভেন্টে আপডেট করা হয়। এটি একটি নির্দিষ্ট ইমেল ক্যাম্পেইনের প্রাপকদের মধ্যে কারা ক্লিক করেছে তা দ্বারা বিভাজন করতে ব্যবহার করুন |
| সর্বশেষ ইমেল নিশ্চিতকরণ (Last Email Confirm) | তারিখ (Date) | সার্ভার | ডিভাইসের ইমেল ঠিকানার জন্য সবচেয়ে সাম্প্রতিক ডাবল অপ্ট-ইন সাবস্ক্রিপশন নিশ্চিতকরণের তারিখ |
| বাউন্সড ইমেল (Bounced Email) | তারিখ (Date) | সার্ভার | এই ইমেল ঠিকানার জন্য একটি হার্ড বাউন্স ঘটার তারিখ। সময়-ভিত্তিক বিভাজনের জন্য তারিখ হিসাবে সংরক্ষণ করা হয়, উদাহরণস্বরূপ, সাম্প্রতিক বাউন্স সহ ব্যবহারকারীদের বাদ দিতে |
| আনসাবস্ক্রাইবড ইমেল (Unsubscribed Emails) | বুলিয়ান (Boolean) | SDK | একজন ব্যবহারকারী আপনার অ্যাপ থেকে ইমেল গ্রহণ থেকে আনসাবস্ক্রাইব করেছেন কিনা তা নির্দেশ করে |
| ওএস সংস্করণ (OS Version) | সংস্করণ (Version) | SDK | একটি ডিভাইসে চলমান অপারেটিং সিস্টেমের সংস্করণ |
| প্ল্যাটফর্ম (Platform) | স্ট্রিং (String) | SDK | ব্যবহারকারী যে প্ল্যাটফর্মে আপনার প্রকল্প ব্যবহার করছেন। |
| পুশ অ্যালার্ট সক্রিয় (Push Alerts Enabled) | বুলিয়ান (Boolean) | SDK | ডিভাইস সেটিংসে পুশ অ্যালার্ট অনুমোদিত কিনা তা নির্দেশ করে |
| SDK সংস্করণ (SDK Version) | সংস্করণ (Version) | SDK | একটি ডিভাইসে প্রয়োগ করা Pushwoosh SDK-এর সংস্করণ |

## কাস্টম ট্যাগ

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

### কীভাবে একটি কাস্টম ট্যাগ সেট আপ করবেন

আপনি [Pushwoosh কন্ট্রোল প্যানেলে](/bn/product/audience-data-and-segmentation/user-data-tags/tags) একটি নতুন ট্যাগ যোগ করতে পারেন অথবা [`/addTag`](/bn/developer/api-reference/tags#addtag) পদ্ধতি ব্যবহার করতে পারেন।

#### addTag

`POST` `https://api.pushwoosh.com/json/1.3/addTag`

আপনার অ্যাকাউন্টে একটি ট্যাগ তৈরি করে।

#### অনুরোধের বডি

| নাম | প্রকার | বিবরণ |
| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------- |
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| tag* | object | ট্যাগের প্যারামিটার। |
| tag.name* | string | ট্যাগের নাম। |
| tag.type* | integer | ট্যাগের প্রকার। নিচে সম্ভাব্য মান দেখুন। |
| tag.user\_specific | boolean | যখন `true`, ট্যাগের মান ব্যবহারকারী পর্যায়ে সংরক্ষণ করা হয় এবং UserID দ্বারা সেট করা হলে ব্যবহারকারীর সমস্ত ডিভাইসে শেয়ার করা হয়। যখন `false` (ডিফল্ট), ট্যাগটি ডিভাইস-স্তরের এবং প্রতি HWID সেট করা হয়। |

<Tabs>
<TabItem label="200">
```javascript
{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "result": true
    }
}
```
</TabItem>
</Tabs>



```javascript title="উদাহরণ"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
    "tag": {
      "name": "TAG_NAME",    // required
      "type": 1,             // required, see possible values below
      "user_specific": false // optional. true = user-level; false = device-level (default)
    }
  }
}
```

**সম্ভাব্য ট্যাগ মানের প্রকার:**

*   1 - Integer (পূর্ণসংখ্যা)
*   2 - String (স্ট্রিং)
*   3 - List (তালিকা)
*   4 - Date (তারিখ)
*   5 - Boolean (বুলিয়ান)
*   6 - Decimal (দশমিক)। যেমন: 19.95
*   7 - Version (সংস্করণ)। যেমন: "1.0.0.0"


### ব্যবহারকারীদের কাছ থেকে কীভাবে তথ্য সংগ্রহ করবেন


একবার আপনি একটি ট্যাগ যোগ এবং কনফিগার করার পরে, এটি আপনার ব্যবহারকারীদের কাছ থেকে তথ্য সংগ্রহ শুরু করার জন্য প্রস্তুত। এটি বাস্তবায়ন করতে এই পদক্ষেপগুলো অনুসরণ করুন:

1.  প্রাসঙ্গিক ইন্টিগ্রেশন গাইড অনুসরণ করে আপনার প্রকল্পে [Pushwoosh SDK](/bn/developer/pushwoosh-sdk/pushwoosh-sdk-overview/) সংহত করুন।
2.  ট্যাগ নির্ধারণ এবং ব্যবহারকারীর ডেটা সংগ্রহ করতে [`setTags`](/bn/developer/api-reference/device-api/#settags) ফাংশনটি ব্যবহার করুন।

নিচে [`setTags`](/bn/developer/api-reference/device-api/#settags) ফাংশন ব্যবহার করে বিভিন্ন ফ্রেমওয়ার্কের জন্য বাস্তবায়নের উদাহরণ দেওয়া হলো।


<Tabs>

<TabItem label="iOS নেটিভ">

<Card title="iOS নেটিভ">
```objective-c
NSDictionary *tags = @{ 
    @"Alias" : aliasField.text,
    @"FavNumber" : @([favNumField.text intValue]),
    @"price" : [PWTags incrementalTagWithInteger:5],
    @"List" : @[ @"Item1", @"Item2", @"Item3" ]
};

[[PushNotificationManager pushManager] setTags:tags];
```

[ডকুমেন্টেশন](https://pushwoosh.github.io/pushwoosh-ios-sdk/PushwooshiOS/documentation/pushwooshframework/pushwoosh/settags(_:)/)

</Card>

</TabItem>

<TabItem label="অ্যান্ড্রয়েড নেটিভ">

<Card title="অ্যান্ড্রয়েড নেটিভ">
```java
pushwoosh.setTags(Tags.intTag("intTag", 42));
```

[ডকুমেন্টেশন](https://pushwoosh.github.io/pushwoosh-android-sdk/pushwoosh/com.pushwoosh/-pushwoosh/set-tags.html)

</Card>

</TabItem>

<TabItem label="কর্ডোভা">

<Card title="কর্ডোভা">
```
PushNotification.prototype.setTags = function(  config, success, fail  )
```

[ডকুমেন্টেশন](/bn/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/cordova-plugin-api-reference/#settags)

</Card>

</TabItem>

<TabItem label="ফ্লাটার">

<Card title="ফ্লাটার">
```dart
Future<void> setTags(Map tags) async {
  await _channel.invokeMethod("setTags", {"tags" : tags});
}
```

[ডকুমেন্টেশন](https://pub.dev/documentation/pushwoosh_flutter/latest/pushwoosh_flutter/Pushwoosh/setTags.html)

</Card>

</TabItem>

<TabItem label="রিয়েক্ট নেটিভ">

<Card title="রিয়েক্ট নেটিভ">
```javascript
pushNotification.setTags({ 
    "string_tag" : "Hello world", 
    "int_tag" : 42, 
    "list_tag":["hello", "world"] 
});
```

[ডকুমেন্টেশন](https://github.com/Pushwoosh/pushwoosh-react-native-plugin/blob/master/docs/README.md#settags)

</Card>

</TabItem>

</Tabs>

<Tabs>

<TabItem label="ইউনিটি">

<Card title="ইউনিটি">



##### **SetIntTag**
ডিভাইসের জন্য একটি Integer ট্যাগ সেট করে।

```csharp
public virtual void SetIntTag(string tagName, int tagValue)
```

##### **SetStringTag**
ডিভাইসের জন্য একটি String ট্যাগ সেট করে।

```csharp
public virtual void SetStringTag(string tagName, string tagValue)
```

##### **SetListTag**  
ডিভাইসের জন্য একটি List ট্যাগ সেট করে।

```csharp
public virtual void SetListTag(string tagName, List<object> tagValues)
```
[ডকুমেন্টেশন](https://github.com/Pushwoosh/pushwoosh-unity/blob/master/Documentation/README.md#pushwoosh)
</Card>

</TabItem>

<TabItem label="আনরিয়েল ইঞ্জিন">

<Card title="আনরিয়েল ইঞ্জিন">
```cpp
FPushwooshModule& pushwoosh = FPushwooshModule::Get();
pushwoosh.SetTags("{ \"intTag\" : 1, \"stringTag\" : \"example\", \"listTag\" : [ \"a\", \"b\", \"c\" ] }");
```

[ডকুমেন্টেশন](https://github.com/Pushwoosh/pushwoosh-unreal-engine/blob/master/Plugins/Pushwoosh/Documentation/README.md#settags)

</Card>

</TabItem>

<TabItem label="এক্সপো">

<Card title="এক্সপো">
```javascript
Pushwoosh.setTags({ "key": keyValue, "value": inputValue });
```

[ডকুমেন্টেশন](https://github.com/Pushwoosh/pushwoosh-expo-plugin-sample/blob/main/app/_layout.tsx#L296C17-L296C76)

</Card>

</TabItem>

<TabItem label=".NET MAUI">

<Card title=".NET MAUI">
```objective-c
NSDictionary *tags = @{ 
    @"Alias" : aliasField.text,
    @"FavNumber" : @([favNumField.text intValue]),
    @"price" : [PWTags incrementalTagWithInteger:5],
    @"List" : @[ @"Item1", @"Item2", @"Item3" ]
};
[[PushNotificationManager pushManager] setTags:tags];
```

[ডকুমেন্টেশন](https://github.com/Pushwoosh/pushwoosh-dotnet/blob/c40c0fd60cb5fe5c5016c46d677a779a5600f45f/PushwooshSDK.DotNet.iOS.Bindings/PushwooshFramework.xcframework/ios-arm64/PushwooshFramework.framework/Headers/PushNotificationManager.h#L380)

</Card>

</TabItem>

<TabItem label="আউটসিস্টেমস">
<Card title="আউটসিস্টেমস">

**ইনপুট প্যারামিটার**
**ট্যাগ** – `TagName` এবং `TagValue` ধারণকারী ট্যাগ রেকর্ডের একটি তালিকা।
  - `TagName` অবশ্যই **Text** ধরনের হতে হবে।
  - `TagValue` **Text, Integer, Boolean, Date**, ইত্যাদি হতে পারে।

[আরও জানুন](/bn/developer/pushwoosh-sdk/cross-platform-frameworks/outsystems/pushwoosh-outsystems-plugin-client-actions#settags)

</Card>
</TabItem>

</Tabs>



### API এর মাধ্যমে ট্যাগ সেট করা
যদিও বেশিরভাগ ক্ষেত্রে (৯৯%), ট্যাগ অ্যাপ্লিকেশন থেকে সেট করা হয়, আপনি Pushwoosh API এর মাধ্যমেও ট্যাগ সেট করতে পারেন। নিচে [`/setTags`](/bn/developer/api-reference/device-api#settags) এন্ডপয়েন্টে একটি সাধারণ অনুরোধের উদাহরণ দেওয়া হলো:


POST `https://api.pushwoosh.com/json/1.3/setTags`

```json

{
   "request": {
      "application": "XXXXX-XXXXX", // required, Pushwoosh application code
      "hwid": "8f65bXXXf378eXXXbeceXXX4e153XXX2", // required, hardware device ID used in /registerDevice API
      "tags": { // required
           "StringTag": "string value", // Example of a string tag
           "IntegerTag": 42, // Example of an integer tag
           "ListTag": ["string1", "string2"], // Example of a list tag
           "DateTag": "2024-10-02 22:11", // Note: time must be in UTC
           "BooleanTag": true // Valid values: true, false
      }
   }
}

```

[আরও বিস্তারিত জানতে, setTags API ডকুমেন্টেশন দেখুন](/bn/developer/api-reference/device-api/#settags)

## ডিফল্ট **City** ট্যাগ ব্যবহার করা

ডিভাইসের অবস্থান তার আইপি ঠিকানার উপর ভিত্তি করে নির্ধারণ করা হয়, যখন আপনার অ্যাপটি শেষবার সেই ডিভাইসে চালু হয়েছিল। GeoIP অবস্থানের ডেটা Pushwoosh-এ জমা দেয়, এবং Pushwoosh GeoIP থেকে প্রাপ্ত অবস্থানটি একটি নির্দিষ্ট ডিভাইসের জন্য City ট্যাগের মান হিসাবে সংরক্ষণ করে।

কিছু ক্ষেত্রে, GeoIP দ্বারা জমা দেওয়া অবস্থানটি শহরের নাম থেকে ভিন্ন হয় — উদাহরণস্বরূপ, যখন এটি একটি শহরের কোনো এলাকা বা অন্য কোনো প্রশাসনিক ইউনিটকে নির্দেশ করে। বিভাজনের উদ্দেশ্যে ডিফল্ট City ট্যাগ ব্যবহার করার সময় দয়া করে সতর্ক থাকুন: সঠিক মানগুলো নির্বাচন করতে ভুলবেন না।

উদাহরণস্বরূপ, আপনি যদি মিউনিখের ব্যবহারকারীদের লক্ষ্য করতে যাচ্ছেন, তবে আপনাকে এটি কয়েকটি City ট্যাগের মান দিয়ে কভার করতে হবে, যার মধ্যে "Munich" নিজেও রয়েছে (এবং এর সাথে সম্পর্কিত সমস্ত মান, যেমন বানানের বিভিন্ন রূপ যা GeoIP দ্বারা ফেরত দেওয়া হতে পারে এবং ট্যাগের মান হিসাবে সংরক্ষিত হতে পারে) এবং কাছাকাছি কয়েকটি এলাকা।

<Aside type="tip">
API এর মাধ্যমে একটি [সেগমেন্ট তৈরি করার](/bn/developer/api-reference/segmentation-filters-api/) আগে, [/getTagStats](/bn/developer/api-reference/statistics-api/events-and-tags-statistics/#gettagstats) অনুরোধের মাধ্যমে আপনার ব্যবহারকারীদের ডিভাইসে থাকা মানগুলো পরীক্ষা করে নিন।
</Aside>