The abuse of push notifications is spreading across the App Store. As a result, users are starting to reflexively reject app requests to send push notifications.

I always allow apps to send me push notifications, just so I can see what other app developers are doing. Here is a collection of valueless, invasive, and annoying push notifications that I’ve received recently:

As far as I can tell, many of these notifications are in violation of section 5.6 of the App Store Review Guidelines, although its exact meaning is up for debate:

"5.6 Apps cannot use Push Notifications to send advertising, promotions, or direct marketing of any kind"

Compounding the problem is that although there are options to control push notifications on an app by app basis in the iOS Settings app, most non-technical users do not know that these settings exist, or don’t understand the settings if they do happen to stumble across them. Furthermore, there is no way to report spammy notifications or turn notifications off when a notification is received, so for many users, the initial prompt asking for permission to send push notifications is effectively the only shot they’ve got at controlling push notifications. Once they’ve been burned by an abusive app, from there on out, they reject push notifications from all apps.

With AnyList, we strive to use push notifications usefully, so it’s not uncommon for us to receive support requests from people who wonder why the people they are sharing a list with are receiving notifications when a list is modified, but they aren’t. Then we explain to them that they must’ve rejected push notifications when they first used the app, but it’s possible to turn them back on in the Settings app.

I’d like to see Apple make the following changes to push notifications:

Provide a feedback mechanism that allows users to report spammy notifications, and crack down on abusive apps. Provide a quick way to disable push notifications from an app when a push notification from that app is received. Let developers provide a usage description string for the push permission dialog, so they can let the user know exactly why they want to send push notifications. This sort of functionality is already available for the location, calendars, and contacts permission dialogs. (See the documentation for NSLocationUsageDescription, NSCalendarsUsageDescription, and NSContactsUsageDescription.) Allow developers to show the notification settings for an app within the app. I realize that Apple can’t give programatic access to the notification settings, because developers would abuse that, but a way to show a system-provided view controller with the notification settings for my app would be nice. Sticking the notification settings for all apps into a giant list in the iOS Settings app isn’t very discoverable, nor is it very useable when you have many apps installed. When users want to change the behavior of an app, they expect to do it in that app, not in iOS Settings. (This is why the noble experiment that was iOS Settings Bundles has been a failure, and why very few developers use them anymore.)