# ইভেন্ট কিভাবে সেট আপ করবেন

**ইভেন্ট** অ্যাপে ব্যবহারকারীদের দ্বারা সম্পাদিত বিভিন্ন কার্যকলাপ ট্র্যাক করতে ব্যবহৃত হয়। ইভেন্ট থেকে প্রাপ্ত ডেটা ঐতিহাসিকভাবে সংরক্ষণ করা হয়, যা ব্যবহারকারীর আচরণের একটি টাইমলাইন তৈরি করে। ইভেন্ট সম্পর্কে সমস্ত প্রাসঙ্গিক তথ্য অ্যাট্রিবিউট এবং তাদের মানের একটি সেট হিসাবে পাস করা যেতে পারে।

সঠিকভাবে সংগ্রহ করা হলে, এই ডেটা ব্যবহার করা যেতে পারে:

* আচরণ-ভিত্তিক বার্তা ট্রিগার করতে;
* ব্যবহারকারীর আচরণের উপর ভিত্তি করে একটি Customer Journey-এর মধ্যে ব্যবহারকারীর যোগাযোগের প্রবাহ পরিবর্তন করতে;
* অ্যাপে একটি নির্দিষ্ট কাজ সম্পাদনকারী ব্যবহারকারীদের সেগমেন্ট তৈরি করতে;
* ব্যবহারকারীর প্রবাহ, ব্যবহারের মেট্রিক্স এবং অন্যান্য পরিসংখ্যানগত ডেটা সম্পর্কে অন্তর্দৃষ্টি পেতে।

## ইভেন্টের প্রকারভেদ

Pushwoosh-এ দুই ধরনের ইভেন্ট রয়েছে:
- ডিফল্ট ইভেন্ট
- কাস্টম ইভেন্ট

### ডিফল্ট ইভেন্ট
ডিফল্ট ইভেন্ট হলো ব্যবহারকারীদের অ্যাপ বা ওয়েবসাইটে করা মৌলিক ইন্টারঅ্যাকশন, যা তাদের শিল্প বা কার্যকারিতা নির্বিশেষে ঘটে। এই মূল ব্যবহারকারী কার্যকলাপগুলি গ্রাহক যোগাযোগের মূল ভিত্তি তৈরি করে এবং গ্রাহক জীবনচক্রের যেকোনো পর্যায়ে যেকোনো পণ্য এবং গ্রাহকের জন্য ব্যবহার করা যেতে পারে।
ডিফল্ট ইভেন্টগুলি সর্বশেষ SDK সংস্করণগুলির সাথে বাক্সের বাইরে উপলব্ধ এবং [PW_InAppPurchase](/bn/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase) ছাড়া কোনো অতিরিক্ত সেটআপের প্রয়োজন হয় না।

[ডিফল্ট ইভেন্ট](/bn/product/audience-data-and-segmentation/events/default-events) সম্পর্কে আরও জানুন।

### কাস্টম ইভেন্ট
ডিফল্ট ইভেন্টের বিপরীতে, যা অনেক অ্যাপ এবং সেক্টরে সার্বজনীন, কাস্টম ইভেন্ট হলো সেই ইভেন্ট যা আপনি বিশেষভাবে আপনার অ্যাপের জন্য তৈরি করেন। এই ইভেন্টগুলি আপনার প্রয়োজনের জন্য অনন্য নির্দিষ্ট কার্যকলাপ ট্র্যাক করে, যেমন একটি ওয়ার্কআউট সম্পূর্ণ করা বা একটি সাবস্ক্রিপশন বাড়ানো, এবং ব্যবহারকারীরা আপনার নির্দিষ্ট বৈশিষ্ট্যগুলির সাথে কীভাবে ইন্টারঅ্যাক্ট করে তা বুঝতে আপনাকে সাহায্য করে।

কাস্টম ইভেন্টের জন্য আপনাকে আপনার দিকে সেগুলি ইমপ্লিমেন্ট করতে হবে।


## কাস্টম ইভেন্ট ইমপ্লিমেন্টেশন

### ১. ইভেন্ট তৈরি করুন এবং অ্যাট্রিবিউট সেট করুন

আপনার অ্যাপ দ্বারা প্রেরিত সমস্ত ইভেন্ট প্রথমে Pushwoosh-এ অ্যাট্রিবিউট এবং তাদের প্রকারের সেট সহ তৈরি করতে হবে; অন্যথায়, Pushwoosh সেগুলি চিনতে পারবে না।

আপনি আপনার মার্কেটিং টিমকে সরাসরি [Pushwoosh কন্ট্রোল প্যানেলে](/bn/product/audience-data-and-segmentation/events#1-create-events-in-pushwoosh-control-panel) ইভেন্ট তৈরি করতে বলতে পারেন অথবা [createEvent](/bn/developer/api-reference/events#createevent) API পদ্ধতি ব্যবহার করতে পারেন। এর মধ্যে ইভেন্টের নাম এবং আপনি যে কোনো সম্পর্কিত ডেটা ট্র্যাক করতে চান তা নির্দিষ্ট করা জড়িত।

### ২. /postEvent API কল করুন

যখন আপনার অ্যাপে এমন কোনো ইভেন্ট ঘটে যা আপনি ট্র্যাক করতে চান, তখন এই ইভেন্টটি Pushwoosh-এ পাঠাতে [`/postEvent`](/bn/developer/api-reference/user-centric-api#postevent) API কল করুন।

#### iOS

Pushwoosh-এ একটি ইভেন্ট পাঠাতে [`postEvent`](/bn/developer/api-reference/user-centric-api#postevent) কল করুন:

<Tabs>
<TabItem label="Swift">
```swift
PWInAppManager.shared().postEvent("eventName", withAttributes: nil)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:@{}];
```
</TabItem>
</Tabs>

ইভেন্ট সম্পর্কে বিস্তারিত তথ্য যোগ করতে (অ্যাট্রিবিউট দেখুন), অ্যাট্রিবিউট প্যারামিটারটি নিম্নরূপ ব্যবহার করুন:

<Tabs>
<TabItem label="Swift">
```swift
let attributes: [String : Any] = ["AttributedString" : "someString",
                                  "AttributeInt" : 42,
                                  "AttributeList" : [123, 456, "someString"],
                                  "AttributeBool" : true,
                                  "AttributeDate" : NSDate()]

PWInAppManager.shared().postEvent("eventName", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
NSDictionary *attributes = @{ 
  @"AttributeString" : @"someString",
  @"AttributeInt" : @(42),
  @"AttributeList" : @[ @(123), @(456), @"someString" ],
  @"AttributeBool" : @YES,
  @"AttributeDate" : [NSDate date] 
};

[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:attributes];
```
</TabItem>
</Tabs>

#### Android

যখন আপনার অ্যান্ড্রয়েড অ্যাপে কোনো ইভেন্ট ঘটে, তখন Pushwoosh-এ সেই ইভেন্টটি পাঠাতে নিম্নলিখিত নির্দেশাবলী ব্যবহার করুন।

Pushwoosh-এ একটি ইভেন্ট পাঠাতে [`postEvent`](/bn/developer/api-reference/user-centric-api#postevent) কল করুন:

```java
PushwooshInApp.getInstance().postEvent("eventName");
```

ইভেন্ট সম্পর্কে বিস্তারিত তথ্য যোগ করতে (অ্যাট্রিবিউট দেখুন), অ্যাট্রিবিউট প্যারামিটারটি নিম্নরূপ ব্যবহার করুন:

```java
TagsBundle attributes = new TagsBundle.Builder()
				.putInt("AttributeInt", 17)
				.putString("AttributeString", "str")
				.putDate("AttributeDate", new Date())
				.putBoolean("AttributeBool", true)
				.putList("AttributeList", Arrays.asList("item1", "item2", "item3"))
				.build();

PushwooshInApp.getInstance().postEvent("eventName", attributes);
```

<Aside type="note">
আপনি [**ইন-অ্যাপ জাভাস্ক্রিপ্ট**](/bn/developer/guides/messaging-channels/inapp-with-javascript/) থেকেও ইভেন্ট পাঠাতে পারেন।
</Aside>