Every push program eventually faces the budget question, and open rates don’t answer it. “Our notifications get a 30% open rate” is a copy metric. “Push recovered $86,000 in cart revenue last quarter at effectively zero marginal cost” is a budget defense. Measuring push notification ROI is the difference between the two — and it’s mostly a matter of instrumenting the last mile that most teams skip.
This guide walks the metrics ladder from delivery to attributed revenue, sets up goal tracking with the SDK, and ends with the five numbers worth putting in front of your leadership every week.
The metrics ladder: what each number can and cannot prove
| Statistiek | What it proves | What it doesn’t |
|---|---|---|
| Leveringspercentage | Your credentials and list hygiene work | Anyone cared |
| Open / click-through rate | The copy and timing earned a tap | The tap was worth anything |
| Push-attributed sessions | The channel drives re-engagement | Omzet |
| Conversions (goals) | Notifications lead to completed purchases | Which spend it justified |
| Attributed revenue | The program pays for itself | — |
Most reporting stops at row two because rows four and five need instrumentation. That instrumentation is one API call.
Goal tracking: the one call that closes the loop
With the PushEngage iOS SDK, revenue attribution is a sendGoal call at the moment of conversion — typically your order-confirmation handler:
let goal = Goal(name: "revenue",
count: 1,
value: 189.00) // the order value
PushEngage.sendGoal(goal: goal) { success, error in
// background queue — don't touch UI directly
}
PushEngage connects the goal to the notification journey that preceded it, inside the attribution window, and rolls it up per campaign in the dashboard. One call in the purchase flow, and every campaign you run afterward reports revenue instead of clicks. Web push gets the same treatment with the JavaScript SDK, so your channel comparison is apples to apples.
Read revenue per campaign, not per program
Program-level revenue hides the story. Campaign-level revenue writes your roadmap: the cart abandonment sequence usually tops the table, followed by price drop alerts and back-in-stock — the campaigns closest to purchase intent. Broadcast sends usually sit at the bottom, which is the quantified version of why event-triggered campaigns deserve your instrumentation budget. Within a sequence, per-message attribution tells you which step earns its place: when message one recovers most of the revenue and message three mostly spends discount margin, the fix is obvious.
The CAC math that makes the case
For a retention channel, the ROI frame that lands with finance is acquisition replacement. A recovered cart is a sale you didn’t re-buy with ad spend; a resurrected dormant user is a customer you didn’t re-acquire. Put your blended CAC next to push’s cost per recovered customer and the comparison usually isn’t close — the subscriber list is an asset you already paid to build, and pricing that scales only with active subscribers means the channel’s cost doesn’t grow with send volume. That framing — margin protection, not marketing experiment — is the one that survives budget season.
Attribution honesty (or: how to keep finance’s trust)
Attributed revenue is a claim, and inflated claims eventually get audited. Three habits keep yours defensible. Keep attribution windows short and stated — a push tapped minutes before purchase deserves credit; a push seen last month doesn’t. Run an occasional holdout — exclude a slice of a segment from a campaign and compare purchase rates; the delta is the lift you can defend as causal. And when a customer touched three channels, resist claiming full credit in each — the multichannel attribution guide covers how to split it. Slightly conservative numbers that survive scrutiny beat impressive numbers that don’t.
The weekly five
Skip the dashboard screenshot dump. Five numbers, one line each, every week:
- Attributed revenue — total, and per top campaign
- Recovered carts — count and value
- Reachable subscribers — the asset’s size and trend
- Revenue per 1,000 sends — the efficiency metric that catches fatigue early
- Unsubscribe rate — the cost side of every send decision
The multi-channel ROI guide shows how to fold these into your broader stack reporting when push isn’t the only owned channel you run.
Instrument first, then argue
Push notification ROI isn’t a philosophy debate — it’s a sendGoal call you haven’t shipped yet. Add it to the purchase flow this sprint, let two weeks of campaigns accumulate, and your next budget conversation starts from attributed revenue instead of open rates. If you’re building the program from scratch, the app push marketing guide covers the campaigns worth measuring in the order worth building them.