اگر تازه با وب پوش نوتیفیکیشن آشنا شده‌اید، شاید بپرسید وقتی کاربر اینترنت نداشته باشد یا دستگاهش خاموش باشد، چه اتفاقی برای پیام‌های ارسالی می‌افتد؟ آیا از دست می‌روند یا بعداً می‌رسند؟

برای فهم بهتر باید بدانیم این نوتیفیکیشن‌ها با چه فناوری‌ای ارسال می‌شوند.

بطورکلی راه‌های مختلفی برای ارسال آنی پیام به کاربری که روی سایت شماست وجود دارد (مثل polling، long polling، وب‌سوکت و ...). اما تنها فناوری‌ای که می‌تواند به کاربری که حتی روی سایت شما نیست پیام برساند، وب پوش نوتیفیکیشن (Web Push Notification) است.

این فناوری ترکیبی از استانداردهای Push API و Service Worker است که باعث می‌شود حتی اگر مرورگر کاربر بسته باشد، باز هم پیام شما را دریافت کند.

جدول وضعیت تحویل پیام در شرایط مختلف

قوانین کارکرد سرورهای پوشفا و گوگل به شکل زیر است:

وضعیت کاربرنتیجه دریافت نوتیفیکیشن
کاربر آنلاین و در سایت شماست✅ نوتیفیکیشن فوراً می‌رسد
کاربر در سایت است اما اسکریپت پوشفا لود نشده❌ نمایش داده نمی‌شود (اسکریپت باید در تمام صفحات باشد)
کاربر در سایت‌های دیگر است (مرورگر باز)✅ نوتیفیکیشن فوراً می‌رسد
اینترنت روشن است اما مرورگر بسته است *📱 موبایل: همان لحظه می‌رسد
💻 دسکتاپ: به محض باز شدن مرورگر می‌رسد
کاربر آفلاین است یا گوشی خاموش است⏳ در صف انتظار می‌ماند (Pending) و بعد از آنلاین شدن تحویل داده می‌شود

* نکته مهم درباره گوشی‌های چینی (شیائومی و هواوی):
در برخی مدل‌های این برندها، سیستم‌عامل برای صرفه‌جویی در باتری، سرویس‌های پس‌زمینه را می‌بندد. اگر کاربران شما از عدم دریافت پیام شکایت دارند، پیشنهاد دهید گزینه "بهینه‌سازی باتری" را برای مرورگر کروم غیرفعال کنند. برای راهنمایی دقیق‌تر، مقاله حل مشکل عدم دریافت نوتیفیکیشن در گوشی‌های شیائومی را مطالعه کنید.

پس بطورکلی نوتیفیکیشن‌ها در حالت آفلاین گم نمی‌شوند، فقط در صف انتظار (Queue) باقی می‌مانند. شما کافی است پیام را به سرویس پوش بفرستید، باقی کار یعنی "تحویل به‌موقع به محض آنلاین شدن" بر عهده سرورهای ماست.

تا چه زمانی پیام نگه داشته می‌شود؟ (مفهوم TTL)

یک نکته مهم این است که اگر کاربر تا یک ماه آنلاین نشد، چه می‌شود؟ این موضوع با پارامتری به نام TTL (Time To Live) مشخص می‌شود. معمولاً سرویس‌های استاندارد (مثل فایربیس) پیام را تا ۲۸ روز ذخیره می‌کنند. اما در پنل پوشفا شما می‌توانید این زمان را مدیریت کنید. مثلاً برای یک "تخفیف ۲۴ ساعته"، بهتر است TTL را روی ۱ روز تنظیم کنید تا اگر کاربر فردا آنلاین شد، پیام منقضی شده را نبیند.

در آخر اگر به دنبال سرویسی هستید که "نرخ تحویل" (Delivery Rate) بالایی داشته باشد و از سرورهای پایدار داخلی استفاده کند، پیشنهاد می‌کنیم سرویس ارسال وب پوش نوتیفیکیشن پوشفا (Pushfa) را امتحان کنید. ما با رعایت دقیق استانداردهای Web Push، پیام‌های شما را حتی در شرایط اختلال اینترنت، در صف نگه داشته و در اولین فرصت به دست کاربر می‌رسانیم.