PodSearch

Under the Radar

92: Notifications to Increase Engagement

 

00:00:00 ◼   ► Welcome to Under the Radar, a show about independent iOS app development.

00:00:04 ◼   ► I'm Marco Arment.

00:00:05 ◼   ► And I'm David Smith.

00:00:06 ◼   ► Under the Radar is never longer than 30 minutes, so let's get started.

00:00:10 ◼   ► So today we wanted to talk a little bit about the ways in which you can motivate your users

00:00:17 ◼   ► to come back to your app, and the situations and scenarios where you might do that in an

00:00:23 ◼   ► active way or in a passive way, and kind of some of the implications for that.

00:00:28 ◼   ► Because I often find personally, this is an area that I have a lot of sort of hand-wringing

00:00:33 ◼   ► about, because there's this one part of me that thinks, "I want to do everything I can

00:00:39 ◼   ► to get my users back into my app."

00:00:41 ◼   ► In many ways, my business is largely supported by advertising, and so the more I can get

00:00:48 ◼   ► people into my app, the better my business does.

00:00:50 ◼   ► But on the flip side, I also want to make respectful apps.

00:00:53 ◼   ► I want to make apps that I enjoy using, that I hope my customers enjoy using, and so I

00:00:59 ◼   ► want to bring them back into my app for the right reason.

00:01:03 ◼   ► And this has all come to the surface recently for me, because the next major version of

00:01:08 ◼   ► Podometer++ is all geared around the concept of achievements and badges, and so as you

00:01:16 ◼   ► walk so many steps, you earn badges as you go.

00:01:20 ◼   ► So you get a badge for when you had a 20,000-step day, good job, you get a badge and achievement

00:01:26 ◼   ► in the app.

00:01:28 ◼   ► And I built the feature out for just showing and displaying those badges, but then you

00:01:33 ◼   ► get to run into the question of, "How should I show this to people?

00:01:39 ◼   ► As soon as you earn a badge, should I pop up a notification that says, 'Hey, you earned

00:01:43 ◼   ► a badge, come and check it out in Podometer++.'"

00:01:48 ◼   ► And I could.

00:01:49 ◼   ► In a weird way, it almost seems to be the trend.

00:01:54 ◼   ► If you take a look at the Apple Watch, it is the chattiest thing by default with notifications

00:01:59 ◼   ► for things like this.

00:02:01 ◼   ► Breathe, David.

00:02:02 ◼   ► You have to stop and breathe.

00:02:03 ◼   ► Yeah.

00:02:04 ◼   ► Take a minute, stop and breathe.

00:02:05 ◼   ► There's all the coaching ones that are like, "Great job starting off today.

00:02:09 ◼   ► You've already gotten a half-year move goal.

00:02:11 ◼   ► Keep it up!"

00:02:12 ◼   ► And it can get so chatty, and that seems like, from Apple, which is ostensibly a company

00:02:19 ◼   ► to try and imitate.

00:02:20 ◼   ► They do a lot of this, but it never really sat well with me.

00:02:24 ◼   ► And so, in the end, what I did was I tried to be more subtle, and in the app itself,

00:02:31 ◼   ► there's just this nice little glisten, shimmer effect on the badge icon in the top right

00:02:36 ◼   ► corner of the app whenever you have badges you've earned but haven't looked at.

00:02:40 ◼   ► And my hope is that it's a subtle thing that if you open the app, you'll notice because

00:02:45 ◼   ► it moves around a lot.

00:02:47 ◼   ► But it's not going to ever get in your way.

00:02:50 ◼   ► It's not something that I'm trying to...

00:02:52 ◼   ► I'm not asserting that you earning a badge is more important than you seeing your current

00:02:56 ◼   ► step count, which is the core and main feature of the app.

00:03:01 ◼   ► And so, it was kind of an interesting journey to work through because I feel like knowing

00:03:08 ◼   ► when to find that...

00:03:09 ◼   ► When to notify and when not to notify is tricky.

00:03:13 ◼   ► And I think in this particular case, I like where I ended up, but it feels at odds with

00:03:19 ◼   ► the general trend, and that always makes me nervous.

00:03:22 ◼   ► And so, it seemed like something that was worth discussing.

00:03:24 ◼   ► Yeah, definitely.

00:03:26 ◼   ► I think a lot of times we have to, as programmers...

00:03:30 ◼   ► Let's face it, there's a lot of similarities among programmers.

00:03:33 ◼   ► We're usually a certain type of nerd.

00:03:35 ◼   ► And for example, when we want to sell t-shirts for our things, I believe it is the programmer

00:03:41 ◼   ► instinct to sell only black t-shirts.

00:03:44 ◼   ► And that's why there are so many black t-shirts for technical things.

00:03:48 ◼   ► And eventually, I think some people realize that...

00:03:51 ◼   ► Or were told, "Hey, you know what?

00:03:52 ◼   ► The rest of the world exists too beyond just geeks."

00:03:54 ◼   ► And some people want different colors of t-shirts.

00:03:58 ◼   ► And so, in some cases like that, we have to overcome our geek sensibilities to make everything

00:04:03 ◼   ► just black and to offer color to the world because they actually want that.

00:04:10 ◼   ► And there's something to be said for the style of more chatty notifications, more aggressive

00:04:17 ◼   ► notifications to increase engagement in your mobile applications, all these things that

00:04:23 ◼   ► we don't usually like to even think about, let alone talk about or consider.

00:04:29 ◼   ► Some of that is just a style of usage.

00:04:31 ◼   ► Some of that, users actually want.

00:04:34 ◼   ► So in this case, I have had Pedometer++, your app, installed on my phone for a very long

00:04:41 ◼   ► time, probably since it came out.

00:04:43 ◼   ► And usually, it is in a folder on my second screen because usually I don't check it every

00:04:47 ◼   ► day.

00:04:48 ◼   ► However, while I'm on vacation, I'm in a place where I'm doing a lot of walking, tons of

00:04:53 ◼   ► tons of walking.

00:04:54 ◼   ► And so I've been checking it every day now.

00:04:56 ◼   ► The way I used to rely on the Apple Watch's activity rings to close, and I would make

00:05:01 ◼   ► sure I closed those.

00:05:02 ◼   ► Now, I'm making sure I really hit my goals in Pedometer++, in all this walking during

00:05:07 ◼   ► this vacation.

00:05:08 ◼   ► And I was actually just thinking yesterday, before you and I discussed the topic for this

00:05:13 ◼   ► show, before you told me you were thinking about having these notifications, yesterday

00:05:17 ◼   ► I was thinking, you know, it'd be nice to have this app update me throughout the day

00:05:21 ◼   ► in some way if I need a little bit more to reach my goal or something like that.

00:05:25 ◼   ► You know?

00:05:26 ◼   ► And the watch does this too.

00:05:28 ◼   ► But to have, you know, I was literally thinking in my head, requesting a feature that you

00:05:34 ◼   ► just said you weren't sure you wanted to do.

00:05:37 ◼   ► And the fact is that not all of your users will want this.

00:05:40 ◼   ► Just as many of tech podcast listeners and app users happily buy black t-shirts because

00:05:47 ◼   ► we're all nerds.

00:05:48 ◼   ► But there is a portion of your user base that actually not only would not see this as annoying

00:05:54 ◼   ► or spammy, it would actually increase the value of the app to them.

00:05:58 ◼   ► They actually want this.

00:06:00 ◼   ► And it is against so many of our sensibilities to offer a feature like that or to build that

00:06:05 ◼   ► in or especially to do something like enable it by default.

00:06:07 ◼   ► Because let's be honest, if you don't enable these kind of things by default, you might

00:06:11 ◼   ► as well not even build the feature because so few people will use it.

00:06:15 ◼   ► But sometimes that actually is what people want.

00:06:18 ◼   ► And we are so conservative about annoying people or about prompting them with notifications

00:06:25 ◼   ► whose sole purpose is re-engagement with the app rather than like, "This is a fact that

00:06:30 ◼   ► happened."

00:06:31 ◼   ► You know?

00:06:32 ◼   ► It's like when Overcast sends notifications, currently Overcast only sends notifications

00:06:35 ◼   ► for two things.

00:06:36 ◼   ► Only for new episodes of podcasts that you have said, "Notify me about this."

00:06:41 ◼   ► Or if you have gone on the website and said, "Notify me when ads are available for purchase

00:06:46 ◼   ► in this category, I will notify you for that as well."

00:06:49 ◼   ► That's it.

00:06:50 ◼   ► I don't have any notifications in there for things like, "Hey, you have 40 episodes

00:06:56 ◼   ► queued up.

00:06:57 ◼   ► Why don't you think about a time to listen to them today?"

00:06:58 ◼   ► Something like that.

00:07:00 ◼   ► And I probably should consider something like that because that is such a common engagement

00:07:06 ◼   ► thing.

00:07:07 ◼   ► And those things, first of all, it is questionable whether they are permitted in the app review

00:07:13 ◼   ► guidelines.

00:07:15 ◼   ► Technically, anything that is promotional or for marketing purposes is not allowed.

00:07:21 ◼   ► In practice, apps violate that constantly.

00:07:24 ◼   ► Really, really big apps too.

00:07:25 ◼   ► Like apps that Apple definitely would know about and this rule seems to go fairly unenforced.

00:07:31 ◼   ► And the app store violates it sometimes.

00:07:35 ◼   ► This is not a small thing that happens sometimes.

00:07:37 ◼   ► It happens all the time.

00:07:39 ◼   ► And there's also, there's a line to walk between like, "Hey, buy more gems.

00:07:44 ◼   ► They're on sale right now," which I think is annoying.

00:07:47 ◼   ► But also something that might actually provide value to people like, "You're 90% to your

00:07:51 ◼   ► step goal, but you seem to have slowed down in the last couple hours.

00:07:54 ◼   ► Why don't you go take a walk?"

00:07:55 ◼   ► I mean, obviously, there are ways to word this that are a little bit less…

00:08:00 ◼   ► Not, "Hey, get off your butt and get out there."

00:08:29 ◼   ► So that kind of feature, I think, if you want Podometer++ to be more of like an everyday

00:08:39 ◼   ► thing for more people, if you want it to be a thing they check multiple times throughout

00:08:43 ◼   ► the day, I think not only should you do that feature, I think you need to do that feature.

00:08:49 ◼   ► >> Maybe.

00:08:50 ◼   ► I mean, the other thing, the counterpoint, and I definitely appreciate where you're

00:08:53 ◼   ► coming from, and it's lovely to hear that you have a very different view on this than

00:08:57 ◼   ► I do in some ways as a user who wants the feature and me as a developer who's like,

00:09:02 ◼   ► "Hmm, maybe not."

00:09:03 ◼   ► >> Oh, and by the way, I don't know how big your beta is, but because you revealed the

00:09:07 ◼   ► secret about that nice shimmery effect on the badge section on the toolbar, I noticed

00:09:12 ◼   ► that immediately.

00:09:13 ◼   ► I'm like, "Ooh, what's that?"

00:09:14 ◼   ► And I tapped it.

00:09:15 ◼   ► I've never tapped that button before, ever.

00:09:18 ◼   ► I didn't even know badges were in your app.

00:09:20 ◼   ► How long have they been there?

00:09:21 ◼   ► >> They appeared in that beta.

00:09:22 ◼   ► >> Oh, okay, good.

00:09:23 ◼   ► All right.

00:09:24 ◼   ► >> This is the first time you could have seen them.

00:09:25 ◼   ► It's like a button to share your steps with making a little share image.

00:09:29 ◼   ► Now it's this new area for badges.

00:09:31 ◼   ► >> Oh, okay.

00:09:32 ◼   ► Well, but yeah, I saw that button.

00:09:33 ◼   ► I'm like, "Ooh, what's that?"

00:09:34 ◼   ► And I tapped it.

00:09:35 ◼   ► And then I noticed later in the day, I went back to it, and it was still shimmering.

00:09:38 ◼   ► And I thought, "Oh, there is something in here I haven't seen yet or I haven't cleared

00:09:41 ◼   ► it or I haven't marked as red or something."

00:09:43 ◼   ► So I tapped it again.

00:09:44 ◼   ► And at neither point, I was like, "Oh, God, that's so garish.

00:09:47 ◼   ► I wish that app wasn't there."

00:09:49 ◼   ► No.

00:09:50 ◼   ► It's something that's small and subtle, but it kind of gets your attention in a tasteful

00:09:54 ◼   ► way.

00:09:55 ◼   ► So if you look at the tag or the marquee tag in HTML, it's not blinking bright pink and

00:09:59 ◼   ► covering up the part of the app that I want to see, anything like that.

00:10:04 ◼   ► It's a nice little animation shimmer effect on a bar button item.

00:10:07 ◼   ► And that's totally tasteful and within the bounds of reasonable.

00:10:11 ◼   ► And at least in this small testing group of one, it had exactly the intended effect, which

00:10:15 ◼   ► is I noticed this thing and I tapped on it to see what I was missing.

00:10:18 ◼   ► >> Yeah.

00:10:19 ◼   ► And I think that was my intention with that.

00:10:21 ◼   ► And I'm glad it worked in that regard.

00:10:25 ◼   ► And I think this discussion is interesting because it reminds me of the very first time

00:10:29 ◼   ► I went to WWDC.

00:10:32 ◼   ► And I went to one of the user interface design labs, which are those really hard to schedule

00:10:39 ◼   ► things at WWDC where back then, you couldn't do it in the app even.

00:10:43 ◼   ► You had to get up early in the morning, line up outside of Moscone West.

00:10:48 ◼   ► As soon as they opened the door, you'd run into the place where you could sign up.

00:10:52 ◼   ► And they had 40 for the day and the first 40 people got design reviews.

00:10:58 ◼   ► And I remember I went to one of those.

00:11:00 ◼   ► And in general, the guy was very helpful and gave me a lot of feedback on my app.

00:11:04 ◼   ► But one of the things he said that stuck with me and has still stuck with me is this -- he

00:11:08 ◼   ► said one of the things that's important to find in your app is having an area or a purpose

00:11:15 ◼   ► that gives somebody new value every time they open the app.

00:11:21 ◼   ► So making sure that there's a reason for them to come back to it on a regular basis.

00:11:27 ◼   ► And with an app like Podometer, in some ways, it's like just the fact that the step counts

00:11:32 ◼   ► are changing is sort of that.

00:11:34 ◼   ► And the impression I get from a lot of my users is that there is this natural habituation,

00:11:41 ◼   ► if that's a word, of use of the app where if you are somebody who starts to care about

00:11:46 ◼   ► your steps, you will just naturally start opening the app on a regular basis to check

00:11:50 ◼   ► your step counts.

00:11:52 ◼   ► And in many ways, my goal with this other version is to -- rather than pulling you into

00:11:58 ◼   ► the app with a notification to try and be like, "Hey, you earned a badge.

00:12:00 ◼   ► Good job," is to in some ways create this curiosity about, you know, "Hey, did I get

00:12:07 ◼   ► there?"

00:12:08 ◼   ► And especially because the nature with a lot of badges kind of stuff is once you've had

00:12:13 ◼   ► -- and most users will probably download this update -- have an initial wave of badges that

00:12:18 ◼   ► they earn in terms of, you know, because it takes into account your past history.

00:12:22 ◼   ► So if you've had a day with 40,000 steps, like, "Great job, you earned that badge,"

00:12:27 ◼   ► or you've had a long streak, or your lifetime steps have crossed over any of the boundaries,

00:12:32 ◼   ► you'll have this big swath of badges.

00:12:34 ◼   ► And hopefully that's exciting and cool and is useful when the app comes out and can make

00:12:38 ◼   ► people excited and want to show people.

00:12:41 ◼   ► But then from that point on, there's actually not going to be that many badges that you

00:12:45 ◼   ► will earn on a regular basis from that point on, just because the nature of having it be

00:12:52 ◼   ► an achievement that you work towards -- you know, like right now I'm working towards

00:12:55 ◼   ► my 10 million step badge, which is currently the highest lifetime step badge, which, you

00:13:02 ◼   ► know, fair enough, I've been using the app for a very long time.

00:13:05 ◼   ► But I think I'm something like 300,000 steps away from that.

00:13:11 ◼   ► It's going to take me a while to get that 300,000 steps.

00:13:16 ◼   ► And so it's not something that's necessarily something I'm going to check on a regular

00:13:20 ◼   ► basis, but in the weird way in the back of my mind, now that this feature is there, I'm

00:13:27 ◼   ► always kind of hoping that there'll be this shimmer in the top right corner the next time

00:13:31 ◼   ► I open the app, that it creates that sense of somewhat excitement or curiosity, which

00:13:38 ◼   ► is different than if I just know whenever I hit it, I'm going to get a notification.

00:13:43 ◼   ► Like I have this feeling of I'm going to go back and check on a regular basis.

00:13:47 ◼   ► But yeah, it's a funny tension, though, because I appreciate the way you're coming

00:13:54 ◼   ► from, for like, you can get into such -- it can be so useful to do this kind of notification

00:13:59 ◼   ► stuff and to do this kind of more coaching-based behaviors.

00:14:04 ◼   ► But at the same time, I also kind of just want people to keep opening the app on a regular

00:14:08 ◼   ► basis because that's not there if you care about it.

00:14:11 ◼   ► If you're like -- if you are any highly engaged user of the app, you're just going

00:14:16 ◼   ► to be doing it anyway.

00:14:18 ◼   ► And maybe I'm losing some of the attention of the less engaged users.

00:14:22 ◼   ► But in a weird way, I'm okay with that.

00:14:24 ◼   ► I don't know.

00:14:26 ◼   ► I'm probably not making a good choice necessarily, but it's just the thing that feels more

00:14:30 ◼   ► right to me.

00:14:32 ◼   ► I'm curious, do you do things like measure monthly active users in any way?

00:14:39 ◼   ► I use Fabric still, and so it measures it for me.

00:14:43 ◼   ► Because the reason I ask is, I have always found that whenever I start measuring anything

00:14:50 ◼   ► -- and this is not a thing I invented, this is a very common thing -- whenever I start

00:14:55 ◼   ► measuring anything, I do start caring about that thing and I start trying to optimize

00:15:01 ◼   ► for it.

00:15:02 ◼   ► And this happens with lots of things that get measured as part of jobs or work or even

00:15:08 ◼   ► just hobbies.

00:15:09 ◼   ► That's one of the reasons why it's so hard to evaluate programmer productivity with things

00:15:13 ◼   ► like lines of code written or things like that.

00:15:16 ◼   ► And as I started evaluating Overcast in this way, when I built my own analytics to replace

00:15:22 ◼   ► Fabric a few months back and I started measuring monthly active users for really the first

00:15:27 ◼   ► time -- and anybody who does this sees two things.

00:15:32 ◼   ► A, way more people install the app than use the app.

00:15:37 ◼   ► B, lots of people use the app first and then stop using it and you just kind of lose them.

00:15:43 ◼   ► They just kind of, you know, they don't really stick.

00:15:47 ◼   ► And so it's very, very tempting for anybody measuring any kind of engagement type activity

00:15:51 ◼   ► in their app like this to make changes like adding notifications or sending out email

00:15:57 ◼   ► reminders or things like that to make these changes to remind people to get back into

00:16:01 ◼   ► the app.

00:16:02 ◼   ► And that feels so spammy to me.

00:16:04 ◼   ► Like I really don't like that.

00:16:05 ◼   ► However, I do think, you know, in areas like this, I think it is possible and reasonable

00:16:13 ◼   ► that not every app will have a way to do this, but that many apps have an opportunity here

00:16:19 ◼   ► to remind people to come back to the app in a way that doesn't just feel like outright

00:16:23 ◼   ► spam.

00:16:24 ◼   ► It's a very, very hard line to walk.

00:16:25 ◼   ► And again, not every app is going to have something like this that they can do or that

00:16:30 ◼   ► would make sense to do.

00:16:31 ◼   ► I always think of like James Thompson's Pcalc app, which is a wonderful calculator.

00:16:35 ◼   ► And James is, he is so devoted to this app and these platforms.

00:16:39 ◼   ► He adds every feature he possibly can.

00:16:41 ◼   ► Like whenever iOS enables something new, like now you can change your calculator's icon

00:16:45 ◼   ► to like all sorts of wonderful little icons and iOS finally added that option.

00:16:49 ◼   ► He has like a version of it for Apple TV, stuff like that.

00:16:52 ◼   ► And I always think of like an app like that, a calculator, a utility app.

00:16:57 ◼   ► What would that do with some of these tricky behaviors or engagements or in-app purchase

00:17:01 ◼   ► options?

00:17:02 ◼   ► And it's hard.

00:17:03 ◼   ► And it reminds me like so many apps, it's hard to come up with useful ways you can either,

00:17:09 ◼   ► you know, have in-app purchases to help you achieve a more successful business model or

00:17:14 ◼   ► a sustainable business model or, you know, things like how do you use notifications to

00:17:20 ◼   ► increase engagement.

00:17:21 ◼   ► Sometimes it's just really hard for the app.

00:17:24 ◼   ► Sometimes there isn't an option like, you know, what's Pcalc going to do?

00:17:26 ◼   ► Like bother you, you know, every, every like, you know, few days saying, hey, need any math

00:17:32 ◼   ► to do?

00:17:33 ◼   ► You haven't done any math in the last few days.

00:17:34 ◼   ► I can help you out there.

00:17:35 ◼   ► Like it's just so many apps are not going to have a reasonable way to do this that doesn't

00:17:40 ◼   ► just seem like pointless spam to the user.

00:17:43 ◼   ► So when you have something like that, like you do with these fitness apps where you have

00:17:47 ◼   ► like as you said, like the coaching behavior goal setting, you can notify people about

00:17:52 ◼   ► their progress towards a goal and help them reach it if they are about to not reach it

00:17:55 ◼   ► or congratulate them when they do reach it.

00:17:59 ◼   ► That is actually valuable for this type of app in a way that is way more, way more clearly

00:18:05 ◼   ► valuable and not spammy than most apps have the opportunity to do.

00:18:09 ◼   ► So it would almost be a waste for you not to do features like this.

00:18:13 ◼   ► The only reason I think you wouldn't want to do a feature like this is either if Apple

00:18:18 ◼   ► bans it, which they haven't and likely won't, or if you just don't want to justify putting

00:18:23 ◼   ► this much time into this app, like if, if the app for you was otherwise pretty much

00:18:27 ◼   ► done and you wanted to invest the time in a different app.

00:18:29 ◼   ► But as long as you're investing time into building features for this app, that feature

00:18:33 ◼   ► seems like low hanging fruit and it seems like a win all around.

00:18:36 ◼   ► Anyway, we are sponsored this week by ZOJO, X-O-J-O, ZOJO.

00:18:42 ◼   ► You can go to ZOJO.com/Radar to learn more.

00:18:46 ◼   ► ZOJO is a cross platform development tool for creating native apps for the desktop,

00:18:51 ◼   ► mobile, web, and raspberry pi even.

00:18:53 ◼   ► ZOJO currently supports Mac OS, Windows, Linux, iOS, and even coming soon, Android.

00:18:59 ◼   ► With ZOJO you can write just one version of your app, say for example on the Mac, and

00:19:03 ◼   ► all you do is check a check box and you can have a completely native Windows version as

00:19:06 ◼   ► well.

00:19:07 ◼   ► ZOJO uses native controls so your app looks at home on every platform and you'll be

00:19:12 ◼   ► able to build these apps 10 times faster so you save tons of time and money.

00:19:16 ◼   ► ZOJO is great for everyone from newbies to professional developers.

00:19:20 ◼   ► And ZOJO is currently used by over 300,000 developers worldwide from students all the

00:19:25 ◼   ► way up to Fortune 500 companies.

00:19:27 ◼   ► Go and take a look at their site and you will see just how many companies that you know

00:19:31 ◼   ► and recognize use ZOJO.

00:19:33 ◼   ► It's free to use and licenses are required to build stand alone applications.

00:19:37 ◼   ► You can try it out, you can see how it goes.

00:19:38 ◼   ► Go to ZOJO.com/radar, that's X-O-J-O dot com slash radar to learn more and you can get

00:19:45 ◼   ► 20% off any license by using code radar at checkout.

00:19:50 ◼   ► Once again ZOJO.com/radar and use code radar for 20% off any license.

00:19:54 ◼   ► Thank you very much to ZOJO for supporting this show and all of Relay FM.

00:19:58 ◼   ► So you're doing a very good job of turning me a little bit on this, I'll say.

00:20:06 ◼   ► The things that come to mind though that are kind of interesting as I try and think through

00:20:10 ◼   ► if I were to go down this road of like being a bit more chatty or a bit more engaged.

00:20:16 ◼   ► I think first is the thing that I'm realizing as you're describing the situation is in many

00:20:21 ◼   ► ways I am reticent to do this because of the experience I've had in other applications

00:20:28 ◼   ► that were not respectful in their use of something like this.

00:20:34 ◼   ► And in some ways as I'm just as I'm sitting here thinking about it in some ways it's nice

00:20:39 ◼   ► to think of this as a potential opportunity as a result.

00:20:44 ◼   ► It's like the doing it in a respectful, thoughtful way that is clearly not spammy or problematic

00:20:53 ◼   ► in those kinds of ways is potentially an advantage, is potentially something that would be distinctive

00:20:59 ◼   ► and attractive to users.

00:21:03 ◼   ► And I should not have in my mind that just like doing something like this is always sketchy

00:21:11 ◼   ► just because other developers have done something like this in a sketchy way.

00:21:16 ◼   ► It doesn't preclude me from finding the right way to do this.

00:21:20 ◼   ► And in many ways I think that's something that in the back of my mind as I'm developing,

00:21:24 ◼   ► that's like my goal in most things is to try and find that respectful, thoughtful approach

00:21:30 ◼   ► to something that is potentially different than a mainstream competitor, like a big,

00:21:37 ◼   ► larger company.

00:21:39 ◼   ► So that's, I think, A, is good to keep in mind.

00:21:41 ◼   ► And then two, something that is interesting that's probably worth unpacking slightly just

00:21:47 ◼   ► from a technical perspective is the interesting thing with notifications on iOS is that they

00:21:51 ◼   ► are always opt-in.

00:21:54 ◼   ► Unless you're Apple, in which case you don't have to have users opt into notifications,

00:22:00 ◼   ► which is a side note.

00:22:02 ◼   ► But in our applications we have to have users opt into them.

00:22:06 ◼   ► And so the interesting thing as I think about this is like earlier you made the very valid

00:22:11 ◼   ► point that having something like this not on by default drastically diminishes its impact

00:22:19 ◼   ► because very few people proportionally will turn it on.

00:22:22 ◼   ► And it's tricky though with notifications because in order to enable it, I have to pop

00:22:28 ◼   ► up a modal blocker that says, "Would you like to allow this application to send you notifications?"

00:22:34 ◼   ► If I don't do that, I can't show you a notification.

00:22:38 ◼   ► So at some point I have to show this to you.

00:22:42 ◼   ► Now if it's not enabled by default, then I would just have this be in the settings app

00:22:48 ◼   ► to be like an area that was just like coaching and we'll have a little description of what

00:22:52 ◼   ► coaching would be and then like a switch that you would turn on.

00:22:58 ◼   ► At that moment when you first turned it on, it would pop up the blocker at that point

00:23:01 ◼   ► and say, "Hey, in order for me to send you these coaching prompts, you need to give me

00:23:07 ◼   ► permission to do this," which feels very natural.

00:23:10 ◼   ► But if I wanted it to be enabled by default, what I would have to do is presumably the

00:23:14 ◼   ► first time you install the app probably or very shortly thereafter just sort of blindly

00:23:21 ◼   ► pop up this notification that says, "Hey, this app can send you coaching stuff.

00:23:27 ◼   ► Do you want to say yes?

00:23:28 ◼   ► Would you like me to do that or not?"

00:23:30 ◼   ► And that's, I think, in many ways, if anything, the thing that I get more stuck on, especially

00:23:35 ◼   ► because the app already unfortunately has one of those right now because when you first

00:23:40 ◼   ► install the app, it pops up a notification that says, "Would you give me permission to

00:23:43 ◼   ► access your motion and fitness data?"

00:23:45 ◼   ► Because the app is completely useless without turning that on.

00:23:50 ◼   ► And so it's interesting because I don't think I would ever feel good about having it always

00:23:54 ◼   ► on by default because I would have to show that notification as part of the onboarding

00:24:01 ◼   ► process unless then it would go off.

00:24:03 ◼   ► So you could be like, "Okay, well then that's when you start doing the big walkthrough thing

00:24:07 ◼   ► where the first time you launch the app, it kind of has this little walkthrough thing

00:24:11 ◼   ► where it's like, 'Hey, this app needs your motion data.

00:24:15 ◼   ► It's about to ask you for it.

00:24:16 ◼   ► Okay.'

00:24:17 ◼   ► And then it asks you for it.

00:24:18 ◼   ► And then the next page is like, 'Hey, this has coaching.

00:24:21 ◼   ► Would you like coaching?'

00:24:22 ◼   ► And you kind of have the user fill out a questionnaire on their first run experience, which I don't

00:24:28 ◼   ► love either.

00:24:29 ◼   ► But anyway, these are just some funny things.

00:24:33 ◼   ► As you convince me to explore this more and not just discount it offhand, these are the

00:24:37 ◼   ► kind of things that I start to then think about because there's some interesting technical

00:24:40 ◼   ► challenges to going down this road as well.

00:24:43 ◼   ► What about if you, instead of naming it "coaching" necessarily and just asking, "Do you want

00:24:48 ◼   ► coaching?"

00:24:49 ◼   ► Like, "I think people might not get what that is or why they would want that."

00:24:53 ◼   ► How about you make it a two-step process.

00:24:55 ◼   ► You have step one, "Please enable your motion."

00:24:57 ◼   ► Prompt, done, okay.

00:24:59 ◼   ► And then second screen is, "What would you like your goal to be, your daily goal?"

00:25:05 ◼   ► And then on that same screen, you can have an option that says, "Would you like to

00:25:10 ◼   ► be notified about the progress you're making towards your daily goal?"

00:25:16 ◼   ► And then that prompts them for notifications.

00:25:18 ◼   ► Yeah, it's like it's doing it in that kind of having an onboarding process.

00:25:23 ◼   ► And then for existing users, on the first run of the new version, you prompt, put up

00:25:27 ◼   ► a box saying, "Would you like to review your daily goal?"

00:25:30 ◼   ► And then on that screen, have the...

00:25:35 ◼   ► Right now, this is something that, again, in a way that would make sense as a feature

00:25:39 ◼   ► for a user, you might want to, similar to what the Apple Watch does, you might want

00:25:44 ◼   ► to have periodic prompts to the user of like, "You've been hitting your daily goal every

00:25:49 ◼   ► day and exceeding it by 30% for a while.

00:25:52 ◼   ► Do you want to maybe increase it?"

00:25:54 ◼   ► Or if they never hit their daily goal, you can prompt them to say, "Do you want to

00:25:57 ◼   ► modify your goal?"

00:25:58 ◼   ► Maybe lower.

00:25:59 ◼   ► You've got to word it carefully, obviously, to not show like, "Hey, you're kind of

00:26:03 ◼   ► lazy."

00:26:04 ◼   ► But there's a way to do that where it is part of a feature that's actually helpful.

00:26:09 ◼   ► And the Apple Watch shows such a great example of this.

00:26:12 ◼   ► And there's a lot of people out there who don't have Apple Watches but do have iPhones.

00:26:16 ◼   ► So this could really be a big help for them.

00:26:21 ◼   ► And this could bring a lot of the value of the Apple Watch with its daily fitness rings.

00:26:25 ◼   ► It can bring a lot of that value to iPhone users who don't have the watch.

00:26:29 ◼   ► And so I feel like if you roll this in as just like a couple of minor prompts, like

00:26:35 ◼   ► periodic goal change prompts, depending on their on performance, and then also like,

00:26:39 ◼   ► "Do you want to be notified of your progress with this goal that you're setting or modifying

00:26:43 ◼   ► on in this screen?"

00:26:44 ◼   ► Simple as that.

00:26:45 ◼   ► Then you have, then you cover existing and new users.

00:26:47 ◼   ► I mean, this is, I'm just spit balling here.

00:26:49 ◼   ► I have no thought about this at all besides what's happened on the air right now.

00:26:53 ◼   ► But I thought about that as you were saying, like, "Oh, this could be like kind of one

00:26:56 ◼   ► thing."

00:26:58 ◼   ► Because you do have to think so hard when you're designing apps about wording of things,

00:27:03 ◼   ► when you ask for permission to do things like notifications, you know, how you ask, when

00:27:08 ◼   ► you ask how it's presented to the user, what kind of selling proposition is being shown

00:27:13 ◼   ► to them.

00:27:14 ◼   ► Like, if you just ask for notifications kind of like the dumb way, like in your app to

00:27:18 ◼   ► finish launching method, and so that way, like the very first time they launch the app,

00:27:23 ◼   ► it just asks.

00:27:24 ◼   ► They don't know yet why you want notifications.

00:27:27 ◼   ► Like you haven't actually shown them why.

00:27:29 ◼   ► And so you will probably have a lower accept rate or lower opt in rate unless you have

00:27:34 ◼   ► shown them a good reason why.

00:27:36 ◼   ► But if you have this, you know, you already have that problem with the motion settings,

00:27:40 ◼   ► you already have a system in place to kind of like, you know, the first run experience

00:27:43 ◼   ► to manage that, it would not be that much work to add a second screen to that, that

00:27:47 ◼   ► just says, "All right, how about your goal?

00:27:48 ◼   ► What kind of goal do you want?"

00:27:49 ◼   ► And then, you know, roll it in with that.

00:27:51 ◼   ► >> Yeah, maybe.

00:27:53 ◼   ► And it's, yeah, it's interesting.

00:27:54 ◼   ► I mean, that's why I'm glad we talked about it on the show.

00:27:57 ◼   ► Because it's these types of things where I make a choice, and then I don't feel confident

00:28:03 ◼   ► in the finality of that.

00:28:04 ◼   ► And it's certainly helpful, I think, to talk it through.

00:28:06 ◼   ► Because there's a lot of these, you know, there's so many different options.

00:28:08 ◼   ► And I think, too, maybe as a closing thought, like the thing that comes to mind is how,

00:28:14 ◼   ► in many ways, we have to make choices about the sort of the scope of our application and

00:28:21 ◼   ► the type of customers we want, in the sense that, do I, you know, one of the things that

00:28:26 ◼   ► in the back of my mind, I then have to decide is, do I want to have an app with lots and

00:28:31 ◼   ► lots of slightly interested users, or do I want to have optimized for fewer fanatical

00:28:39 ◼   ► users, for example.

00:28:41 ◼   ► And these are the kinds of things that go on in the back of my mind when I try and think

00:28:44 ◼   ► through features like this.

00:28:45 ◼   ► Because in some ways, I think my general, my knee-jerk reaction is always to have, I

00:28:51 ◼   ► would rather have fewer, very, very passionate, engaged users than lots and lots of users

00:28:56 ◼   ► who don't really care.

00:28:58 ◼   ► Not with the paid up front price you don't.

00:29:01 ◼   ► Yeah, well, this app's free, so.

00:29:02 ◼   ► Oh, that's right, it is free.

00:29:04 ◼   ► It's just at the tip jar, right?

00:29:05 ◼   ► Yeah, it's just at the tip jar.

00:29:07 ◼   ► So it's interesting to just try and think through what kind of users I want, and then

00:29:12 ◼   ► how do I want to treat those users.

00:29:14 ◼   ► And I think as long as I do that respectfully, then, you know, I'll probably be in good shape.

00:29:18 ◼   ► But it's just, it is a good reminder of all the different things that we have to balance,

00:29:21 ◼   ► you know, to make our apps be the things we want them to be.

00:29:24 ◼   ► I think you're pretty respectful.

00:29:25 ◼   ► All right.

00:29:26 ◼   ► I hope so.

00:29:27 ◼   ► We're out of time this week.

00:29:28 ◼   ► and we'll talk to you next week. Bye.