اپنی ایپ میں نوٹیفکیشنز کیسے شامل کریں: ان-ایپ، ای میل اور پش
ویب ایپ میں نوٹیفکیشنز شامل کرنے کے لیے ان-ایپ نوٹیفکیشنز سے شروع کریں: ایک نوٹیفکیشنز ٹیبل آپ کے ڈیٹا بیس میں اور ایک بیل آئیکن جو غیر پڑھی ہوئی چیزیں دکھائے۔ ای میل ان چیزوں کے لیے شامل کریں جن کا صارفین کو دور ہونے پر بھی علم ہونا چاہیے، ایک ای میل فراہم کنندہ کے ذریعے۔ ویب پش تب شامل کریں جب بروقت الرٹس واقعی اہم ہوں، کیونکہ اس کے لیے service worker، صارف کی اجازت اور آئی فون پر ایپ کو ہوم اسکرین پر محفوظ کرنا درکار ہوتا ہے۔ جو بھی چینل استعمال کریں، ہر نوٹیفکیشن سرور پر ایک ہی جگہ سے بنائیں اور صارفین کو چننے دیں کہ انہیں کیا موصول ہو۔
یہ گائیڈ چینلز کا موازنہ کرتی ہے، ایک سادہ آرکیٹیکچر دکھاتی ہے، اور AI ایپ بلڈر کے ساتھ استعمال ہونے والے پرامپٹس دیتی ہے۔
اہم چینلز کا موازنہ
| چینل | صارفین تک کب پہنچتا ہے | سیٹ اپ کی محنت | چلانے کی لاگت | کس کے لیے بہتر |
|---|---|---|---|---|
| ان-ایپ (بیل، ٹوسٹس) | جب وہ آپ کی ایپ استعمال کر رہے ہوں | کم | ڈیٹا بیس کے علاوہ کچھ نہیں | سرگرمی، ذکر، اسٹیٹس میں تبدیلیاں |
| ای میل | جب بھی وہ ای میل چیک کریں | درمیانی: فراہم کنندہ، ڈومین سیٹ اپ | فراہم کنندہ کی فی ای میل قیمت | رسیدیں، ڈائجسٹس، اہم کوئی بھی چیز |
| ویب پش | براؤزر یا انسٹال شدہ ویب ایپ پر، ایپ بند ہونے پر بھی | درمیانی سے زیادہ | عموماً بھیجنا مفت | وقت کے حساس الرٹس |
| SMS | تقریباً ہمیشہ | درمیانی؛ رضامندی کے قوانین لاگو ہوتے ہیں | فی پیغام فیس | اپائنٹمنٹ کی یاددہانی، فوری الرٹس |
| چیٹ ٹولز (Slack، Teams) | جب وہ کام پر ہوں | کم سے درمیانی | عموماً مفت | اندرونی ٹولز اور ٹیم کے الرٹس |
زیادہ تر ایپس کو ان-ایپ اور ای میل دونوں کی ضرورت ہوتی ہے۔ پش اور SMS تب مفید ہیں جب وقت واقعی اہم ہو، جیسے بکنگ کی یاددہانی یا آرڈر تیار ہونے کی اطلاع۔
نوٹیفکیشن سسٹم کیسے جڑتا ہے
اسے سادہ اور مرکزی رکھیں:
- کوئی واقعہ ہوتا ہے۔ کوئی تبصرہ پوسٹ ہوتا ہے، ادائیگی ناکام ہوتی ہے، یا بکنگ کل ہے۔
- آپ کا سرور ایک فنکشن کال کرتا ہے، جیسے
notify(user, type, data)۔ - وہ فنکشن صارف کی ترجیحات چیک کرتا ہے اور
notificationsٹیبل میں ایک قطار لکھتا ہے (بیل کے لیے)۔ - پھر وہ دوسرے چینلز پر بھیجتا ہے جو صارف نے اس قسم کے لیے آن کیے ہوں: ای میل آپ کے فراہم کنندہ کے ذریعے، پش Push API کے ذریعے۔
- فرنٹ اینڈ غیر پڑھے ہوئے نوٹیفکیشنز دکھاتا ہے اور کھولنے پر انہیں پڑھا ہوا نشان زد کرتا ہے۔
ایک ہی انٹری پوائنٹ کا مطلب ہے کہ آپ ڈھونڈے بغیر کوڈ میں کوئی نیا چینل شامل کر سکتے ہیں، متن بدل سکتے ہیں، یا ترجیحات کا احترام یقینی بنا سکتے ہیں۔
کیا محفوظ کریں
نوٹیفکیشنز ٹیبل میں عموماً یہ ہوتا ہے: صارف کا ID، قسم (مثلاً comment_reply)، ایک مختصر عنوان اور متن، متعلقہ صفحے کا لنک، بنانے کا وقت، اور پڑھنے کا وقت۔ ایک الگ ترجیحات کا ٹیبل ہر صارف کے لیے ہر قسم کے چینلز محفوظ کرتا ہے۔
نئے نوٹیفکیشنز کیسے دکھائیں
- صفحہ دیکھنے پر لوڈ کریں اور ہر 30 سے 60 سیکنڈ میں پولنگ کریں۔ سادہ اور قابلِ اعتماد۔
- WebSockets یا server-sent events کے ساتھ ریئل ٹائم اپڈیٹس فوری محسوس ہوتے ہیں، لیکن مزید حرکت پذیر حصے شامل کرتے ہیں۔ جب تک فوری اپڈیٹس ضروری نہ ہوں، پولنگ سے شروع کریں۔
ای میل نوٹیفکیشنز
ای میل کے لیے ایک بھیجنے والا فراہم کنندہ اور تصدیق شدہ ڈومین درکار ہے؛ تفصیلات اپنی ایپ سے ای میلز کیسے بھیجیں میں ہیں۔ نوٹیفکیشنز کے لیے خاص طور پر:
- سرور سے بھیجیں، کبھی بھی براؤزر میں فراہم کنندہ کی key کے ساتھ نہیں۔
- زیادہ آنے والے واقعات کو گروپ کریں۔ "3 new comments" ایک ای میل میں تین الگ ای میلز سے بہتر ہے۔
- کم اہمیت کی سرگرمی کے لیے روزانہ یا ہفتہ وار ڈائجسٹ دیں۔
- غیر ضروری ای میل میں ان سبسکرائب یا ترجیحات کا لنک شامل کریں۔ مارکیٹنگ ای میل کے قواعد ملک کے لحاظ سے مختلف ہیں؛ چیک کریں کہ آپ پر کیا لاگو ہوتا ہے۔
ویب پش نوٹیفکیشنز
ویب پش آپ کی سائٹ کو ایسے الرٹس بھیجنے دیتا ہے جو ایپ کے نوٹیفکیشنز کی طرح ظاہر ہوں۔ MDN کی Push API دستاویزات کے مطابق یہ اس طرح کام کرتا ہے:
- آپ کی سائٹ ایک service worker رجسٹر کرتی ہے، یعنی ایک اسکرپٹ جسے براؤزر پس منظر میں چلا سکتا ہے۔
- صارف کی رضامندی کے بعد service worker
PushManager.subscribe()کے ذریعے سبسکرائب کرتا ہے۔ براؤزر ایک subscription واپس کرتا ہے جس میں endpoint اور encryption keys ہوتی ہیں۔ - آپ کا سرور وہ subscription محفوظ کرتا ہے اور جب کچھ ہو، endpoint پر ایک پیغام بھیجتا ہے، عموماً VAPID keys کے ساتھ دستخط شدہ (key pair جو آپ کے سرور کی شناخت کرتا ہے)۔
- براؤزر آپ کا service worker شروع کرتا ہے، جو نوٹیفکیشن دکھاتا ہے، چاہے آپ کا صفحہ کھلا نہ ہو۔
MDN یہ بھی بتاتا ہے کہ endpoint کو خفیہ رکھنا چاہیے، کیونکہ اسے جاننا ہی اس صارف کو پیغام بھیجنے کے لیے کافی ہے۔
iPhone اور iPad
WebKit نے iOS اور iPadOS 16.4 میں ویب ایپس کے لیے Web Push شامل کیا، اور اس کے اعلان کے مطابق دو شرائط ہیں: سائٹ کو ہوم اسکرین پر شامل کرنا ہوگا، اور اجازت صارف کی کسی کارروائی کے جواب میں مانگنی ہوگی، جیسے Subscribe بٹن پر ٹیپ۔ اس لیے آئی فون پر پش صرف ان صارفین تک پہنچتا ہے جنہوں نے آپ کی ویب ایپ انسٹال کی ہو۔ ویب ایپ انسٹال کرنے کا مطلب سمجھنے کے لیے نیٹو اور پروگریسو ویب ایپس دیکھیں۔
اجازت اچھے طریقے سے مانگنا
پہلی بار آنے پر اجازت نہ مانگیں۔ پہلے فائدہ بتائیں ("کلاس سے ایک گھنٹہ پہلے یاددہانی حاصل کریں")، پھر جب صارف بٹن پر ٹیپ کرے تو براؤزر کا پرامپٹ دکھائیں۔ اگر کوئی انکار کر دے تو براؤزر آپ کو دوبارہ پوچھنے کی اجازت نہ دے، اس لیے قبل از وقت پرامپٹ صارف کو ہمیشہ کے لیے کھو سکتا ہے۔
شیڈول شدہ نوٹیفکیشنز کو ایک ٹرگر چاہیے
"24 گھنٹے پہلے یاددہانی" یا "ہر پیر کو ہفتہ وار خلاصہ" کو کسی ایسی چیز کی ضرورت ہے جو شیڈول پر چلے۔ یہ ایک بیک گراؤنڈ جاب کا مسئلہ ہے، جس پر بیک گراؤنڈ جابز کیسے چلائیں میں بات کی گئی ہے۔ ایک عام طریقہ: ایک بیرونی شیڈولر ہر چند منٹ بعد ایک محفوظ endpoint کو کال کرتا ہے، اور وہ endpoint جو کچھ واجب الادا ہو اسے بھیج دیتا ہے۔
اپنے AI بلڈر کو دینے کے پرامپٹس
ان-ایپ سے شروع کریں:
ان-ایپ نوٹیفکیشنز شامل کریں۔ ایک notifications ٹیبل بنائیں (user، type، title، body، link، created_at، read_at)۔ ایک سرور فنکشن notify(userId, type, data) شامل کریں جسے ہر فیچر کال کرے۔ ہیڈر میں غیر پڑھے ہوئے کی گنتی کے ساتھ بیل آئیکن دکھائیں، تازہ ترین 20 کی ڈراپ ڈاؤن، اور "mark all as read" بٹن۔ ہر 60 سیکنڈ میں نئے نوٹیفکیشنز کے لیے پولنگ کریں۔
پھر ترجیحات اور ای میل:
نوٹیفکیشن سیٹنگز شامل کریں: ہر قسم (کمنٹ کے جوابات، ذکر، بلنگ) کے لیے صارف ان-ایپ، ای میل، دونوں یا کوئی نہیں منتخب کر سکے۔ notify() کو یہ ترجیحات ماننی ہوں۔ [PROVIDER] کے ذریعے ای میل بھیجیں، صرف سرور پر secret [ENV_NAME] استعمال کرتے ہوئے۔ کمنٹ کی ای میلز گروپ کریں تاکہ ایک صارف کو 15 منٹ میں زیادہ سے زیادہ ایک ای میل ملے۔
پھر پش، اگر ضرورت ہو:
اختیاری ویب پش شامل کریں۔ ایک service worker رجسٹر کریں، VAPID keys بنائیں اور پرائیویٹ key کو secret کے طور پر محفوظ کریں۔ سیٹنگز میں ایک "Enable notifications" بٹن شامل کریں جو صرف کلک ہونے پر اجازت مانگے۔ ہر صارف اور ڈیوائس کے لیے subscription محفوظ کریں، جب صارف نے اجازت دی ہو تو notify() سے پش بھیجیں، اور وہ subscriptions حذف کریں جنہیں پش سروس ختم شدہ بتائے۔
عام غلطیاں
- نوٹیفکیشنز کوڈ میں جگہ جگہ بکھرے ہوئے۔ ہر فیچر اپنی ای میل مختلف طریقے سے بھیجتا ہے، اور ترجیحات نظر انداز ہو جاتی ہیں۔ ایک
notify()فنکشن استعمال کریں۔ - صفحہ لوڈ ہوتے ہی پش کی اجازت مانگنا۔ زیادہ تر لوگ انکار کر دیتے ہیں، اور دوبارہ موقع نہیں ملتا۔
- ترجیحات کا نہ ہونا۔ جو صارف شور مچانے والے الرٹس بند نہیں کر سکتے، وہ سب بند کر دیتے ہیں، یا چلے جاتے ہیں۔
- براؤزر سے بھیجنا۔ ای میل اور پش کی keys سرور پر ہی رہنی چاہئیں۔
- مردہ پش subscriptions کی صفائی نہ کرنا۔ ختم شدہ subscriptions جمع ہوتی رہتی ہیں اور بھیجنے کا وقت ضائع کرتی ہیں۔
- نوٹیفکیشن کے متن میں حساس تفصیلات۔ لاک اسکرین پر یہ دکھائی دیتا ہے۔ "آپ کے پاس ایک نیا پیغام ہے" خود پیغام سے زیادہ محفوظ ہے۔
- جو بھیجا گیا اس کا ریکارڈ نہ ہونا۔ جب کوئی کہے "مجھے ای میل نہیں ملی"، تو فراہم کنندہ کے message IDs کے ساتھ لاگز وجہ ڈھونڈنے میں مدد دیتے ہیں۔
چیک لسٹ
- ایک سرور سائیڈ
notify()فنکشن جو ہر جگہ استعمال ہو - پڑھنے کی حالت کے ساتھ notifications ٹیبل، اور غیر پڑھی گنتی والا بیل
- ہر قسم کے لیے چینل ترجیحات، جن کا
notify()احترام کرے - سرور سے ای میل تصدیق شدہ ڈومین کے ساتھ؛ زیادہ آنے والے واقعات کے لیے ڈائجسٹ یا گروپنگ
- پش کی اجازت صرف صارف کی کارروائی کے بعد، وضاحت کے ساتھ
- پش ڈیسک ٹاپ پر اور ہوم اسکرین پر ایپ شامل ہونے کے بعد آئی فون پر جانچا گیا
- ختم شدہ پش subscriptions ہٹائی گئیں
- پش یا ای میل کی پیش نظارہ میں کوئی حساس مواد نہیں
- شیڈول شدہ یاددہانیوں کے لیے قابلِ اعتماد ٹرگر موجود ہے
Mythex پر نوٹیفکیشنز
Mythex آپ کی بنائی ہوئی ایپس کے لیے کوئی بلٹ اِن ای میل یا پش سروس شامل نہیں کرتا، اس لیے اپنا ای میل فراہم کنندہ خود لائیں اور پش keys خود بنا کر انہیں پروجیکٹ secrets میں محفوظ کریں۔ ان-ایپ حصے کے لیے صرف پروجیکٹ کا ڈیٹا بیس درکار ہے، جو آپ کے مانگنے پر Mythex شامل کرتا ہے۔ اوپر دیے گئے جیسے پرامپٹس سے بنائیں، بیل اور ای میلز Preview میں جانچیں، اور پش اپنے پبلش شدہ URL پر جانچیں، کیونکہ service workers اور پش کو حقیقی HTTPS ایڈریس چاہیے۔ docs کی ریسیپی ای میل بھیجنا میں ابتدائی پرامپٹ ہے۔ Mythex شیڈول شدہ جابز کی دستاویز نہیں کرتا، اس لیے وقت پر یاددہانیوں کے لیے بیک گراؤنڈ جابز کیسے چلائیں میں بیان کردہ بیرونی ٹرگر استعمال کریں۔
سوالات
ویب ایپ میں شامل کرنے کے لیے سب سے آسان نوٹیفکیشن کون سا ہے؟
ان-ایپ نوٹیفکیشنز: آپ کے ڈیٹا بیس میں نوٹیفکیشنز کا ٹیبل اور ایک بیل آئیکن جو غیر پڑھے ہوئے آئٹمز دکھائے۔ انہیں کسی تھرڈ پارٹی سروس کی ضرورت نہیں۔ ای میل اگلا قدم ہے اور اس کے لیے ای میل فراہم کنندہ درکار ہوتا ہے۔
کیا ویب ایپ آئی فون صارفین کو پش نوٹیفکیشن بھیج سکتی ہے؟
جی ہاں، کچھ حدود کے ساتھ۔ WebKit نے iOS اور iPadOS 16.4 میں ہوم اسکرین ویب ایپس کے لیے Web Push شامل کیا، اس لیے صارف کو پہلے آپ کی ویب ایپ ہوم اسکرین پر شامل کرنی ہوگی، اور اجازت کسی ٹیپ کے بعد مانگی جانی چاہیے، جیسے Subscribe بٹن پر۔
کیا ویب سائٹ بند ہونے پر بھی پش نوٹیفکیشنز کام کرتے ہیں؟
جی ہاں۔ Push API پیغامات آپ کی سائٹ کے service worker تک پہنچاتا ہے، جسے براؤزر پیغام آنے پر چلا دیتا ہے، اس لیے صفحہ کھلا ہونا ضروری نہیں۔ صارف نے پہلے اجازت دی ہونی چاہیے۔
میں نوٹیفکیشنز کو صارفین کے لیے تنگ کرنے والا بننے سے کیسے روکوں؟
صرف ان چیزوں کے بارے میں اطلاع دیں جن کی صارف کو پروا ہو، ایک ساتھ آنے والے پیغامات کو ایک میں گروپ کریں، ہر قسم کے لیے سیٹنگز میں چینل منتخب کرنے دیں، اور پش کی اجازت تب مانگیں جب صارف کو دکھایا جا چکا ہو کہ یہ کیوں مفید ہے۔