पुश सूचनाएँ ऐप इंस्टॉल करने के बाद उपयोगकर्ता के साथ बातचीत करने के सबसे प्रभावी तरीकों में से एक हैं। वे नए संदेश, छूट, सामग्री अपडेट के बारे में सूचित करने या छोड़ी गई कार्ट की याद दिलाने की अनुमति देती हैं। पुश सूचनाएँ (push notifications) क्लाउड सेवाओं के माध्यम से काम करती हैं: Android पर Firebase Cloud Messaging (FCM) और iOS पर Apple Push Notification Service (APNS)। इस लेख में हम सूचनाओं की आर्किटेक्चर, उनके प्रकार और दोनों प्लेटफार्मों के लिए सेटअप प्रक्रिया का विश्लेषण करेंगे। अधिक जानकारी के लिए — आधिकारिक FCM दस्तावेज़ीकरण देखें।
मुख्य बिंदु
पुश सूचना एक संदेश है जो सर्वर ऐप से अनुरोध के बिना मोबाइल डिवाइस पर भेजता है। संदेश क्लाउड सेवा (FCM या APNS) से होकर गुजरता है, जो ऐप बंद होने पर भी इसे डिवाइस पर पहुँचाता है। सूचनाएँ दो प्रकार की होती हैं: डिस्प्ले सूचनाएँ (उपयोगकर्ता को दिखाई जाती हैं) और डेटा सूचनाएँ (पृष्ठभूमि प्रसंस्करण के लिए डेटा संचारित करती हैं)।
पुश सूचना आर्किटेक्चर में तीन घटक शामिल हैं: (1) ऐप सर्वर — FCM/APNS को अनुरोध भेजता है; (2) क्लाउड सेवा — सूचना को रूट करती है; (3) क्लाइंट ऐप — सूचना प्राप्त करता है और संसाधित करता है। सर्वर को डिवाइस का डिवाइस टोकन पता होना चाहिए ताकि वह विशेष रूप से उसे सूचना भेज सके। सामूहिक प्रेषण के लिए Topic Subscription का उपयोग किया जाता है — विषयगत चैनलों (समाचार, ऑफ़र, मौसम) पर डिवाइसों की सदस्यता।
प्रत्येक डिवाइस पर, सूचनाएँ ऑपरेटिंग सिस्टम द्वारा संसाधित की जाती हैं: Android — NotificationManager और NotificationChannel के माध्यम से, iOS — UNUserNotificationCenter के माध्यम से। उपयोगकर्ता प्रत्येक चैनल के लिए सूचना व्यवहार कॉन्फ़िगर कर सकता है: ध्वनि, बैनर, लॉक स्क्रीन पर दिखाना या पूरी तरह से बंद करना। चैनलों का उचित कॉन्फ़िगरेशन सहभागिता बढ़ाता है और अनसब्सक्राइब दरों को कम करता है।
IT Sectr में, हम शुरू से ही प्लेटफ़ॉर्म-विशिष्ट सुविधाओं को ध्यान में रखते हुए पुश सूचना प्रणाली डिज़ाइन करते हैं। मुख्य निर्णय: FCM और डायरेक्ट APNS के बीच चयन, पेलोड प्रारूप, भेजने की आवृत्ति और सदस्यता तंत्र। यह उन स्थितियों से बचने में मदद करता है जहाँ सूचनाएँ नहीं पहुँचती हैं या सिस्टम द्वारा ब्लॉक कर दी जाती हैं।
Firebase Cloud Messaging (FCM) सूचनाएँ पहुँचाने के लिए Google की क्रॉस-प्लेटफ़ॉर्म सेवा है। FCM Android, iOS, Web और Flutter को सपोर्ट करता है। iOS पर, FCM APNS के माध्यम से काम करता है: FCM APNS को अनुरोध भेजता है, जो डिवाइस पर सूचना पहुँचाता है। FCM के लाभ: दोनों प्लेटफार्मों के लिए एकल API, अंतर्निहित विश्लेषण, A/B परीक्षण, विषय और दर्शक खंड।
Apple Push Notification Service (APNS) Apple की मूल सेवा है। यह केवल Apple डिवाइसों (iOS, macOS, watchOS, tvOS) पर काम करती है। इसके लिए TLS प्रमाणपत्र या टोकन (JWT) के माध्यम से प्रत्यक्ष प्राधिकरण की आवश्यकता होती है। APNS प्रदान करता है न्यूनतम डिलीवरी विलंबता और iOS सुविधाओं के साथ सीधा एकीकरण: PushKit, Notification Service Extension और क्रिटिकल अलर्ट।
FCM और APNS के बीच चयन प्रोजेक्ट आर्किटेक्चर पर निर्भर करता है। यदि ऐप केवल iOS के लिए है — APNS अधिक नियंत्रण देता है। यदि क्रॉस-प्लेटफ़ॉर्म है — FCM एकल API के साथ अधिक सुविधाजनक है। कई प्रोजेक्ट FCM को मुख्य सेवा के रूप में उपयोग करते हैं और iOS पर VoIP के लिए अतिरिक्त रूप से PushKit कॉन्फ़िगर करते हैं। हाइब्रिड दृष्टिकोण दोनों प्रणालियों से सर्वश्रेष्ठ प्राप्त करने की अनुमति देता है।
| विशेषता | FCM | APNS |
|---|---|---|
| प्लेटफ़ॉर्म | Android, iOS, Web, Flutter | iOS, macOS, watchOS, tvOS |
| प्राधिकरण | सर्वर कुंजी (Firebase Console) | TLS प्रमाणपत्र या JWT टोकन |
| अधिकतम पेलोड | 4 KB (data), 2 KB (notification) | 4 KB |
| विषय | अंतर्निहित (Topic Messaging) | नहीं (सर्वर-साइड पर कार्यान्वित) |
| साइलेंट पुश | समर्थित | समर्थित (content-available) |
| PushKit | नहीं | हाँ (VoIP, लाइव गतिविधियाँ) |
| विश्लेषण | Firebase Analytics | अंतर्निहित नहीं |
| बंद डिवाइस पर डिलीवरी | सीमित (निर्माता पर निर्भर) | हाँ, PushKit के माध्यम से |
समृद्ध सूचना एक ऐसी सूचना है जिसमें न केवल टेक्स्ट बल्कि मीडिया सामग्री भी शामिल होती है: चित्र, वीडियो, ऑडियो और क्रिया बटन। Android पर इसे NotificationCompat स्टाइल के माध्यम से कार्यान्वित किया जाता है: BigPictureStyle (बड़ी छवि), BigTextStyle (संक्षिप्त/विस्तारित पाठ), InboxStyle (संदेश सूची), MediaStyle (प्लेबैक नियंत्रण)। iOS पर Notification Content Extension का उपयोग किया जाता है — विस्तारित सूचना के लिए कस्टम UI वाला एक अलग टार्गेट।
साइलेंट पुश (iOS पर content-available) एक ऐसी सूचना है जो उपयोगकर्ता को दिखाए बिना पहुँचाई जाती है। यह पृष्ठभूमि डेटा अपडेट के लिए होती है: सामग्री सिंक्रनाइज़ेशन, प्रीलोडिंग, विजेट अपडेट। iOS पर, साइलेंट पुश के लिए Background Modes → Remote notifications को सक्षम करना आवश्यक है। Android पर पृष्ठभूमि सूचनाओं को संभालने के लिए FirebaseMessagingService का उपयोग onMessageReceived के साथ किया जाता है। महत्वपूर्ण: iOS पर, साइलेंट पुश की आवृत्ति सीमाएँ होती हैं और यदि ऐप अग्रभूमि में नहीं है तो डिलीवरी की गारंटी नहीं देता।
इंटरैक्टिव सूचना उपयोगकर्ता को ऐप खोले बिना कार्य करने की अनुमति देती है। Android पर ये सूचना में बटन (Action) होते हैं: "उत्तर दें", "अनुमोदन करें", "अस्वीकार करें"। क्रियाएँ PendingIntent के माध्यम से संसाधित की जाती हैं, जो BroadcastReceiver या Service लॉन्च करता है। iOS पर, Notification Action UNNotificationAction और UNNotificationCategory के माध्यम से पंजीकृत की जाती है। बटन foreground (ऐप खोलना), background (पृष्ठभूमि में निष्पादित) या destructive (अपरिवर्तनीय कार्रवाई — हटाना, ब्लॉक करना) हो सकते हैं।
Notification Content Extension (iOS) — लंबे प्रेस या 3D टच पर विस्तारित सूचना सामग्री प्रदर्शित करने के लिए कस्टम व्यू कंट्रोलर। Notification Service Extension (iOS) — प्रदर्शन से पहले सूचना सामग्री को संशोधित करने के लिए मिडलवेयर: E2E संदेशों को डिक्रिप्ट करना, चित्र लोड करना, गोपनीय डेटा को अस्पष्ट करना। Android पर कोई सीधा एनालॉग नहीं है — सभी संशोधन FirebaseMessagingService में किए जाते हैं।
Android के लिए आवश्यक है: (1) प्रोजेक्ट में Firebase SDK जोड़ना (google-services.json); (2) सूचनाओं की प्रत्येक श्रेणी के लिए NotificationChannel (Android 8+) बनाना; (3) टोकन और आने वाले संदेश प्राप्त करने के लिए FirebaseMessagingService को लागू करना। Notification Channel अनिवार्य है — इसके बिना Android 8+ पर सूचनाएँ प्रदर्शित नहीं होंगी। चैनलों की प्राथमिकता होती है (IMPORTANCE_HIGH — ध्वनि + पॉपअप, IMPORTANCE_LOW — बिना ध्वनि) और उपयोगकर्ता सिस्टम सेटिंग्स में उन्हें कॉन्फ़िगर कर सकता है।
iOS के लिए आवश्यक है: (1) Xcode में Push Notifications क्षमता सक्षम करना; (2) Apple Developer Portal पर APNS कुंजी कॉन्फ़िगर करना; (3) UNUserNotificationCenter.requestAuthorization के माध्यम से प्राधिकरण का अनुरोध करना — यह एक सिस्टम डायलॉग है जो एक बार दिखाया जाता है। उपयोगकर्ता की प्रतिक्रिया महत्वपूर्ण है: यदि अनुमति नहीं दी गई, तो सूचनाएँ वितरित नहीं होंगी। सिस्टम डायलॉग दिखाने से पहले उपयोगकर्ता को समझाने की सिफारिश की जाती है कि सूचनाओं की आवश्यकता क्यों है (pre-permission prompt) ।
डिवाइस टोकन (iOS) और रजिस्ट्रेशन टोकन (Android) पुश सूचनाओं के लिए अद्वितीय डिवाइस पहचानकर्ता हैं। टोकन पहले ऐप लॉन्च पर जनरेट होता है और बदल सकता है: पुनर्स्थापना, डेटा साफ़ करने, गोपनीयता सेटिंग्स रीसेट करने पर। सर्वर को नियमित रूप से टोकन अपडेट करने चाहिए। Firebase प्रदान करता है onNewToken के माध्यम से टोकन प्रबंधन के लिए सुविधाजनक API, साथ ही परीक्षण सूचना भेजने के लिए पैनल (Firebase Console → Cloud Messaging)।
Topic Subscription FCM के सबसे प्रभावी तंत्रों में से एक है। डिवाइस किसी विषय (जैसे "news", "promo_users_ios") की सदस्यता लेता है, और सर्वर टोकन की सूची संग्रहीत किए बिना विषय के अनुसार सूचनाएँ भेजता है। Firebase Topics प्रति विषय दस लाख सब्सक्राइबर तक और अभिव्यक्ति भाषा के माध्यम से सशर्त प्रेषण (Condition) का समर्थन करता है: "'news' in topics && ('US' in topics || 'UK' in topics)" ।
Notification Payload FCM/APNS के माध्यम से भेजी जाने वाली JSON संरचना है। FCM के लिए: अलग notification (दृश्य भाग — शीर्षक, मुख्य भाग, चित्र) और data (ऐप के लिए कस्टम फ़ील्ड)। APNS के लिए: alert, badge, sound, category और content-available के साथ aps शब्दकोश। सही पेलोड संरचना महत्वपूर्ण है: यदि notification + data एक साथ आते हैं, तो पृष्ठभूमि में ऐप को data प्राप्त नहीं हो सकता है। Android के लिए केवल data संदेशों का उपयोग करने और FCM Console के माध्यम से दृश्य फ़ील्ड अलग से पास करने की सिफारिश की जाती है।
अक्सर पूछे जाने वाले प्रश्न
FCM (Firebase Cloud Messaging) Android और क्रॉस-प्लेटफ़ॉर्म सूचनाओं के लिए Google की सेवा है। APNS (Apple Push Notification Service) केवल iOS/macOS के लिए Apple की सेवा है। FCM सूचनाएँ पहुँचा सकता है iOS पर APNS के माध्यम से, प्रॉक्सी सर्वर के रूप में कार्य करते हुए।
रिच नोटिफिकेशन मीडिया सामग्री के साथ एक उन्नत सूचना है: चित्र, वीडियो, ऑडियो, क्रिया बटन। iOS पर इसे Notification Content Extension के माध्यम से कार्यान्वित किया जाता है; Android पर BigPictureStyle और InboxStyle के माध्यम से।
डिवाइस टोकन पुश सूचनाएँ भेजने के लिए अद्वितीय डिवाइस पहचानकर्ता है। Android पर यह FCM से रजिस्ट्रेशन टोकन है; iOS पर APNS से डिवाइस टोकन है। टोकन बदल सकता है ऐप पुनर्स्थापना या सेटिंग्स रीसेट करने पर, इसलिए इसे सर्वर पर अपडेट करने की आवश्यकता है।
साइलेंट पुश (मूक सूचना) एक ऐसी सूचना है जो उपयोगकर्ता को दिखाए बिना होती है। इसका उपयोग पृष्ठभूमि डेटा अपडेट के लिए किया जाता है: सामग्री सिंक्रनाइज़ेशन, विजेट अपडेट, प्रीफ़ेचिंग। iOS पर इसके लिए Background Modes → Remote notifications सक्षम करना आवश्यक है।
PushKit VoIP ऐप्स (कॉल, मैसेंजर) में उपयोग की जाने वाली उच्च-प्राथमिकता सूचनाएँ पहुँचाने के लिए Apple फ्रेमवर्क है। PushKit सूचना पहुँचाता है भले ही ऐप बंद हो और प्रसंस्करण के लिए ऐप लॉन्च की गारंटी देता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।