यूनिटी SDK बेसिक इंटीग्रेशन गाइड
यह गाइड आपको अपने एप्लिकेशन में पुशवूश यूनिटी SDK को इंटीग्रेट करने की प्रक्रिया बताती है।
आवश्यक शर्तें
Anchor link toइंटीग्रेशन के चरण
Anchor link to1. पुशवूश यूनिटी SDK जोड़ें
Anchor link toनिम्नलिखित को अपनी 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 को छोड़ दें।
यूनिटी में, Window > Package Manager > + > Add package from git URL पर जाएँ और निम्नलिखित URL एक-एक करके जोड़ें:
https://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.corehttps://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.androidhttps://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.iosGitHub Releases से Pushwoosh.unitypackage डाउनलोड करें और Assets > Import Package > Custom Package के माध्यम से इम्पोर्ट करें।
2. एक्सटर्नल डिपेंडेंसी मैनेजर इंस्टॉल करें
Anchor link toSDK के 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 से अटैच करें:
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 to5.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 toPushwoosh Device API Token को अपनी Info.plist में जोड़ें:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>5.3 संदेश डिलीवरी ट्रैकिंग
Anchor link toअपने Xcode प्रोजेक्ट में एक नोटिफिकेशन सर्विस एक्सटेंशन टारगेट जोड़ें। यह iOS पर सटीक डिलीवरी ट्रैकिंग और रिच मीडिया के लिए आवश्यक है।
एक्सटेंशन टारगेट जोड़ने के लिए नेटिव गाइड का पालन करें।
6. एंड्रॉइड नेटिव सेटअप
Anchor link to6.1 फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
Anchor link togoogle-services.json फ़ाइल को अपने यूनिटी प्रोजेक्ट की Assets डायरेक्टरी में रखें।
6.2 पुशवूश मेटाडेटा जोड़ें
Anchor link toPushwoosh Device API Token को अपनी Assets/Plugins/Android/AndroidManifest.xml में <application> टैग के अंदर जोड़ें:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />7. प्रोजेक्ट चलाएँ
Anchor link to- प्रोजेक्ट को अपने टारगेट प्लेटफॉर्म पर बनाएँ और चलाएँ।
- संकेत मिलने पर पुश नोटिफिकेशन के लिए अनुमति दें।
- पुशवूश कंट्रोल पैनल पर जाएँ और एक पुश नोटिफिकेशन भेजें।
विस्तारित इंटीग्रेशन
Anchor link toइस स्तर पर, आप पुश नोटिफिकेशन भेज और प्राप्त कर सकते हैं। नीचे दिए गए सेक्शन कोर SDK कार्यक्षमता को कवर करते हैं।
पुश नोटिफिकेशन इवेंट लिसनर्स
Anchor link toSDK पुश नोटिफिकेशन को संभालने के लिए दो इवेंट लिसनर प्रदान करता है:
OnPushNotificationsReceived— जब कोई पुश नोटिफिकेशन आता है तो ट्रिगर होता हैOnPushNotificationsOpened— जब कोई यूज़र किसी नोटिफिकेशन पर टैप करता है तो ट्रिगर होता है
SDK इनिशियलाइज़ेशन के दौरान इन लिसनर्स को सेट करें:
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यदि कोई पुश डिलीवर नहीं होता है, तो अपने प्लेटफ़ॉर्म का त्रुटि कोड भेजने की त्रुटियाँ में खोजें और जानें कि उसका क्या अर्थ है और उसे कैसे ठीक करें।
यदि आपको इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है, तो समर्थन और समुदाय सेक्शन देखें।