مسیرهای وبسرویس ارسال پوشفا برای Web/PWA، Android و iOS یکسان هستند؛ سرویس و مخاطب مقصد تعیین میکنند پیام به کدام پلتفرم تحویل شود.
اصل مشترک
برای ارسال از سمت سرور، تفاوتی در مسیرهای وبسرویس اصلی Web، Android و iOS وجود ندارد. همان api_public_key و api_private_key سرویس، همان عنوان و متن و همان روشهای هدفگیری استفاده میشوند. یک توکن یا شناسه ثابت مخاطب (Subscriber ID) به پروفایل سرویس تعلق دارد و Pushfa آن را از طریق FCM به مقصد مناسب تحویل میدهد.
ثبت دستگاه Android و iOS با SDK نیتیو انجام میشود، اما ارسال پیام از سمت سرور از همین وبسرویسهای مشترک استفاده میکند.
قبل از ارسال، شناسه مخاطب را دریافت و ذخیره کنید
برای ارسال Web Push، ابتدا توکن یا subscriber_id مخاطب را در مرورگر دریافت و در Backend خود ذخیره کنید. راهنمای زیر دو نمونه آماده برای سافت پرامپت پوشفا و دکمه سفارشی دارد تا شناسه مخاطب را پس از پذیرش پوش ذخیره کنید و سپس از وبسرویس ارسال استفاده کنید.
داده JSON سفارشی برای Service Worker یا SDK نیتیو Android/iOS
get_delivery_status / get_click_status
فعالکردن گزارش تحویل و کلیک
send_time / time
current برای ارسال فوری (پیشفرض)؛ در حالت delay، time تاریخ میلادی با قالب Y-m-d H:i و ساعت تهران (Asia/Tehran) است، ثانیه صفر و زمان باید بعد از اکنون باشد. این قرارداد برای ارسال به تاپیک هم برقرار است. زمان گذشته یا همین لحظه پیش از ثبت پیام و کسر اعتبار با 422 INVALID_SEND_TIME رد میشود؛ قالب نامعتبر VALIDATION_ERROR میدهد.
last_visit
شرط اختیاری آخرین بازدید مخاطب؛ مثلاً ارسال فقط برای کسانی که امروز بازدید داشتهاند
شرط اختیاری آخرین بازدید (last_visit)
همه وبسرویسهای ارسال (تکی، تکی لایت، گروهی، گروهی لایت، تاپیک، شناسه ثابت مخاطب، Alias و شناسه سفارشی) پارامتر اختیاری last_visit را میپذیرند. با این شرط پیام فقط برای مخاطبانی ارسال میشود که روز آخرین بازدیدشان از سایت یا اپ با شرط شما بخواند؛ مثلاً فقط کسانی که امروز آمدهاند یا کسانی که بیش از یک ماه است سر نزدهاند. اگر last_visit را نفرستید، ارسال مثل قبل و بدون این شرط انجام میشود.
فیلد
مقدار مجاز
توضیح
last_visit[operator]
>=، >، <=، < یا =
عملگر مقایسه روز آخرین بازدید با date
last_visit[date]
today، today-N یا Y-m-d
today یعنی امروز، today-7 یعنی هفت روز قبل (حداکثر today-3650) و 2026-10-01 یک روز میلادی مشخص است. همه روزها به وقت تهران حساب میشوند.
{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"topic": "all",
"title": "پیشنهاد امروز",
"body": "ویژه کاربرانی که امروز به ما سر زدهاند",
"last_visit": { "operator": ">=", "date": "today" },
"send_time": "current"
}
نمونههای رایج last_visit
هدف
مقدار last_visit
فقط بازدیدکنندگان امروز
{"operator": ">=", "date": "today"}
فعال در هفت روز اخیر (از هفت روز قبل تا امروز)
{"operator": ">=", "date": "today-7"}
فقط کسانی که دیروز آمدهاند
{"operator": "=", "date": "today-1"}
بازگرداندن کاربران غیرفعال: آخرین بازدید قبل از ۳۰ روز پیش
{"operator": "<", "date": "today-30"}
بازدید از یک تاریخ مشخص به بعد
{"operator": ">=", "date": "2026-10-01"}
نحوه اعمال شرط last_visit
تاریخ شمسی (مثلاً 1405-07-23) پذیرفته نمیشود و خطای اعتبارسنجی 422 میدهد؛ تاریخ را میلادی بفرستید یا از today و today-N استفاده کنید.
موضوع
رفتار
مبنای مقایسه
آخرین بازدید هر پروفایل مخاطب (هر دستگاه) در سطح روز و به وقت تهران ثبت میشود و با date مقایسه میشود. مخاطبی که هنوز بازدیدی از او ثبت نشده، با هیچ شرطی مطابقت ندارد.
زمان محاسبه
شرط و مقدار today یک بار و هنگام پذیرش درخواست محاسبه میشوند؛ در ارسال زمانبندیشده هم today روز ثبت درخواست است، نه روز ارسال.
ارسال تکی
اگر مخاطب شرط را نداشته باشد، پیامی ساخته و هزینهای کسر نمیشود و خطای 422 با کد LAST_VISIT_CONDITION_NOT_MET برمیگردد.
فهرست شناسهها
در subscriber_ids، fcm_tokens و send-via-subscriber-id هر شناسه جداگانه بررسی میشود؛ شناسههای فاقد شرط با همین کد در rejected_recipients میآیند و بقیه ارسال میشوند.
تاپیک
فقط اعضای واجد شرط پیام میگیرند؛ اگر هیچ عضوی شرط را نداشته باشد، LAST_VISIT_CONDITION_NOT_MET برمیگردد.
Alias و شناسه سفارشی
شرط برای هر دستگاه بررسی میشود. smart_targeting بهترین دستگاه را از میان دستگاههای واجد شرط انتخاب میکند. با only_last_device ابتدا آخرین دستگاه کاربر انتخاب و شرط روی همان دستگاه بررسی میشود. در send-via-alias مقدارهایی از values که دستگاه واجد شرط ندارند در rejected_recipients گزارش میشوند.
ترتیب فیلترها
ابتدا اعتبار مخاطب و فیلترهای device و platform، سپس last_visit، بعد انتخاب دستگاه (smart_targeting یا only_last_device) و در پایان سقف Frequency Cap اعمال میشود.
پیشنیاز
ثبت آخرین بازدید باید در تنظیمات سرویس روشن باشد؛ در غیر این صورت درخواست با خطای 403 و کد LAST_VISIT_TRACKING_DISABLED رد میشود.
پاسخ خطا
وقتی کل درخواست به دلیل این شرط رد شود، شرط اعمالشده همراه تاریخ محاسبهشده در data.last_visit برمیگردد؛ مثلاً {"operator": ">=", "date": "2026-10-15"}.
از subscriber_id برای یک مخاطب و subscriber_ids[] برای چند مخاطب استفاده کنید؛ این شناسهها با چرخش توکن تغییر نمیکنند و پایدارترند. کلیدهای fcm_token و fcm_tokens[] به دلیل پایداری کمتر منسوخ شدهاند، اما برای سازگاری همچنان پشتیبانی میشوند. ارسال همزمان subscriber_id و fcm_token یا subscriber_ids و fcm_tokens، حتی با مقدار خالی، خطای اعتبارسنجی 422 میدهد.
دستیار مستندات پوشفا
پاسخ از سراسر مستندات رسمی
سلام! دربارهٔ راهاندازی پوشفا، ارسال پیام یا کار با پنل سؤال کنید. برای اتصال سایت و اپلیکیشن هم میتوانید راهنمایی بگیرید.
این دستیار در کل مستندات پوشفا جستوجو میکند.
از این صفحه بپرسید
وبسرویسهای ارسال مشترک Web Push، Android و iOS و راهنماهای مرتبط
کدام بخش این راهنما برایتان روشن نیست؟ سؤال خود را بنویسید تا بر اساس این صفحه و راهنماهای مرتبط پاسخ بگیرید.
ارسال تیکت به پشتیبانیپاسخ از طریق سیستم تیکت پیگیری میشود.
گفتوگوی مستقیم با پشتیبانیپشتیبان آنلاین است
شروع گفتوگو با دستیار پوشفاپیش از شروع، لطفا اطلاعات تماس خود را وارد کنید، تا در صورت نیاز با شما ارتباط برقرار کنیم.