All documentation
Reference

Push Notifications: Metering, Limits and Troubleshooting

Understand every Push usage number and diagnose why a notification did not appear.

Text

Overview

PulseGrid meters device delivery targets, not notification button clicks. Examples: - One notification to one device = 1 targeted delivery. - One notification to 500 devices = 500 targeted deliveries. - A retry inside the same claimed delivery does not create a second notification. Plan-controlled limits: - active devices per project - device deliveries per project per month - maximum audience per notification - delivery-log retention days Platform owners can set a lower absolute safety ceiling and retention ceiling in Admin -> Push delivery controls. Per-plan values remain editable in Payments -> Plan features.

Setup

If Send notification is disabled: 1. Confirm Firebase status says Verified. 2. Confirm at least one active device exists. 3. Confirm you have owner, admin or developer access. If verification fails: 1. Confirm Firebase project ID equals project_id in the JSON. 2. Generate a fresh service-account key from the correct Firebase project. 3. Confirm Firebase Cloud Messaging API is enabled for that project. If PulseGrid says sent but nothing appears: 1. Confirm the device token belongs to the connected Firebase project. 2. Confirm notification permission is allowed on the device. 3. Confirm the client service worker/background handler is installed correctly. 4. Confirm the app is handling foreground notifications. 5. Test on a real device and inspect application/Firebase logs. If work remains pending: 1. Confirm Redis is running. 2. Confirm a Celery worker is running. 3. Confirm Celery Beat is running. 4. Inspect worker logs for pushes.dispatch_notification.

Code example

Push Notifications: Metering, Limits and Troubleshooting
Production processes:

daphne -b 0.0.0.0 -p 8000 pulsegrid.asgi:application
celery -A pulsegrid worker --loglevel=info
celery -A pulsegrid beat --loglevel=info

Required supporting service:
Redis (broker and production channel layer)

Database:
PostgreSQL is recommended for production concurrency.

Notes

The monthly usage ledger stores counts and payload sizes, not notification message bodies. Device delivery history is pruned according to the lower of the plan retention and platform retention ceiling. Firebase Cloud Messaging may be free, but PulseGrid still incurs compute, queue, database and bandwidth costs, which is why metering and safety caps remain important.