# इवेंट्स कैसे सेट अप करें

**इवेंट्स** का उपयोग ऐप में उपयोगकर्ताओं द्वारा की गई विभिन्न कार्रवाइयों को ट्रैक करने के लिए किया जाता है। इवेंट्स से प्राप्त डेटा को ऐतिहासिक रूप से संग्रहीत किया जाता है, जिससे उपयोगकर्ता के व्यवहार की एक टाइमलाइन बनती है। इवेंट के बारे में सभी प्रासंगिक जानकारी को एट्रिब्यूट्स और उनके मानों के एक सेट के रूप में पास किया जा सकता है।

एक बार ठीक से एकत्र हो जाने पर, इस डेटा का उपयोग निम्न के लिए किया जा सकता है:

*   व्यवहार-आधारित संदेशों को ट्रिगर करना;
*   उपयोगकर्ता के व्यवहार के आधार पर Customer Journey के भीतर उपयोगकर्ता संचार प्रवाह को संशोधित करना;
*   ऐप में एक विशिष्ट कार्रवाई करने वाले उपयोगकर्ताओं के सेगमेंट बनाना;
*   उपयोगकर्ता प्रवाह, उपयोग मेट्रिक्स और अन्य सांख्यिकीय डेटा के बारे में जानकारी प्राप्त करना।

## इवेंट्स के प्रकार

Pushwoosh में दो प्रकार के इवेंट्स होते हैं:
- डिफ़ॉल्ट इवेंट्स
- कस्टम इवेंट्स

### डिफ़ॉल्ट इवेंट्स
डिफ़ॉल्ट इवेंट्स वे बुनियादी इंटरैक्शन हैं जो उपयोगकर्ता अपने उद्योग या कार्यक्षमता की परवाह किए बिना ऐप्स या वेबसाइटों में करते हैं। ये प्रमुख उपयोगकर्ता कार्रवाइयां ग्राहक संचार का मूल बनती हैं और ग्राहक जीवनचक्र के किसी भी चरण में किसी भी उत्पाद और ग्राहक के लिए इसका लाभ उठाया जा सकता है।
डिफ़ॉल्ट इवेंट्स नवीनतम SDK संस्करणों के साथ आउट-ऑफ-द-बॉक्स उपलब्ध हैं और [PW_InAppPurchase](/hi/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase) को छोड़कर, किसी अतिरिक्त सेटअप की आवश्यकता नहीं होती है।

[डिफ़ॉल्ट इवेंट्स](/hi/product/audience-data-and-segmentation/events/default-events) के बारे में और जानें

### कस्टम इवेंट्स
डिफ़ॉल्ट इवेंट्स के विपरीत, जो कई ऐप्स और क्षेत्रों में सार्वभौमिक हैं, कस्टम इवेंट्स वे इवेंट्स हैं जिन्हें आप विशेष रूप से अपने ऐप के लिए बनाते हैं। ये इवेंट्स आपकी आवश्यकताओं के लिए अद्वितीय विशिष्ट कार्रवाइयों को ट्रैक करते हैं, जैसे कि वर्कआउट पूरा करना या सदस्यता बढ़ाना, और आपको यह समझने में मदद करते हैं कि उपयोगकर्ता आपकी विशिष्ट सुविधाओं के साथ कैसे इंटरैक्ट करते हैं।

कस्टम इवेंट्स के लिए आपको उन्हें अपनी तरफ से लागू करने की आवश्यकता होती है।

## कस्टम इवेंट्स का कार्यान्वयन

### 1. इवेंट्स बनाएं और एट्रिब्यूट्स सेट करें

Pushwoosh पहले `postEvent` कॉल से एक इवेंट और उसके एट्रिब्यूट्स को स्वतः बना लेता है, जिसे वह एक ऐसे नाम के तहत पहचान नहीं पाता है, जो उसे प्राप्त मान से प्रत्येक एट्रिब्यूट के प्रकार का अनुमान लगाता है। यदि आपको उन प्रकारों पर नियंत्रण की आवश्यकता है, तो पहले इवेंट और उसके एट्रिब्यूट प्रकारों की घोषणा करें, बजाय इसके कि उन्हें अनुमान पर छोड़ दिया जाए। प्रकार के नियमों, एट्रिब्यूट की सीमा और इवेंट नामों का मिलान कैसे होता है, इसके लिए [स्वचालित रूप से बनाए गए इवेंट्स](/hi/product/audience-data-and-segmentation/events#events-created-automatically) देखें।

आप अपनी मार्केटिंग टीम से सीधे [Pushwoosh कंट्रोल पैनल](/hi/product/audience-data-and-segmentation/events#1-create-events-in-pushwoosh-control-panel) में इवेंट्स बनाने के लिए कह सकते हैं या [createEvent](/hi/developer/api-reference/events#createevent) API विधि का उपयोग कर सकते हैं। इसमें इवेंट का नाम और कोई भी संबंधित डेटा निर्दिष्ट करना शामिल है जिसे आप ट्रैक करना चाहते हैं।

### 2. /postEvent API को कॉल करें

जब आपके ऐप में कोई ऐसा इवेंट होता है जिसे आप ट्रैक करना चाहते हैं, तो इस इवेंट को Pushwoosh पर भेजने के लिए [`/postEvent`](/hi/developer/api-reference/user-centric-api#postevent) API को कॉल करें।

#### iOS

Pushwoosh पर एक इवेंट भेजने के लिए [`postEvent`](/hi/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

जब आपके Android ऐप में कोई इवेंट होता है, तो इस इवेंट को Pushwoosh पर भेजने के लिए निम्नलिखित निर्देशों का उपयोग करें।

Pushwoosh पर एक इवेंट भेजने के लिए [`postEvent`](/hi/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">
आप [**इन-ऐप जावास्क्रिप्ट**](/hi/developer/guides/messaging-channels/inapp-with-javascript/) से भी इवेंट्स भेज सकते हैं।
</Aside>