App notifications should have a spam filter, and users should be able to help train it.
We have already accepted that email needs spam filtering. Nobody expects people to manually inspect every dubious message and individually configure every sender. Yet this is effectively what phones ask us to do with app notifications.
Apps send delivery updates, payment alerts, chat messages, discounts, streak reminders, invented deadlines and “we miss you” messages through the same channel. The phone then asks us to open settings, find the app, understand its categories and turn them off one by one.
That is not meaningful control. It is outsourced admin work.
The problem is not the app. It is the notification.
A shopping app may need to tell me that my order has arrived. It does not need to interrupt me because a sale ends tonight.
A bank may need to alert me about a suspicious transaction. It does not need to use the same attention channel to market a personal loan.
Current notification settings are built around apps and categories. Android does provide notification permissions and channels, which is better than having no control at all. [1][2] But the useful unit is smaller: the individual notification.
People should be able to tap a notification and mark it as spam.
Not “I never want to hear from this app.” Just: this message was unwanted, repetitive or promotional.
Build an independent notification firewall
I would not leave this entirely to Google, Apple or device manufacturers.
They control the platform, but their incentives are not identical to the user’s. Their ecosystems benefit when apps are engaged with, opened and retained. Digital Wellbeing tools are useful for setting limits. They do not solve the underlying question of which alerts deserve to interrupt someone in the first place.
The answer should be an independent notification firewall. It would sit between app notifications and the user, with explicit permission and a privacy-first design.
The first part is an on-device classifier. It would look at signals such as notification frequency, duplicate wording, time of day, whether the user started an action that makes an update expected, and whether similar alerts are normally opened or dismissed.
The second part is a shared spam registry. When users mark substantially similar notifications as spam, the central service receives an anonymised aggregate signal. If enough people report the same kind of alert from the same app or category, it receives a spam reputation.
This must not become a cloud copy of everyone’s private messages. The default should be local processing. The registry should receive only the minimum information required to identify a pattern: app identity, category, privacy-preserving notification signature and aggregate feedback.
Collective feedback, personal control
One person marking a notification as spam should improve their own phone immediately.
Many people doing the same should improve the system for everyone.
But a shared spam score should inform the user, not overrule them. Someone may genuinely want every offer from a retailer. Someone else may want none. The firewall should make that choice simple:
- Allow now: show the notification normally.
- Group or digest: place low-priority alerts together at the bottom of the notification screen, or show them at a time chosen by the user.
- Hide: keep suspected-spam alerts out of the main notification screen, while retaining a separate spam folder for review.
The user should always be able to promote an app, category or individual notification again. An algorithm will occasionally get it wrong. The point is to give the user a good default, not create another opaque gatekeeper.
Measure interruptions, not only screen time
Screen-time reports show how long someone used a phone. They do not show how often the phone pulled them away from something else.
That is the more useful measure.
A weekly interruption report could show the number of notifications received, the number that actively interrupted the user, the number grouped into a digest and the number hidden as suspected spam. It could also show which apps have the worst interruption-to-usefulness ratio.
Research suggests smartphone notifications can disrupt attention and cognitive control. [3] That does not mean every alert is harmful. It means interruption has a cost, and the system should recognise that cost.
Turn “Attention Is All You Need” upside down
The 2017 paper Attention Is All You Need helped transform machine learning by showing how systems can focus on relevant information. [4]
The app economy seems to have adopted a different version of the idea: attention is all it needs from us.
Every “last chance” sale, streak warning and generic reminder is built around the assumption that it deserves immediate access to a person. The user is then given a settings page and told they are in control.
We need to reverse that assumption.
Attention is not an app’s default entitlement. It is a limited personal resource. An app should earn the right to interrupt someone, and users should be able to collectively identify the notifications that abuse that right.
Android can support an early version because its notification-listener capability can receive system callbacks when notifications are posted, removed or re-ranked. [5] iOS is more restricted, so a true independent cross-platform solution would require Apple to expose a secure, user-authorised notification-filtering interface.
That is not a reason to drop the idea. It is the policy demand.
Sources
[1] Android Developers, “Notification runtime permission”
https://developer.android.com/develop/ui/compose/notifications/notification-permission
[2] Android Developers, “Create a notification”
https://developer.android.com/develop/ui/compose/notifications/create-notification
[3] Upshaw et al., “The effects of smartphone notifications on cognitive control and attention”
https://pmc.ncbi.nlm.nih.gov/articles/PMC9671478/
[4] Vaswani et al., “Attention Is All You Need”
https://arxiv.org/abs/1706.03762
[5] Android Developers, “NotificationListenerService”
https://developer.android.com/reference/android/service/notification/NotificationListenerService