বিষয়বস্তুতে যান

ইউনিটি SDK বেসিক ইন্টিগ্রেশন গাইড

এই গাইডটি আপনাকে আপনার অ্যাপ্লিকেশনে Pushwoosh ইউনিটি SDK ইন্টিগ্রেট করার প্রক্রিয়া দেখাবে।

পূর্বশর্ত

Anchor link to

ইন্টিগ্রেশন ধাপ

Anchor link to

১. Pushwoosh ইউনিটি 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 বাদ দিন।

২. এক্সটার্নাল ডিপেন্ডেন্সি ম্যানেজার ইনস্টল করুন

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-এর সাথে সংযুক্ত করুন:

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 অ্যাপ্লিকেশন কোড দিয়ে।
  • 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 টোকেন যোগ করুন:

Info.plist
<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 টোকেন যোগ করুন:

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

৭. প্রজেক্টটি চালান

Anchor link to
  1. আপনার টার্গেট প্ল্যাটফর্মে প্রজেক্টটি তৈরি করুন এবং চালান।
  2. অনুরোধ করা হলে পুশ নোটিফিকেশনের জন্য অনুমতি দিন।
  3. Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান।

বর্ধিত ইন্টিগ্রেশন

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

ব্যবহারকারীদের শনাক্ত করে এবং তাদের বৈশিষ্ট্য সেট করে পুশ নোটিফিকেশন ব্যক্তিগতকরণ করুন:

// Set user ID for cross-device tracking
Pushwoosh.Instance.SetUserId("user-123");
// Set user email
Pushwoosh.Instance.SetEmail("user@example.com");
// Set user with both ID and email
Pushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Set preferred language
Pushwoosh.Instance.SetLanguage("en");

ট্যাগ

Anchor link to

ট্যাগ হলো ডিভাইসে নির্ধারিত কী-ভ্যালু পেয়ার, যা ব্যবহারকারী বিভাজন এবং লক্ষ্যযুক্ত মেসেজিং সক্ষম করে:

// String tag
Pushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Integer tag
Pushwoosh.Instance.SetIntTag("purchase_count", 5);
// List tag
Pushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Get all tags
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

ব্যবহারকারীর আচরণ বিশ্লেষণ করতে এবং স্বয়ংক্রিয় বার্তা ট্রিগার করতে ব্যবহারকারীর কার্যকলাপ ট্র্যাক করুন:

// Track a login event
Pushwoosh.Instance.PostEvent("login", new Dictionary<string, object> {
{ "username", "user-123" },
{ "login_type", "email" }
});
// Track a purchase event
Pushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> {
{ "product_id", "SKU-001" },
{ "price", 29.99 },
{ "currency", "USD" }
});

যোগাযোগের পছন্দ

Anchor link to

ব্যবহারকারীদের প্রোগ্রাম্যাটিকভাবে পুশ নোটিফিকেশনে অপ্ট-ইন বা অপ্ট-আউট করার অনুমতি দিন:

// Enable communication
Pushwoosh.Instance.SetCommunicationEnabled(true);
// Disable communication
Pushwoosh.Instance.SetCommunicationEnabled(false);
// Check current state
bool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();

ব্যাজ ম্যানেজমেন্ট

Anchor link to

সমর্থিত প্ল্যাটফর্মে অ্যাপ ব্যাজ নম্বর নিয়ন্ত্রণ করুন:

// Set badge to a specific number
Pushwoosh.Instance.SetBadgeNumber(3);
// Increment badge
Pushwoosh.Instance.AddBadgeNumber(1);
// Clear badge
Pushwoosh.Instance.SetBadgeNumber(0);

সমস্যা সমাধান

Anchor link to

কোনো পুশ ডেলিভার না হলে, আপনার প্ল্যাটফর্মের এরর কোডটি পাঠানোর ত্রুটি বিভাগে খুঁজুন এবং জেনে নিন এর অর্থ কী ও কীভাবে এটি ঠিক করবেন।

ইন্টিগ্রেশন প্রক্রিয়ার সময় কোনো সমস্যা হলে, সাপোর্ট এবং কমিউনিটি বিভাগে যান।