ইউনিটি SDK বেসিক ইন্টিগ্রেশন গাইড
এই গাইডটি আপনাকে আপনার অ্যাপ্লিকেশনে Pushwoosh ইউনিটি SDK ইন্টিগ্রেট করার প্রক্রিয়া দেখাবে।
পূর্বশর্ত
Anchor link toইন্টিগ্রেশন ধাপ
Anchor link to১. Pushwoosh ইউনিটি 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 রিলিজ থেকে Pushwoosh.unitypackage ডাউনলোড করুন এবং Assets > Import Package > Custom Package-এর মাধ্যমে ইম্পোর্ট করুন।
২. এক্সটার্নাল ডিপেন্ডেন্সি ম্যানেজার ইনস্টল করুন
Anchor link toনেটিভ Android ডিপেন্ডেন্সি সমাধান করার জন্য SDK-এর 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"৩. 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 ওয়ার্কস্পেস বিল্ড করে সেগুলো কোনো পরিবর্তন ছাড়াই কাজ করে।
৪. 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 অ্যাপ্লিকেশন কোড দিয়ে।XXXXXXXXXXXX-কে আপনার Firebase প্রজেক্ট নম্বর দিয়ে (শুধুমাত্র Android)।
৫. iOS নেটিভ সেটআপ
Anchor link to৫.১ ক্যাপাবিলিটিজ
Anchor link toইউনিটি থেকে iOS প্রজেক্ট তৈরি করার পর, জেনারেট করা Xcode প্রজেক্টটি খুলুন এবং Signing & Capabilities-এ নিম্নলিখিত ক্যাপাবিলিটিজ যোগ করুন:
- পুশ নোটিফিকেশন
- ব্যাকগ্রাউন্ড মোড এবং রিমোট নোটিফিকেশন চেক করা
টাইম সেনসিটিভ নোটিফিকেশন (iOS 15+)-এর জন্য, টাইম সেনসিটিভ নোটিফিকেশন ক্যাপাবিলিটিও যোগ করুন।
৫.২ Info.plist
Anchor link toআপনার Info.plist-এ Pushwoosh ডিভাইস API টোকেন যোগ করুন:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>৫.৩ মেসেজ ডেলিভারি ট্র্যাকিং
Anchor link toআপনার Xcode প্রজেক্টে একটি নোটিফিকেশন সার্ভিস এক্সটেনশন টার্গেট যোগ করুন। iOS-এ সঠিক ডেলিভারি ট্র্যাকিং এবং রিচ মিডিয়ার জন্য এটি প্রয়োজন।
এক্সটেনশন টার্গেট যোগ করতে নেটিভ গাইড অনুসরণ করুন।
৬. Android নেটিভ সেটআপ
Anchor link to৬.১ Firebase কনফিগারেশন ফাইল যোগ করুন
Anchor link toআপনার ইউনিটি প্রজেক্টের Assets ডিরেক্টরিতে google-services.json ফাইলটি রাখুন।
৬.২ Pushwoosh মেটাডেটা যোগ করুন
Anchor link toআপনার Assets/Plugins/Android/AndroidManifest.xml-এর <application> ট্যাগের ভিতরে Pushwoosh ডিভাইস API টোকেন যোগ করুন:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />৭. প্রজেক্টটি চালান
Anchor link to- আপনার টার্গেট প্ল্যাটফর্মে প্রজেক্টটি তৈরি করুন এবং চালান।
- অনুরোধ করা হলে পুশ নোটিফিকেশনের জন্য অনুমতি দিন।
- Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান।
বর্ধিত ইন্টিগ্রেশন
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ব্যবহারকারীদের শনাক্ত করে এবং তাদের বৈশিষ্ট্য সেট করে পুশ নোটিফিকেশন ব্যক্তিগতকরণ করুন:
// Set user ID for cross-device trackingPushwoosh.Instance.SetUserId("user-123");
// Set user emailPushwoosh.Instance.SetEmail("user@example.com");
// Set user with both ID and emailPushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Set preferred languagePushwoosh.Instance.SetLanguage("en");ট্যাগ
Anchor link toট্যাগ হলো ডিভাইসে নির্ধারিত কী-ভ্যালু পেয়ার, যা ব্যবহারকারী বিভাজন এবং লক্ষ্যযুক্ত মেসেজিং সক্ষম করে:
// String tagPushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Integer tagPushwoosh.Instance.SetIntTag("purchase_count", 5);
// List tagPushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Get all tagsPushwoosh.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ব্যবহারকারীর আচরণ বিশ্লেষণ করতে এবং স্বয়ংক্রিয় বার্তা ট্রিগার করতে ব্যবহারকারীর কার্যকলাপ ট্র্যাক করুন:
// Track a login eventPushwoosh.Instance.PostEvent("login", new Dictionary<string, object> { { "username", "user-123" }, { "login_type", "email" }});
// Track a purchase eventPushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> { { "product_id", "SKU-001" }, { "price", 29.99 }, { "currency", "USD" }});যোগাযোগের পছন্দ
Anchor link toব্যবহারকারীদের প্রোগ্রাম্যাটিকভাবে পুশ নোটিফিকেশনে অপ্ট-ইন বা অপ্ট-আউট করার অনুমতি দিন:
// Enable communicationPushwoosh.Instance.SetCommunicationEnabled(true);
// Disable communicationPushwoosh.Instance.SetCommunicationEnabled(false);
// Check current statebool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();ব্যাজ ম্যানেজমেন্ট
Anchor link toসমর্থিত প্ল্যাটফর্মে অ্যাপ ব্যাজ নম্বর নিয়ন্ত্রণ করুন:
// Set badge to a specific numberPushwoosh.Instance.SetBadgeNumber(3);
// Increment badgePushwoosh.Instance.AddBadgeNumber(1);
// Clear badgePushwoosh.Instance.SetBadgeNumber(0);সমস্যা সমাধান
Anchor link toকোনো পুশ ডেলিভার না হলে, আপনার প্ল্যাটফর্মের এরর কোডটি পাঠানোর ত্রুটি বিভাগে খুঁজুন এবং জেনে নিন এর অর্থ কী ও কীভাবে এটি ঠিক করবেন।
ইন্টিগ্রেশন প্রক্রিয়ার সময় কোনো সমস্যা হলে, সাপোর্ট এবং কমিউনিটি বিভাগে যান।