Details on the Push Notification app limits

Yesterday, Kevin Marshall wrote a blog post  with a good developer tip: to code defensively for the 15 application limit in push notification. 

I know the post was well intended (as a developer tip) and fair criticism (to platform limit); but a few people got confused or misinterpreted and we ended up with tweets or posts that said “Windows phone allows only 15 live tiles”, or “you must uninstall apps to free tiles”, etc..

Here are a few details you might care to know, so you can plan your app and be a good citizen:

  • Yes, the limit is fifteen third party applications can be concurrently subscribed  to receive push notifications (whether that is a live tile or toast).  Parsing it out, the applications that come out of the box (like outlook, people hub, etc.) will not count towards this limit.    So there is no limit on 15 live tiles.  You can have 20+ if you add it up (that is about 2.5 screens worth of tiles on star menu)
  • An application is only counted if it has push notification or tiles push enabled and is subscribed to a channel.  If you install an application but you do not enable push, it would not count towards the limit.
  • You should not have to go uninstall an application in order to free a slot.  If an application is coded well, it should be prompting users and giving them the option on whether they want to use push notifications and/or live tiles (since there is potential bandwidth charges from the operator when these are pushed).   if the user never agrees or it unchecks the box to subscribe, the application should free the channel; there fore uninstall should not be required.
  • Applications that use just scheduled tiles updates do not count towards the limit. If that is all you need be a good citizen and
  • If an application subscribes for tile updates, and is never pinned it unfortunately does count. Again, we count the channels.

To handle the error, as Kevin pointed out it is just a matter of listening for the exception, and right error message.  Then prompt user to turn-off push notifications in another app.   There is no API to list the applications using it – and I have not heard of a plan for this API –.

Is the limit too low, Kevin wonders.  Obviously there is no perfect answer as it varies by user. I do know that the product team did research on types of apps, categories, how many a typical user would pin, enable push, etc. and they went with 15 for v1, so it is not an arbitrarily low number.   I saw the data and it made good sense to me.  I also hear that the limit can increase later, as we get more apps and better data.  Full clarification, “can increase” only means we are constantly evaluation. it does not mean the next update will have this limit increased. Nothing to announce.  

Again, the key there is the planning was done for typical users. As developers, we tend to install more apps, and often enable the features just to try them out, but we are also power users that know when and how to turn these off.   On the rest, we will have to trust (and hope) that the data the researchers and planners had for typical users holds us until the limit is increased.

Why is there a limit?  The usual thrive to ensure there is a great user experience, good battery life, quality of service on back-end and front-end, bandwidth (cost) , etc.  Limit will increase as we get right data on how people use push, impact, etc.  Kevin’s feedback on there not being an API to enumerate all push apps is still valid.  I know the product team has heard it (from Kevin, me and others) so I hope that gets addressed or the limits go high enough that the problem becomes a moot point.

Hope that helps. 

My take,  when it comes to push,

  1. Don’t panic, code your app to take advantage of the platform. Tiles and push can be a nice differentiator for an app.  Let the user decide (15 is still a good number for average users).
  2. Code defensively against this limit. it is not hard (though mitigation prompt to the user is not perfect, but it does leave them in control )
  3. Prompt your users and ask if they want to use push, and if you are using live tiles give them the option to turn tiles off too..  If user opts out of both, free the channel.

Happy Windows Phone coding!

Comments

  • Anonymous
    December 07, 2010
    Jaime, I'd love to hear more about the Scheduled Live Tiles. The information on MSDN is basic and lets you know how to get them running but what isn't clear is how you use them to create useful scheduled tile experiences. These being - not having the "Create a schedule" code run every time the app loads up and reset the schedules, picking up when a schedule has stopped so the application can renew the schedule and picking up on if a previous schedule exists so that again, you don't overwrite an existing schedule. Cheers, ChrisNTR

  • Anonymous
    December 07, 2010
    Hi Jamie, One question about this, how will your research team get the data on how many push notification tiles a typical user would need if the phone doesn't allow them to go more than 15? Personally I think 15 is a bit low considering all the marketing regarding the glance and go. If I were to re-iterate stuff I would need push for

  1. Facebook
  2. Twitter
  3. FourSquare
  • News apps 4 Reuters 5 A World News App 6 Local News (if there was such an app) <There can be many more news apps like this, but lets say a user limits himself to 3>
  1. Digg
  2. Reddit
  3. RSS
  4. Weather
  5. An IM app (for toasts)
  6. Google Voice
  7. Skype (if it exists for Toasts, and tiles)
  8. Stock Updates (toasts)
  9. A Financial Planner app (e.g. mint)
  10. Traffic Updates That's easily at the limit with your usual run of the mill apps that I would want on my phone today (if all of them existed), and that doesn't even count whatever new kinds of apps might come in the future. and it doesn't count games at all. If you look at all these new breed of games (turn-based) that run on the server, they toast/notify the user when there is an update. I can easily see the 15 limit being a little restrictive. Realistically I think 25 - 35 should have been a better limit. I hope the team takes this points to note, and good work on all that has been done so far, Cheers, Tariq
  • Anonymous
    December 11, 2010
    Hi Tariq,     I see where you are coming from, but do you really need push for most of those? In my mind, the following would work more than well enough, and save many slots. Also, probably battery life. (Pull is better than push for battery life, as long as pull isn't TOO aggressive.)
  1. Facebook - Push
  2. Twitter - Push, maybe
  3. FourSquare - Pull, 15 minutes
  • News apps 4 Reuters - Pull, 15 minutes 5 A World News App - Pull, 1 hour 6 Local News (if there was such an app) - Pull, 1 hour <There can be many more news apps like this, but lets say a user limits himself to 3>
  1. Digg - Pull, daily
  2. Reddit - Pull, daily
  3. RSS - Pull, 1 hour
  4. Weather - Push
  5. An IM app (for toasts) -Push
  6. Google Voice -Push
  7. Skype (if it exists for Toasts, and tiles) - Push
  8. Stock Updates (toasts) - Pull, 15 minutes.
  9. A Financial Planner app (e.g. mint) - Pull, 1 hour.
  10. Traffic Updates - Pull, 15 minutes. Push is only for time sensitive things. News certainly doesn't need to be push.
  • Anonymous
    December 14, 2010
    I am also interested to know the types of apps and categories the product team think the user would pin and enable push. Thanks.