Analytics Overview
PushPilot tracks delivery, opens, and conversions at the organisation, campaign, and individual notification level. All analytics are accessible in the dashboard under Analytics.
Organisation-level analytics
The main Analytics page shows a high-level overview of your entire workspace:
Total Sent
All notifications dispatched across all campaigns in the period.
Delivered
Notifications confirmed delivered by FCM or OneSignal.
Opened
Notifications opened by the user (requires SDK event tracking).
CTR
Click-through rate — opened / delivered.
Top Campaigns
Campaigns ranked by delivery volume or open rate.
Daily Trend
Chart of sent / opened counts per day over the selected period.
Conversion funnel
The Funnel view shows the drop-off at each stage of the notification journey:
Campaign-level analytics
Click any campaign name from the Analytics page or from Campaigns to see campaign-specific metrics:
- Total notifications sent for this campaign.
- Open and click rates over time.
- Daily performance chart — useful for identifying which notification times perform best.
- Per-notification breakdown — see which individual messages drove the most opens.
Per-notification analytics
Click on any individual notification to see its delivery status, sent timestamp, and open count. This is the most granular view — useful for A/B testing message copy or images.
Tracking events from your app
Delivery and open events can be sent to PushPilot from your mobile app. This gives accurate open rates (rather than estimating from delivery confirmations).
POST /api/analytics/events/
{
"event_type": "notification_opened",
"notification_id": "notif_abc123",
"timestamp": "2026-04-21T10:30:00Z",
"metadata": {
"platform": "android",
"app_version": "2.1.0"
}
}The notification_id is included in the push payload data sent by PushPilot. Read it from the notification data payload in your app's FCM message handler:
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
final notificationId = message.data['notification_id'];
if (notificationId != null) {
// Send event to PushPilot
reportOpen(notificationId);
}
});Event types
notification_opened, notification_clicked, notification_dismissed.