Hi everyone,
The Mobile Apps Team met to discuss some of the technical aspects of
notifications and how they can be served in the apps. This email summarises
the technical aspects of the discussion as seen through the lens of product.
Broadly speaking, there are two classes of notifications:
- Local / pull. These are triggered on some kind of schedule or timer
(e.g. every X minutes). They may, if they choose to, retrieve (i.e. pull)
data from an API call when they are triggered, and present information
retrieved from that API to the user. These are "simple" to implement as
they have few server-side dependencies.
- Remote / push. These notifications hook up to services (e.g. Google
Play Services) to retrieve information and only trigger when they
information is received (i.e. pushed) to them. The nature of the
notifications means they can typically be more personalised. These are
"hard" to implement, as there is server infrastructure required to push the
information to the device.
>From a UI perspective, there is absolutely no difference between a local
and remote notification. This distinction is not presented to the user, so
it is totally irrelevant to them.
In terms of evaluating the success of notifications, it is important to
consider that there are three interaction patterns that a user can have
with a notification:
- Engage. The user taps on the notification and is directed to wherever
the notification wants to direct them to.
- Dismiss. The user dismisses the notification and it's not shown to
them any more.
- Languish. The user sees the notification, but neither engages with it
nor dismisses it.
So, it is possible to build metrics around notifications. You can say "Of
the X users we served this notification to, Y engaged with it, so we have a
Y/X engagement rate". However, it's important to take these interaction
patterns with a pinch of salt, for a variety of reasons.
- Firstly, do not assume that dismissing a notification means that it
was ineffective, as that depends on the intent of the notification; if the
notification was a reminder, then dismissing it means the user was
successfully reminded! The exact metric used to evaluate the success of a
notification will have to be decided on a case by case basis.
- Secondly, on iOS, users may heavily customise the way notifications
are presented to them which will mould the way they interact with them.
- Thirdly, it is difficult on a technical level to distinguish between a
"dismiss" and a "languish", and in fact on iOS there is often no
distinction between these modes anyway.
That's all I have for now. Our initial discussion was very exploratory.
More to come. :-)
Thanks,
Dan
--
Dan Garry
Associate Product Manager, Mobile Apps
Wikimedia Foundation