Overview
Zixflow tracks three push lifecycle events:- Delivery Confirmed — notification arrives on the device
- Notification Opened — user taps the notification body
- Action Button Clicked — user taps a named action button
How Push Tracking Works
Tracking Events
1. Delivery Confirmed
SDK method:trackMetric(TrackMetric.Push(metric = Metric.Delivered, ...))
When using the default SDK FCM service, delivery is tracked automatically for recognized pushes.
When using a custom service (example dual-path), track after the SDK helper returns false:
2. Notification Opened
When: User taps the notification body (default content intent). Action buttons are a separate event (still fire Opened first in the receiver). SDK method:trackMetric(TrackMetric.Push(metric = Metric.Opened, ...))
Default module: body opens are automatic.
Custom display path — put delivery extras on the content PendingIntent and handle in the Activity:
MainActivity.handlePushOpenIntent.
3. Action Button Clicked
Never automatic. In yourBroadcastReceiver:
notification_id into each action PendingIntent that you use with notify(). Use intent action …PUSH_NOTIFICATION_ACTION (match your manifest filter). Reference: NotificationActionReceiver.kt.
Required properties: Zixflow-Delivery-ID, action_index, action_name. Recommended: Zixflow-Delivery-Token, action_deeplink.
After tracking, open the button deeplink (see Deeplink opening below).
Deeplink opening (example pattern)
The Android example routes body and action deeplinks through one helper (DeeplinkRouter.kt):
https:// URLs use ACTION_VIEW.
Action Buttons Format
deeplink is allowed.
Custom FirebaseMessagingService (dual-path)
See Push Notifications — Custom FirebaseMessagingService for:tools:node="remove"onZixflowFirebaseMessagingService- 3-arg
onMessageReceived(context, message, handleNotificationTrigger) - Fallback Delivered + manual display when
false
Tracking Decision Flowchart
Fallback for Non-Zixflow Push
If there is no delivery ID, skip Zixflow push metrics. Do not use reserved event names for external pushes.Testing
EnableZixflowLogLevel.DEBUG. In the dashboard → Messaging → Push Notifications, check Delivered, Opened, and Clicked.