Page MenuHomePhabricator

Estimate push notification volume
Closed, ResolvedPublic

Description

We need an estimate of the messaging traffic volume (on average and during spikes) that the push infrastructure will need to handle. This will depend the number of users expected to opt in and the kinds (and frequency) of events we need to support.

Some notes:

Apps
  • Android active devices (as of 09 Mar 2020): 7.7M
  • iOS montly active users (as of 18 Feb 2020): 3.8M
  • Expected opt-in rate (iOS): 43.9% [1]
  • Expected opt-in rate (Android): ~50%
Web
  • Pageviews (Feb 2020): 20B [2]
  • Edits (Feb 2020): 44M [2]
  • User edits (non-bot) (Feb 2020): 21M [2]
  • Expected opt-in rate: ~10%
  • The volume will depend on how many users we decide to prompt, which will depend on in what situation(s) we do so.

[1] https://www.accengage.com/press-release-accengage-releases-the-push-notification-benchmark-2018/
[2] https://stats.wikimedia.org/#/all-projects

Event Timeline

Hi @Charlotte and @JMinor, I'm wondering if you could provide some input toward estimating the volume of push notifications to be handled by this infrastructure.

  1. Do the estimated app user opt-in rates for push notifications that are given in the task description ring true to you?
  2. About how many push notifications would you like to see the average opted-in user receiving, in an ideal world? (Or is this entirely dependent on the user's level of on-wiki activity?)

@Mholloway - Opt-in rate for Android more likely to be ±50% on the high end within the app (the numbers given in the reference are for ppl who have enabled any notifications at all on-platform). The ones for iOS and web seem sensible.

We would like to enable sensible rate limiting - we can talk about what those caps on volume will be. For Echo notifications about e.g. Watchlists, we can take a benchmark from the current web/email notifications. That should give us a robust estimate of volume. For brand-new types of notifications that will be push-only, e.g., re-engagement, we would not likely send more than 1-2 per week.

@Mholloway -- I did some quick arithmetic to try to guess what would be in store for web. I broke this out into "newcomers" (our team's top priority), and "all editors", which could be in the farther future. In other words, we have specific things in mind for increasing newcomer retention. But there are some very clear use cases for experienced editors -- like getting push notifications for Echo.

Newcomers

  • There are 300,000 new accounts per month across all Wikipedias.
  • Apparently web notifications have a 10% opt-in rate. [1]
  • Let's say we want to give all those opt-ins three notifications total. That's 90,000 notifications per month.
  • Then for newcomers who really engage with our features and who opt in (about 5%), they may get many more notifications. Let's say 15,000 newcomers per month get like 10 notifications each. That's another 150,000 notifications.
  • Total would be 240,000 notifications.

All editors

  • I think there's something like 150,000 active editors per month across the projects. This number is knowable, but I don't have it handy.
  • Let's say 10% opt-in to web notifications.
  • And let's say those 15,000 users want push notifications for everything that comes over Echo. Maybe that averages out to 10 per month per user. But there would be users who get hundreds. (this number is knowable from the Echo database tables).
  • So let's call that 200,000 notifications a month.

Does this sound like in the right ballpark? I think this would only add up to like 10 per minute or something (with different volumes at different parts of the day).

[1] https://onesignal.com/blog/increase-opt-in-rates-for-push-notifications/

Thanks for those estimates. I'll do some digging in the Echo tables and see what I can gather there as well.

Pulling this back to doing since there is some promised follow-up in T247438#6012828 that I haven't actually done.

Following up on my long-ago promise of DB digging, it looks like there were a little over 640k Echo notifications generated over the course of April 2020 on enwiki, which is the wiki I'd assume produces the highest volume of notifications. I'd call that a pretty manageable load, especially given that we expect about half of users (on apps) not to opt in.

mysql:research@dbstore1005.eqiad.wmnet [enwiki]> select count(1) from echo_notification where notification_timestamp >= 20200401000000 and notification_timestamp < 20200501000000;
+----------+
| count(1) |
+----------+
|   641859 |
+----------+
1 row in set (32.79 sec)