18 February 2026 · Journal
Token freshness and a failure taxonomy
Push notification performance collapses when dead tokens stay in the audience. Treating every miss as a headline problem wastes weeks.
Module 4 of Signal to Send is the least glamorous block and the one alumni mention most. A travel super-app once watched delivery fall nine points in a week and commissioned new copy. The drop matched an APNs certificate rotation. Invalid tokens had to be purged before any creative test became readable.
Three failures that are not the same
Invalid. The token is malformed or expired. Sending again will not help. CRM can often suppress these if the ESP returns the code.
Unregistered. The OS or vendor no longer recognises the device, common after app uninstalls or certificate events. This is usually a mobile-engineering conversation with a CRM cleanup step.
Accepted but never shown. The vendor took the message; the tray never displayed it. OEM skins, battery savers, and quiet hours live here. Copy tests cannot diagnose it.
Who owns which row
We ask operators to mark each failure as CRM-actionable, engineering-actionable, or vendor-opaque. The third category is allowed. Pretending you can “optimise” an opaque miss is how teams burn a quarter.
Token age is a performance metric. An audience full of tokens older than a few OS cycles inflates reach and depresses every downstream ratio. A 120-day refresh rule is not magic; it is a starting heuristic we adjust once you see your own uninstall pattern.
Access is a real constraint
Several CRM teams cannot query token tables without borrowing a backend engineer. We say so in the syllabus. The lab still teaches the taxonomy so you can write a precise ticket instead of “notifications are broken”. Two borrowed afternoons, used well, beat a month of speculative A/B tests.