We’re going to do an experiment.
We’re going to take all of the various “best practices” given online for the best times and days to send push notifications for an eCommerce app, and we’re going to compare them against actual data for an actual app with over 3 million actual users.
How do you think they’ll do?
*Note: We're only using data from a single app here, in order to keep the illustration simple, but we've seen these same patterns across all of our customers, which represent hundreds of millions of users across dozens of countries.
What are the best days and times to send a push notification for an eCommerce app?
Well, it depends on who you ask.
Here’s a super quick table I built showing the “best times to send push notifications for an eCommerce app” from all of these different tools and vendors (For the record, I think IZooto, SmartPush, and Push Engage were sharing notes. 👀)
…and here’s a table showing what they recommend as the “best days to send a push notification for eCommerce apps”:
Why don't these match? How did they come up with this data?
Well, they all pretty much tell you how they figured it out —
They look at historically observed data, and position messages around times that have worked well in the past.
- Braze says they “automatically calculate each user's optimal send time based on a statistical analysis of their past interactions with your app and messaging.”
- PushWoosh says their “new Optimal time feature calculates the best time to send push notifications to each user individually based on their previous behavior.”
*Note: We’ve found that using historical user behavior is actually a horrible way to drive incremental revenue…and this has been confirmed to us by many apps who’ve tried it. Think of it this way, if your user habitually visits your app on Tuesday evening, sending them a message on Tuesday late afternoon won’t actually drive incremental activity. This user was likely to visit anyway. Your historical data showed you that.
Most engagement platforms just pick this method because it’s easy and it makes their metrics look good. 😉
So, how do these recommendations map to our specific app?
Pretty crappy, actually.
Here’s a map of “engagement events” on our app on a representative week.
Notice that our app in question saw the most activity around 9:00pm to midnight every night:
So I guess Airship came the closest, but there are still a couple major issues with this approach:
1. Engagement Time ≠ Revenue Time
Here’s a chart of the actual revenue generated during each of those same time windows.
Now notice that, while most people enjoy doomscrolling through products at night, serious buying decisions most often occur much earlier in the day:
Airship’s approach might bring us more window shoppers, but sending messages earlier in the day has the potential to bring us more actual revenue.
2. The “best time” < All the times
Even if this app were to pivot and focus their messaging on their most profitable time slot (Monday at noon), the value of the entire table is worth $3,937,933 more than the measly $200k from purchases on Monday at noon.
Translation: This app would be missing out on almost $4 MILLION DOLLARS if they only optimized their messages for a single “best time!!!"
In fact, even if they managed to hit their best revenue timeslot for each day, they would still miss out on over $3,350,000 in potential revenue.
Ok, but what if you managed to find the absolute ideal time that will maximize revenue for every one of your individual users.
You win, right?
…again, not so fast.
In actuality, these preferences are really just a snapshot in time — what worked one week won’t work the next — and this is driven by a number of factors ranging from the changing of the seasons to new users constantly joining your app to external world events that we can’t control.
- 11 pm might be a great time to send messages…until back-to-school season starts back up.
- Monday morning might be a great time to send messages…until there’s a holiday break.
- Tuesday evenings might be an amazing time to send messages…until little Timmy is done with his Tuesday-evening soccer games, so dad has to make dinner instead of just sitting in the bleachers playing on his phone.
Indeed, here’s a snapshot of what the data looks like for our app in question for 4 consecutive weeks:
How to read these graphs:
- The columns represent different timeslots in 3-hour increments each day
- Reading across each horizontal row reflects the timing preference of a particular cohort.
- The bigger the dot (the higher the row), the more users resonate with that particular timeslot.
So the largest cohort of users in the graph from the week of 17 July 2023 are most receptive to messages on Fridays (across all times), while the largest cohort of users in the graph from 24 July 2023 are most receptive to messages on Saturdays (across all times).
Notice the changes from week to week:
- Some weeks, Thursdays are completely dead. On other weeks, Thursdays are a decent option.
- The largest cohort completely shifts preferred days (From Friday to Saturday to a combo of Friday and Saturday to Wednesday)
- Fridays are usually best…but not always.
…and if this is just the swing across four weeks, just imagine what this same table will look like in six months.
Oh wait, I have that too. 😅
Here’s the same table for the same app but from December 2022:
Notice how Fridays were pretty dead back in December. Tuesdays were much more popular that week.
So, not only do we have to know the best time for each user last week, but we have to also predict when that best time will be next week (because they’re rarely the same).
So, what have we learned?
Well, for starters, we learned that, just like every other article says, finding the best time to send a message can result in a positive increase in revenue, but, unlike every other article says, the answer is not to “test to find the optimal time for your app.”
You just can’t test every possible time using A/B testing methods (…and even if you could, your answers would be expired by the time you got them).
The real answer is to use a system that’s already been designed to find these ideal times — per user — and then act on them.
The real answer is Aampe.
Cover image by macrovector on Freepik