Push বিজ্ঞপ্তি হল সেই বার্তা যা সার্ভার মোবাইল ডিভাইসে পাঠায় একেবারে অ্যাপ বন্ধ থাকলেও। Google Firebase, 2024 অনুযায়ী, Push বিজ্ঞপ্তিগুলো বিশেষায়িত সেবা — Android এ FCM ও iOS এ APNS — এর মাধ্যমে প্রক্রিয়া করা হয়, যা এককালে লাখ ডিভাইসে রিয়াল-টাইম ডেলিভারি সমর্থন করে। এগুলো আধুনিক মোবাইল অ্যাপ্লিকেশনে ব্যবহারকারী অনুভূতির একটি অপরিহার্য অংশ হয়ে পড়েছে।
মূল কথা
Push বিজ্ঞপ্তি হল ছোট বার্তা যা অ্যাপ সার্ভার ব্যবহারকারীর ডিভাইসে স্পষ্ট অনুরোধ ছাড়াই পাঠায়। এগুলো ব্যানার, আইকন ব্যাজ বা শব্দ সংকেত আকারে দেখায়, ব্যবহারকারীর দৃষ্টি অ্যাপে আকৃষ্ট করে ও গুরুত্বপূর্ণ ঘটনা সম্পর্কে জানায়।
একটি Push বিজ্ঞপ্তিতে একটি শিরোনাম, বার্তার মূলকায়দা ও আইচিকাল্পিক ডেটা (payload) থাকে। SMS এর বিপরীতে, Push বিজ্ঞপ্তি ব্যবহারকারীর জন্য বিনামূল্য ও ক্লাউড সেবা অবকাঠামো — Android এর জন্য FCM ও iOS এর জন্য APNS — এর মাধ্যমে পাঠানো হয়। Push বিজ্ঞপ্তির মূল লক্ষ্য: অংশগ্রহণ বাড়ানো, ইভেন্ট সম্পর্কে জানানো ও ব্যবহারকারীকে অ্যাপে ফিরিয়ে আনা।
ব্যবহারের পরিসংখ্যান দেখায় যে সঠিকভাবে কনফিগার করা Push বিজ্ঞপ্তি অ্যাপ রিটেনশন 30–60% বাড়ায়। তবে, অত্যন্ত বিজ্ঞপ্তি ফ্রিকোয়েন্সি আনসাবস্ক্রাইবের কারণ হয় — 60% বেশি ব্যবহারকারী দিনে তিনবারের বেশি বিজ্ঞপ্তি পাঠালে সেগুলো বন্ধ করে দেয়।
একটি Push সিস্টেমে তিনটি উপাদান রয়েছে: অ্যাপ সার্ভার, প্লেটফর্ম সেবা (FCM/APNS) ও ডিভাইসে ক্লাইন্ট অ্যাপ্লিকেশন। সার্ভার প্লেটফর্ম সেবায় একটি অনুরোধ পাঠায়, যা অপারেটিং সিস্টেমের সাথে একটি স্থায়ী সংযোগের মাধ্যমে লক্ষ্য ডিভাইসে বিজ্ঞপ্তি পাথায়।
Push বিজ্ঞপ্তির ডেলিভারি প্রণালী ডিভাইস ও প্লেটফর্ম সেবার মধ্যে একটি স্থায়ী সংযোগের উপর ভিত্তি করে। অপারেটিং সিস্টেম একটি এনক্রিপ্টেড যোগাযোগ চ্যানেল বজায় রাখে যার মাধ্যমে সকল Push বার্তা যায়।
প্রথম লঞ্চে, অ্যাপ বিজ্ঞপ্তি পাঠানোর অনুমতি চায় ও FCM বা APNS থেকে একটি অনন্য ডিভাইস টোকেন পায়। এই টোকেনটি 4 KB পর্যন্ত লম্বা একটি স্ট্রিং যা অ্যাপ ইংস্টেন্সকে অনন্যভাবে চিহ্নিত করে। অ্যাপ পুনরায় ইনস্টল করা বা ডিভাইস ব্যাকআপ থেকে পুনর্দেথার কলে টোকেন বদলে যায়।
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
অ্যাপ সার্ভার FCM API বা APNS API এ একটি HTTP অনুরোধ পাঠায়, যাতে লক্ষ্য টোকেন, শিরোনাম, মূলকায়দা ও অতিরিক্ত ডেটা উল্লেখ করা থাকে। প্লেটফর্ম সেবা ডেলিভারি স্টেটাস সহ উত্তর দেয়: সফল, অবৈধ টোকেন (ডিভাইস অ্যাপ মুছে ফেলেছে) বা রেট-লিমিটেড (পাঠানোর ফ্রিকোংসি অতিক্রম করা হয়েছে)।
fetch("https://fcm.googleapis.com/fcm/send", {
method: "POST",
headers: {
"Authorization": "key=AIzaSy...",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "device_token_here",
notification: {
title: "নতুন বার্তা",
body: "আপনার একটি নতুন বিজ্ঞপ্তি আছে!"
}
})
})
FCM ও APNS এর মধ্যে পছন্দ লক্ষ্য প্লেটফর্মের উপর নির্ভর করে। FCM Android ও iOS সমর্থন করে, যখন APNS শুদ্ধমাত্র Apple ইকোসিস্টেম সমর্থন করে। ক্রাস-প্লেটফর্ম মোবাইল অ্যাপ ডেভেলপমেন্টের জন্য গুরুত্বপূর্ণ মূল পার্থক্যগুলো দেখা যাক।
FCM একটি Google সেবা যা Google Play Services এর উপর কাজ করে। এটি দুইটি ডেলিভারি পদ্ধতি সমর্থন করে: স্বচালিত প্রদর্শন সহ বিজ্ঞপ্তি ও ডেটা বিজ্ঞপ্তি যা অ্যাপ নিজেই প্রক্রিয়া করে। FCM বিনামূল্য ও পাঠানো বার্তার সংখ্যার কোনো সীমা নেই।
APNS হল Apple এর সেবা যা 10 MB পর্যন্তের মাল্টিমিডিয়া অটেচমেন্ট (ছবি, ভিডিয়ো, অডিয়ো) সমর্থন করে। APNS এর মাধ্যমে পাঠানোর জন্য TLS সার্টিফিকেট বা প্রমাণীকরণ কী প্রয়োজন। APNS একটি ডিভাইসে পাঠানোর ফ্রিকোংসি সীমিত করে — প্রতি মিনিট 150 এর বেশি বিজ্ঞপ্তি নয়, এর পর রেট লিমিটিং কার্যকর হয়।
| বৈশিষ্ট্য | FCM | APNS |
|---|---|---|
| প্লেটফর্ম | Android, iOS, Web | iOS, macOS, watchOS |
| প্রয়োজনীয়তা | Google Play Services | Apple Developer Program |
| মিডিয়া | 4 KB পর্যন্ত (data) | 10 MB পর্যন্ত (attachments) |
| অগ্রাধিকার | normal/high | immediate/power-saving |
| খরচ | বিনামূল্য | বিনামূল্য (অকাউন্ট প্রয়োজন) |
Push বিজ্ঞপ্তি প্রদর্শন পদ্ধতি ও উদ্দেশ্য অনুযায়ী শ্রেণীবদ্ধ করা হয়। ধরনগুলো বোঝা প্রতিটি ব্যবহারকারী মিথস্ক্রিয়া পরিদর্শনের জন্য সঠিক কৌশল বাছতে সাহায্য করে।
সবচেয়ে সাধারণ ধরন — একটি প্রদর্শিত বিজ্ঞপ্তি যাতে শিরোনাম ও মূলকায়দা থাকে। অপারেটিং সিস্টেম এটি স্বচালিতভাবে নিওটিফিকেশন শেড, লক স্ক্রিন ও ব্যানার আকারে দেখায়। ডেভেলপার সরাসরি কাজ (উত্তর দেওয়া, খুলুন, বাতিল করুন) এর জন্য শব্দ, কম্পন, আইকন ব্যাজ ও অ্যাকশন বটন কনফিগার করতে পারেন।
ডেটা বিজ্ঞপ্তিতে শুদ্ধমাত্র payload থাকে দৃশ্য প্রদর্শন ছাড়া। অ্যাপ এগুলো পর্দার প্রক্রিয়া করে: ডেটা সিংক করা, ক্যাচ আপডেট করা বা ডাউনলোড ট্রিগার করা। Android এ, ডেটা বিজ্ঞপ্তি নির্ভরভাবে পাথানো হয়; iOS এ, শুদ্ধমাত্র যখন অ্যাপ সক্রিয় থাকে বা background fetch এর মাধ্যমে।
আধুনিক মোবাইল অপারেটিং সিস্টেম রিচ ও মিডিয়া বিজ্ঞপ্তি ছবি, GIF, ভিডিয়ো ও অডিয়ো সহ সমর্থন করে। iOS এ, এটি UNNotificationAttachment এর মাধ্যমে বাস্তবায়িত করা হয়; Android এ, সিস্টেম শেডে বিজ্ঞপ্তির রূপ কাস্টমাইজ করার জন্য BigPictureStyle ও InboxStyle এর মাধ্যমে।
নিশ্বদ বিজ্ঞপ্তি ব্যবহারকারীকে দেখায় না ও পর্দার সিংক এর জন্য ব্যবহৃত হয়। iOS এ, অ্যাপ খোলার আগে ডেটা আপডেট করার মতো কাজের জন্য এর উচ্চ অগ্রাধিকার রয়েছে। Android এগুলোকে সর্বনিম্ন অগ্রাধিকার সহ ডেটা বিজ্ঞপ্তি হিসাবে ব্যবহার করে।
Push বিজ্ঞপ্তি সেটআপ এর জন্য অবকাঠামো, সার্ভার ও ক্লাইন্ট কোড স্তরে কাজ প্রয়োজন। একটি ক্রাস-প্লেটফর্ম মোবাইল প্রজেক্টের জন্য সাধারণ প্রক্রিয়া দেখা যাক।
Android এর জন্য, আপনাকে Firebase Console এ একটি প্রজেক্ট তৈরি করতে হবে, প্রজেক্টে google-services.json যোগ করতে হবে ও FirebaseMessagingService কনফিগার করতে হবে। ডিভাইস টোকেন FirebaseInstanceId বা FirebaseMessaging.getInstance().token এর মাধ্যমে প্রাপ্ত করা হয়, এর পর প্রথম লঞ্চে বা পরিবর্তনে API এর মাধ্যমে সার্ভারে পাঠানো হয়।
iOS এর জন্য, Apple Developer Program সাবস্ক্রিপশন, Developer Portal এ একটি Push সার্টিফিকেট বা APNS কী তৈরি ও Xcode এ Push Notifications ক্ষমতা সক্ষম করা প্রয়োজন। UIApplication.shared.registerForRemoteNotifications এর মাধ্যমে নিঊটিফিকেশন রজিস্ট্রেশন করা হয়, AppDelegate এ deviceToken প্রাপ্ত করা হয়।
import UIKit
import UserNotifications
@main
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data
) {
let token = deviceToken
.map { String.format("%02x", $0) }
.joined()
// আপনার সার্ভারে token পাঠান
}
}
সার্ভারের পক্ষে, Push বিজ্ঞপ্তি REST API বা Admin SDK এর মাধ্যমে পাঠানো হয়। FCM Firebase Admin SDK (Node.js, Java, Python, Go এর জন্য উপলব্ধ) ব্যবহার করে, যখন APNS pusher লাইব্রেরি (Java এর জন্য pushy, Node.js এর জন্য apn2) ব্যবহার করে। শেষ আপডেটের সময়স্থাপক সহ ডেটাবেসে টোকেন সংরক্ষণ করার পরামর্শ দেওয়া হয়।
Push বিজ্ঞপ্তি নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলোর মাধ্যমে গোপনীয় ডেটা প্রেরণ করা যেতে পারে। উভয় প্লেটফর্ম মৌলিক সুরক্ষা ব্যবস্থা প্রদান করে, কিন্তু ডেভেলপারকে সেগুলো সঠিকভাবে ব্যবহার করতে হবে।
একটি Push বিজ্ঞপ্তির payload এ ব্যবহারকারীদের ব্যক্তিগত ডেটা থাকতে পারে: নাম, লেনদেনের পরিমান, বার্তার লিঙ্ক। FCM/APNS ও ডিভাইসের মধ্যে যোগাযোগ চ্যানেল এনক্রিপ্টেড হলেও, তৃতীয় পক্ষের সফটওয়ার বিজ্ঞপ্তি ইন্টারসেপ্ট করলে অ্যাপ স্তরে ডেটা আটকানো যেতে পারে। সার্ভারে AES-256 ব্যবহার করে সংবেদনশীল payload এনক্রিপ্ট করার ও Keychain (iOS) বা EncryptedSharedPreferences (Android) এ সংরক্ষিত কী ব্যবহার করে ডিভাইসে ডিক্রিপ্ট করার পরামর্শ দেওয়া হয়।
ডিভাইস টোকেন একটি সাইড পরিচায়কারী যা ডিভাইস হ্যাক হলে বা ট্রাফিক আটকানো হলে আপোসতা হতে পারে। অ্যাপ সার্ভারের পাঠানোর আগে টোকেন যাচাই করা উচিত: ডেটাবেসের সাথে যঞাই করা, নিষ্ক্রিয় টোকেন ট্রেক করা ও বারংবার InvalidToken ত্রুটিতে সেগুলো মুছে ফেলা। FCM ও APNS অবৈধ টোকেনের জন্য InvalidRegistration স্টেটাস ফিরিয়ে দেয় — এটি উপেক্ষা করবেন না।
ফ্রিকোংসি নিয়ন্ত্রণ ছাড়া, Push বিজ্ঞপ্তি একটি স্প্যাম হাতিয়ার হয়ে উঠতে পারে যা ব্যবহারকারীদের বিরক্ত করে ও রিটেনশন কমায়। সার্ভারে সীমা নির্ধারণ করুন: প্রতি ঘণ্টায় 5 এর বেশি বিজ্ঞপ্তি নয় এক ব্যবহারকারীর জন্য ও 3 এর বেশি একটি বার্তা নয়। লেনদেনমূলক বিজ্ঞপ্তির (অর্ডার নিশ্চিতকরণ, পাসওয়ার্ড পরিবর্তন) জন্য, সীমা আরও বেশি হতে পারে — প্রতি ঘণ্টায় 10 পর্যন্ত, কারণ এগুলোতে অত্যন্ত গুরুত্বপূর্ণ তথ্য থাকে। API পাঠানোর স্তরে রেট লিমিটিং ব্যবহার করুন যাতে আক্রমণকারী আপনার সার্ভারের মাধ্যমে মাস বিজ্ঞপ্তি ট্রিগার করতে না পারে।
সাধারণ জিজ্ঞাসা
হ্যাঁ, কিন্তু Android এ APNS এর সাথে সরাসরি সংযোগ সমর্থিত নয় — Google Play Services ছাড়া ডিভাইসগুলো Huawei Mobile Services (HMS) ও নিজস্ব WebSocket সংযোগের মতো বিকল্প ব্যবহার করে। তবে, FCM এর বিনামূল্যতা ও নির্ভরযোগ্যতার কারণে এটি অধিকাংশ অ্যাপ্লিকেশনের জন্য মানক হিসেবে রয়েছে।
FCM ও APNS শেষ বিজ্ঞপ্তি নিজেদের সার্ভারে সংরক্ষণ করে ও সংযোগ পুনর্দেথার হলে ডেলিভার করে। প্রতিটি ডিভাইস প্রতিটি অ্যাপ থেকে শুদ্ধমাত্র শেষ বিজ্ঞপ্তি সংরক্ষণ করে, তাই দীর্ঘায় নেটওয়ার্ক অনুপস্থিতিতে মধ্যবর্তী বার্তাগুলো হারিয়ে যায়।
সবচেয়ে সাধারণ কারণ হল একটি মেয়াদ উৎথিত Push সার্টিফিকেট (1 বছরের জন্য বৈধ), একটি অবৈধ ডিভাইস টোকেন, সেটিংগে বন্ধ বিজ্ঞপ্তি বা লো পায়ার মোড চালু থাকা। Apple Developer Console এ সার্টিফিকেট যাচাই করুন ও নিশ্চিত করুন যে অ্যাপ UNUserNotificationCenter এর মাধ্যমে অনুমতি চায়।
Android এ, Intent এর মাধ্যমে খোলা ট্রেকিং সহ NotificationCompat.Builder এ PendingIntent ব্যবহার করুন। iOS এ, UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:) পদ্ধতি ব্যবহার করুন। FCM প্রতিটি পাঠানো বিজ্ঞপ্তির জন্য ডেলিভারি ও ওপেন রিপোর্ট প্রদান করে।
সামান্যমাত্র — Push বিজ্ঞপ্তি কোনও স্থায়ী সংযোগ ধরে রাখে না; OS সকল অ্যাপ্লিকেশনের জন্য একটি সিস্টেম চ্যানেল ব্যবহার করে, যা মোট শক্তি ব্যবহার হ্রাস করে। ঘন পাঠানো (প্রতি 5 মিনিট) ডিভাইসকে স্লিপ মোড থেকে জাগিয়ে আরও শক্তি খরচ করে। iOS এ নিশ্বদ বিজ্ঞপ্তি প্রাপ্ত ডেটা প্রক্রিয়া করার জন্য ব্যাকগ্রাউংড অ্যাপ অ্যাক্টিভেশনের কারণে আরও বেশি ব্যাটারি ব্যবহার করে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন