सामग्री पर जाएं

यूनिटी SDK बेसिक इंटीग्रेशन गाइड

यह गाइड आपको अपने एप्लिकेशन में पुशवूश यूनिटी SDK को इंटीग्रेट करने की प्रक्रिया बताती है।

आवश्यक शर्तें

Anchor link to

इंटीग्रेशन के चरण

Anchor link to

1. पुशवूश यूनिटी SDK जोड़ें

Anchor link to

निम्नलिखित को अपनी Packages/manifest.json में जोड़ें:

Packages/manifest.json
{
"dependencies": {
"com.pushwoosh.unity.core": "6.3.0",
"com.pushwoosh.unity.android": "6.3.0",
"com.pushwoosh.unity.ios": "6.3.0"
},
"scopedRegistries": [
{
"name": "npmjs",
"url": "https://registry.npmjs.org",
"scopes": ["com.pushwoosh"]
}
]
}

केवल उन्हीं प्लेटफॉर्म पैकेजों को जोड़ें जिनकी आपको आवश्यकता है। उदाहरण के लिए, यदि आप केवल iOS को टारगेट करते हैं तो com.pushwoosh.unity.android को छोड़ दें।

2. एक्सटर्नल डिपेंडेंसी मैनेजर इंस्टॉल करें

Anchor link to

SDK के Android भाग को नेटिव Android डिपेंडेंसी को हल करने के लिए External Dependency Manager for Unity (EDM4U) की आवश्यकता होती है। यदि आप केवल iOS को टारगेट करते हैं, तो इस चरण को छोड़ दें।

निम्नलिखित स्कोप्ड रजिस्ट्री को अपनी Packages/manifest.json में जोड़ें:

{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": ["com.google.external-dependency-manager"]
}
]
}

फिर पैकेज को अपनी डिपेंडेंसी में जोड़ें:

"com.google.external-dependency-manager": "1.2.183"

3. चुनें कि iOS SDK कैसे जोड़ा जाए

Anchor link to

डिफ़ॉल्ट रूप से, iOS एक्सपोर्ट Swift Package Manager के साथ Swift पैकेज Pushwoosh-XCFramework से नेटिव SDK प्राप्त करता है। iOS के लिए आपको CocoaPods या EDM4U की आवश्यकता नहीं है, और आपको pod install चलाने की ज़रूरत नहीं है।

iOS SDK का स्रोत बदलने या वैकल्पिक मॉड्यूल जोड़ने के लिए, Unity Editor में Window > Pushwoosh SDK Setup खोलें:

  • iOS SDK from में, Swift Package Manager या CocoaPods चुनें।
  • Swift Package Manager के साथ, Modules (Swift Package Manager only) के अंतर्गत, वे वैकल्पिक मॉड्यूल चुनें जिनका आपका ऐप उपयोग करता है: PushwooshLiveActivities, PushwooshInboxKit, PushwooshInApp, PushwooshVoIP, PushwooshForegroundPush, PushwooshKeychain, PushwooshGRPC, PushwooshGeozones। मॉड्यूल ऐप टारगेट से लिंक किए जाते हैं। अपने स्वयं के ऐप एक्सटेंशन में किसी मॉड्यूल का उपयोग करने के लिए, उसे Xcode में एक्सटेंशन टारगेट में जोड़ें। CocoaPods के साथ, एक्सपोर्ट इन मॉड्यूल के बिना होता है।

जब इनमें से कोई भी स्थिति लागू होती है, तो एक्सपोर्ट CocoaPods पर वापस चला जाता है, और Unity कंसोल इसका कारण बताता है:

  • Window > Pushwoosh SDK Setup में CocoaPods चुना गया है।
  • प्रोजेक्ट में पहले से एक PushwooshXCFramework पॉड है, EDM4U द्वारा पढ़ी जाने वाली *Dependencies.xml फ़ाइल में या Podfile में। Swift Package Manager पर स्विच करने के लिए, पॉड हटाएं। Geozones के लिए, PushwooshXCFramework/Geozones पॉड हटाएं और Window > Pushwoosh SDK Setup में PushwooshGeozones चुनें।
  • Unity संस्करण 2021.3.15 से पहले का है।
  • Target minimum iOS Version 15.0 से कम है।

CocoaPods के साथ, EDM4U की आवश्यकता नहीं है। SDK एक्सपोर्ट के बाद pod install चलाता है और Podfile स्वयं जेनरेट करता है, जब तक कि EDM4U इंस्टॉल न हो और उसके बजाय Podfile न लिखे। यदि pod install विफल होता है, तो Unity कंसोल त्रुटि दिखाता है। एक्सपोर्ट किए गए Xcode प्रोजेक्ट फ़ोल्डर में pod install चलाएं।

यदि आपका बिल्ड एनवायरनमेंट github.com तक नहीं पहुंच सकता, तो Xcode Swift पैकेज को हल नहीं कर सकता। ऐसे बिल्ड के लिए Window > Pushwoosh SDK Setup में CocoaPods चुनें।

Swift Package Manager एक्सपोर्ट Unity-iPhone.xcworkspace को बनाए रखता है, इसलिए वर्कस्पेस को बिल्ड करने वाली बिल्ड स्क्रिप्ट और CI बिना किसी बदलाव के काम करते हैं।

4. SDK को इनिशियलाइज़ करें

Anchor link to

एक PushNotificator.cs स्क्रिप्ट बनाएँ और इसे सीन में किसी भी GameObject से अटैच करें:

PushNotificator.cs
using UnityEngine;
using System.Collections.Generic;
public class PushNotificator : MonoBehaviour
{
void Start()
{
Pushwoosh.ApplicationCode = "XXXXX-XXXXX";
Pushwoosh.FcmProjectNumber = "XXXXXXXXXXXX";
Pushwoosh.Instance.OnRegisteredForPushNotifications += (token) => {
Debug.Log("Push token: " + token);
};
Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += (error) => {
Debug.Log("Registration failed: " + error);
};
Pushwoosh.Instance.RegisterForPushNotifications();
}
}

बदलें:

  • XXXXX-XXXXX को अपने Pushwoosh Application Code से।
  • XXXXXXXXXXXX को अपने फायरबेस प्रोजेक्ट नंबर से (केवल एंड्रॉइड)।

5. iOS नेटिव सेटअप

Anchor link to

5.1 क्षमताएँ (Capabilities)

Anchor link to

यूनिटी से iOS प्रोजेक्ट बनाने के बाद, जेनरेट किए गए Xcode प्रोजेक्ट को खोलें और Signing & Capabilities में निम्नलिखित क्षमताएँ जोड़ें:

  • Push Notifications
  • Background Modes जिसमें Remote notifications चेक किया गया हो

टाइम सेंसिटिव नोटिफिकेशन (iOS 15+) के लिए, Time Sensitive Notifications क्षमता भी जोड़ें।

5.2 Info.plist

Anchor link to

Pushwoosh Device API Token को अपनी Info.plist में जोड़ें:

Info.plist
<key>Pushwoosh_API_TOKEN</key>
<string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>

5.3 संदेश डिलीवरी ट्रैकिंग

Anchor link to

अपने Xcode प्रोजेक्ट में एक नोटिफिकेशन सर्विस एक्सटेंशन टारगेट जोड़ें। यह iOS पर सटीक डिलीवरी ट्रैकिंग और रिच मीडिया के लिए आवश्यक है।

एक्सटेंशन टारगेट जोड़ने के लिए नेटिव गाइड का पालन करें।

6. एंड्रॉइड नेटिव सेटअप

Anchor link to

6.1 फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें

Anchor link to

google-services.json फ़ाइल को अपने यूनिटी प्रोजेक्ट की Assets डायरेक्टरी में रखें।

6.2 पुशवूश मेटाडेटा जोड़ें

Anchor link to

Pushwoosh Device API Token को अपनी Assets/Plugins/Android/AndroidManifest.xml में <application> टैग के अंदर जोड़ें:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

7. प्रोजेक्ट चलाएँ

Anchor link to
  1. प्रोजेक्ट को अपने टारगेट प्लेटफॉर्म पर बनाएँ और चलाएँ।
  2. संकेत मिलने पर पुश नोटिफिकेशन के लिए अनुमति दें।
  3. पुशवूश कंट्रोल पैनल पर जाएँ और एक पुश नोटिफिकेशन भेजें।

विस्तारित इंटीग्रेशन

Anchor link to

इस स्तर पर, आप पुश नोटिफिकेशन भेज और प्राप्त कर सकते हैं। नीचे दिए गए सेक्शन कोर SDK कार्यक्षमता को कवर करते हैं।

पुश नोटिफिकेशन इवेंट लिसनर्स

Anchor link to

SDK पुश नोटिफिकेशन को संभालने के लिए दो इवेंट लिसनर प्रदान करता है:

  • OnPushNotificationsReceived — जब कोई पुश नोटिफिकेशन आता है तो ट्रिगर होता है
  • OnPushNotificationsOpened — जब कोई यूज़र किसी नोटिफिकेशन पर टैप करता है तो ट्रिगर होता है

SDK इनिशियलाइज़ेशन के दौरान इन लिसनर्स को सेट करें:

PushNotificator.cs
void Start()
{
Pushwoosh.ApplicationCode = "XXXXX-XXXXX";
Pushwoosh.FcmProjectNumber = "XXXXXXXXXXXX";
Pushwoosh.Instance.OnPushNotificationsReceived += (payload) => {
Debug.Log("Push received: " + payload);
};
Pushwoosh.Instance.OnPushNotificationsOpened += (payload) => {
Debug.Log("Push opened: " + payload);
};
Pushwoosh.Instance.RegisterForPushNotifications();
}

यूज़र कॉन्फ़िगरेशन

Anchor link to

यूज़र्स की पहचान करके और उनके गुणों को सेट करके पुश नोटिफिकेशन को व्यक्तिगत बनाएँ:

// क्रॉस-डिवाइस ट्रैकिंग के लिए यूज़र आईडी सेट करें
Pushwoosh.Instance.SetUserId("user-123");
// यूज़र ईमेल सेट करें
Pushwoosh.Instance.SetEmail("user@example.com");
// आईडी और ईमेल दोनों के साथ यूज़र सेट करें
Pushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// पसंदीदा भाषा सेट करें
Pushwoosh.Instance.SetLanguage("en");

टैग्स

Anchor link to

टैग्स डिवाइसों को असाइन किए गए की-वैल्यू पेयर होते हैं, जो यूज़र सेगमेंटेशन और लक्षित मैसेजिंग को सक्षम करते हैं:

// स्ट्रिंग टैग
Pushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// इंटीजर टैग
Pushwoosh.Instance.SetIntTag("purchase_count", 5);
// लिस्ट टैग
Pushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// सभी टैग्स प्राप्त करें
Pushwoosh.Instance.GetTags((tags, error) => {
if (error != null) {
Debug.Log("Error: " + error.Message);
return;
}
foreach (var tag in tags) {
Debug.Log(tag.Key + ": " + tag.Value);
}
});

इवेंट्स

Anchor link to

व्यवहार का विश्लेषण करने और स्वचालित संदेशों को ट्रिगर करने के लिए यूज़र के कार्यों को ट्रैक करें:

// एक लॉगिन इवेंट ट्रैक करें
Pushwoosh.Instance.PostEvent("login", new Dictionary<string, object> {
{ "username", "user-123" },
{ "login_type", "email" }
});
// एक खरीद इवेंट ट्रैक करें
Pushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> {
{ "product_id", "SKU-001" },
{ "price", 29.99 },
{ "currency", "USD" }
});

कम्युनिकेशन प्रेफरेंसेज

Anchor link to

यूज़र्स को प्रोग्रामेटिक रूप से पुश नोटिफिकेशन के लिए ऑप्ट-इन या ऑप्ट-आउट करने की अनुमति दें:

// कम्युनिकेशन सक्षम करें
Pushwoosh.Instance.SetCommunicationEnabled(true);
// कम्युनिकेशन अक्षम करें
Pushwoosh.Instance.SetCommunicationEnabled(false);
// वर्तमान स्थिति जांचें
bool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();

बैज मैनेजमेंट

Anchor link to

समर्थित प्लेटफॉर्म पर ऐप बैज नंबर को नियंत्रित करें:

// बैज को एक विशिष्ट संख्या पर सेट करें
Pushwoosh.Instance.SetBadgeNumber(3);
// बैज बढ़ाएँ
Pushwoosh.Instance.AddBadgeNumber(1);
// बैज साफ़ करें
Pushwoosh.Instance.SetBadgeNumber(0);

समस्या निवारण

Anchor link to

यदि कोई पुश डिलीवर नहीं होता है, तो अपने प्लेटफ़ॉर्म का त्रुटि कोड भेजने की त्रुटियाँ में खोजें और जानें कि उसका क्या अर्थ है और उसे कैसे ठीक करें।

यदि आपको इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है, तो समर्थन और समुदाय सेक्शन देखें।