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 के माध्यम से।
आधुनिक मोबाइल OS रिच और मीडिया सूचनाओं का समर्थन करते हैं जिनमें छवियाँ, 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 (नोड.ujs, 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 पर, NotificationCompat.Builder में Intent के माध्यम से खोलने के ट्रैकिंग के साथ PendingIntent का उपयोग करें। iOS पर, UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:) विधि का उपयोग करें। FCM प्रत्येक भेजी गई सूचना के लिए डिलीवरी और ओपन रिपोर्ट प्रदान करता है।
न्यूनतम रूप में — Push सूचनाएँ स्थायी कनेक्शन नहीं रखतीं; OS सभी ऐप्लिकेशनों के लिए एक ही सिस्टम चैनल का उपयोग करता है, जो कुल बिजली खपत को कम करता है। बार-बार भेजना (हर 5 मिनट) डिवाइस को स्लीप मोड से जगाकर अधिक ऑर्जा खपत करता है। iOS पर साइलेंट सूचनाएँ प्राप्त डेटा को प्रोसेस करने के लिए बैकग्रउंड एप एक्टिवेशन के कारण अधिक बैटरी खपत करती हैं।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें