PodSearch

Under the Radar

304: Onboarding

 

00:00:00   Welcome to Under the Radar, a show about independent iOS app development. I'm Marco Arment.

00:00:05   And I'm David Smith. Under the Radar is usually not longer than 30 minutes, so let's get started.

00:00:09   So everyone, welcome to our podcast. Please stick around until the very end. But first, we need your permission for something.

00:00:16   We're talking about onboarding today. That was a terrible joke, I'm sorry.

00:00:20   We're talking about getting people into the app and getting your first run experience polished and getting what you need from people, whether it's permissions or approvals or access prompts, and then getting people to actually get into your app from installing it.

00:00:37   And this topic, it's one of those relatively boring to talk about or even think about things of how do you improve your onboarding? It's not super fun, usually, because it's a part of the app that, by definition, most people only see once for a second or two, maybe, and then they move on.

00:00:58   And so it's not part of the core day-to-day experience of the app. But it is extremely high impact for your business because how many people you can get to go from installing your app, which is hard enough to get people to install your app, but then from installing it into even just the basics of using it.

00:01:20   Not even talking about long-term retention, just the basics of using it. How do you get them from installing the app into first useful experience?

00:01:30   Yeah. And I think it's vitally important because these numbers are—I've been thinking about this a lot recently in Pedometer++ because of a variety of things I'm trying to optimize my onboarding. And I added some analytics to see how many people were just immediately bouncing out of the app, and it was something close to 20%, which was shocking to me in a way that was very discouraging.

00:01:57   It's like, really? So 20% of the people who download the app never do anything with it. They just look at one screen, and then that's it. It's like, that's terrible. I need to do something about this.

00:02:07   And fair enough, in my case, part of the challenge for an app that collects someone's steps is part of that is because they have to give the app permission to read their data before they can do anything useful with the app.

00:02:20   The app is completely useless unless you've given it data, which I suppose is something I could try and do otherwise of showing you examples or doing—there's ways to potentially work around that that we can talk about.

00:02:32   But fundamentally, for the app to be useful, you have to do something, and potentially something that is fairly meaningful.

00:02:38   It's not nothing to show—if you downloaded an app from the App Store, it says, "Hey, I'd like to see this private data of yours. I'd like to be able to see all of the step counts from every day that you've taken since you got your phone," essentially.

00:02:54   That's a meaningful thing, and so fair enough, not everyone would want to continue with that. But at the same time, given how difficult it is to get users in the first place, it was something that I felt I really wanted to try and optimize and experiment with and play with and see if I can get that number up higher.

00:03:09   And so far, I've been able to get it slightly higher, so now it's only like 15% of people don't proceed with the app, which is meaningful, but it's still a large number. But I think there's a lot of things that we can do here, and I think moreover, there's a lot of choices that we have to make about our onboarding experience.

00:03:28   What kind of an experience are we trying to give the user? There are ones that you could imagine that are very help-oriented and are very—it's a tutorial. There's ones where you could imagine that it's very almost experiential.

00:03:44   There's some apps that I download, and it feels like they're trying to take you on a journey. And so it starts off with you're going to be messaging with the app, or they have these little dialogue bubbles that will pop up, and it's like you're having a conversation.

00:03:59   There's lots of crazy ways to do it. I've never seen that one. The one that comes to mind, I think it's Libby, the library card thing. When you open it up for the first time, it wants to have a conversation with you about your reading situation, but it's in a text chat interface.

00:04:16   Do you have to have a very quiet conversation because it's in a library?

00:04:19   Maybe. It's been a while since I did that onboarding. So there's ones like that. I can also imagine ones that are experienced ones that are just trying to jump you straight into the app. It just takes you right into the core experience, and you just find your way from there.

00:04:36   There's just so many different paths, and there's ones where it's very sales-oriented. The onboarding experience is essentially just an ad for their premium subscription, and the really tricky ones are the ones that get to the end of the onboarding, and if you don't buy the subscription, you can't do anything in the app.

00:04:53   There's a tiny X in the top corner, but it's the same color as the background, and you have to be incredibly careful about trying to find it, which is another version of this, and I'm sure there are reasons to have that kind of onboarding, that your app experience is almost entirely the onboarding to some degree.

00:05:13   You have your acquisition, and then you have your call-to-action sales pipeline, and then if they don't continue, then that's it. That user is bounced off the app, and you're just optimizing for a different thing.

00:05:27   So these are the kinds of choices we have to make, and I think in different apps at different times, I've tried many of those. I haven't tried all of them. I've never been overly cutesy, and I've never been very sales-oriented, but I've definitely had the apps where the first version of Widgetsmith, you would just launch into it, and there was no onboarding.

00:05:45   It's like, "Here's three default widgets that I created for each of the three different widget sizes." There were no instructions. There was no help. It was just like, "Good luck." And subsequently, with Widgetsmith, I've added a bunch of help information, not in a full-screen modal way, but in a—there's a bunch of—more like Tipkit style, but not using Tipkit of like, "Hey, it seems like you're trying to make the Clippy style."

00:06:09   It's like, "Hey, here's how you make your first one, your first widget. Here's how you add it to your home screen." So it's trying to be a bit more helpful in that way, but anyway, I've tried all kinds of approaches, and I feel like sometimes they're better, sometimes they're not, but it's definitely something that's worth optimizing for.

00:06:25   You think about the impact this has on your business. I mean, this is a hard topic to cover in one episode because, as you were just saying, it is so broad. It can—not only does it obviously impact how many people who download the app end up using it at all, but then, as you mentioned, it also can impact your actual money, your sales of your premium offerings or whatever your monetization pattern is.

00:06:48   If people are—if they can't figure out how to use it, maybe they'll bounce out more quickly and delete it or abandon it. So it kind of stretches into all these different places. It goes into usability. You can explain new features if you have them.

00:07:00   There's all sorts of ways to do this. There's the "what's new" sheets whenever you do a big new version, like what Apple does. Ultimately, one of the reasons this is important—and by the way, I should disclaim, I do a terrible job of this in my app. This is one area that I have on my to-do list to improve soon because I do not do a good job of this.

00:07:19   But when an app is new and when any business is new, you typically don't have to pay as much attention to how do we get more out of what we already have. When you're in growth mode or early feature-building mode, that's usually a lower priority.

00:07:35   But then as a business matures or as you start to optimize it, that's kind of where you start looking. It's like, "Hey, where can we make more with what we already have?" Because if you try to increase your user base or your numbers, there's ways to do it that involve spending lots of money.

00:07:51   You can buy a whole bunch of search ads or other types of ads, and you can effectively buy installations or increase your installation rate, but this is free to work on. Any kind of onboarding tweaks, that's effectively, besides your time and maybe design resources, it's effectively free.

00:08:09   So it's a much more economical way to grow your numbers or to boost your usage compared to other brute force methods of just getting more people in the door to begin with. So that's why it's so attractive because going from your 20% abandonment to a 15% abandonment rate, that's pretty good for something that didn't really cost you anything ongoing.

00:08:30   So I would say that's a great gain, and that's the kind of thing that if you don't instrument it, you won't even know those options are there, but it can make a huge difference.

00:08:40   So obviously you have things like permission dialogues. In your case for pedometer, you need motion permission to do anything at all. That's a perfect use for an onboarding screen, and if you just kind of do the lazy thing of just call the delegate method to request the permission every time your main scene loads,

00:08:59   that's when you get the unpleasant experience of you first launch an app and you're presented with an empty interface for the app, and immediately three dialogue boxes saying, "You want to send notifications? You want to approve access to this?"

00:09:13   That's not a good user experience, and when you make things bad user experiences, not only does it kind of just look sloppy and not great, but it also usually affects your conversion rates.

00:09:25   So if you can make something nicer, you not only will give the user a better experience overall and give them kind of a chance to breathe for a second, but also you can do things like, you know, a common pattern we see is if an app wants permission for something,

00:09:41   they will, before prompting you with the system prompt, they will show a screen explaining basically that they're about to prompt you with the system prompt and here's why you want to say yes, and then you're given the system prompt after you see that screen to say yes, definitely proceed.

00:09:56   And that kind of thing is very effective. You go into sales too, you know, talking about your premium subscription thing.

00:10:03   First of all, one thing I learned recently, which still kind of irks me, but one thing I learned recently is that the little X you're talking about to dismiss the subscription at the end of the onboarding is optional now.

00:10:14   You can, as far as I can tell, because lots of apps are doing this and I checked the rules, as far as I can tell, it is totally App Store legal to have an app that puts you through whatever onboarding experience you want and then puts up an in-app purchase sheet that you cannot proceed past unless you purchase it.

00:10:32   So it is entirely, as far as I can tell, entirely legal on the App Store to have an app that requires a subscription to be purchased and doesn't function at all without that.

00:10:42   And so that is a common pattern that I'm seeing of like you're brought through this onboarding process because then you feel invested in the app.

00:10:49   So you're brought through, maybe you even create the account, you pick out some content you want in the app, you tell them a little bit about you, and then, oh, great, to proceed, pay us 100 bucks a year. Like that's an actual pattern that actually is done in the App Store and seemingly allowed in mass.

00:11:09   So these kind of steps, these onboarding steps can have just massive ramifications. So let's talk about some specifics of how to make this nicer.

00:11:19   But first, we are brought to you this episode by Celtrios. This is a shoot 'em up game with a tiny ship, big weapons, waves of foes, power-ups, and obstacles.

00:11:29   Celtrios is well made for you, for users. This is made by an Apple nerd, four other Apple nerds. So Celtrios has no ads, no in-app purchases, no subscription, and nothing is locked.

00:11:41   It's only for Apple platforms. You can get it on your Mac, iPhone, iPad, and even Apple TV. There's 13 stages of the game. You can start from any stage you want, and you can resume play later if the app is quit or suspended.

00:11:53   If you're playing it online at the bank and you've got to suddenly do something, don't worry, you're not going to lose your game. It is a great game. There's a lot to love about Celtrios.

00:12:01   You have a ton of ways to play with customization. You can keep it fresh, like ship configuration, dozens of abilities, full screen on the Mac, randomizing, and there's even a hard mode, which is tempting for a shoot 'em up game like this.

00:12:14   There's also a huge high quality soundtrack with over 45 minutes of original music. I love a good soundtrack for a game. And the game keeps expanding. There's been over 85 free updates to Celtrios so far, and the entire thing was made by an independent developer.

00:12:30   You can play solo or you can grab a friend for two player. Your Mac supports various inputs, so one person can do whatever on the Mac. You can also grab a controller if you're on iOS. So if you love traditional shoot 'em up games, or you just want a quality game that's fun to play again and again with none of the usual annoyances that other games have, Celtrios is for you.

00:12:50   The Mac version is on Steam with a free demo, and the iOS and tvOS versions are on the App Store. Go to kevingrant.name/apps to learn more, or click the link in our show notes to let them know that you came from this show. That's kevingrant.name/apps, or click the link in our show notes.

00:13:07   Our thanks to Celtrios for their support of this show and Relay.

00:13:11   So the first thing that I feel like I've learned from, I guess, the hard way through history is users are surprisingly lazy, and maybe there's one way to say it, or you have to be very careful about what you ask them to do and how much you ask them to do, because if a user has to scroll up to see something or click several times to accomplish something, there's a reasonable chance that they will not complete that process.

00:13:40   I'm calling it laziness, maybe it's just lack of interest. They're not as motivated as you would think they are to do anything. And I think as a result of this, one of the fundamental principles that I'm starting to settle on with onboarding is about being very judicious that if you ask a user to do anything, that it is going to be high impact for them.

00:14:04   That you don't have superfluous things that you're asking them to do, to click on a screen, to scroll to the bottom, to do anything like that, because the reality is they just won't.

00:14:16   Or a meaningful number of users won't. That as quick as you can get them to the place where you're actually having an impactful interaction with them is the better.

00:14:26   And an example of this was one of the things I recently was trying with my onboarding in Pedometer++ was I had kind of a, I guess you'd call it a splash screen if it was a website or that kind of thing, where it was just a well-designed, beautiful screen that didn't do anything, but it was just trying to be like, "Let me welcome you in with this nice, attractive screen."

00:14:47   And you'd click through that, and then on the next screen is where I would explain the need for your permissions, and then that's the screen that would ask if you hit next from that one, you'd get your permission prompt.

00:14:59   I thought this would be lovely. I thought that would be a nice way to welcome someone in. It's like having a nice, like a well-designed front door.

00:15:06   That was the idea. In practice, what it meant is that 8% of users never clicked through from that screen, and so they just never went anywhere. They never opened the front door.

00:15:17   And in this case, rather than having a front door, I think it's probably more important to have the front door wide open and the first experience be right there waiting for them as they walk in the door in that analogy.

00:15:31   But I think it's just more over this thing that, time and time again, I've seen. It's a classic thing if you'd say, "Don't have text in your app that a user has to read in order to understand something."

00:15:44   Because if you do, there's a meaningful proportion of your users who will never read any of that, that they're just kind of going through on autopilot or not really engaged in the way.

00:15:55   And this is just a natural, reasonable thing, that as much as we like to think when we're sitting in our office, designing our app, that we think of our main user as someone, maybe they're sitting at home, they're sitting in their comfortable chair.

00:16:07   They've decided, "You know, I would like to count my steps. I'm going to go ahead and find an app." So they go to the app store, they look around, they find an app that you think your screenshots look great, they read your app store description, and they're decided they want to get it.

00:16:20   So they're very engaged, they're going to go through and read everything that you put out there, and that's going to be wonderful. That may exist, like that user may exist in the world.

00:16:30   More likely, though, that is not all of your users, that there's going to be a meaningful number of people who are waiting online or they're on a bus going to work, or they're at a party with some people and they saw someone else who had the app and they're just downloading it quickly.

00:16:45   And they are not engaged in your app in that way. And so you want to be very judicious about what you ask of them, because if you ask small things, you're more likely to have them actually continue with it, rather than having lots of big asks, or requiring that high level of engagement before they can have a big win.

00:17:02   Because really what you want is you need to shorten the time, I think, between they get the app and they have their first "Ooh, that's cool" moment. They get something that is useful to them, is interesting to them, is going to help them understand, "Is this the app that's going to accomplish what I want for this purpose?"

00:17:22   "The reason I got this app was for it to accomplish this goal. Is this app going to be the one that does it?" And I think about with you, with all the other sleep apps you were trying recently, where you were trying all these different options, it's like you're going through this mindset of, "How quickly can I understand if this is the one that's going to do it?"

00:17:36   And the longer they sort of spread that process out, the more likely it is you'll just abandon it and go to something else or go to nothing else and move on with your life.

00:17:45   Yeah, and that was very instructive for me, very educational for me to go through that whole sleep app journey trying to find what I was looking for.

00:17:54   Because it did show me, first of all, it showed me, again, a lot of these different practices in the App Store that I was not maybe up to date on or hadn't seen in a while or hadn't seen the latest versions of.

00:18:04   But also, it showed me the user journey of I'm looking for this type of app, I'm not seeking out any particular one by name, so I don't have any loyalty to any particular name, I'm not being influenced by an influencer to go get a certain one.

00:18:19   I'm just searching in general for this category, and I'll try whatever I see, but then I'm only going to want to stick with one. And so when you're in that kind of mode as a customer, I don't want to see your pretty benefits and stuff, I just want to get in the app and just see how the app works.

00:18:36   And I did exactly what you were saying, where I would try an app, I'd get in, some of them I didn't even get past the onboarding because it was so burdensome or in some ways kind of creepy with like, "Oh, they want to do a lot with my data, I don't really want that."

00:18:52   And then sometimes I would get into the app and realize, "Wait, I don't even know how to use this." Because then maybe that wasn't enough onboarding.

00:19:00   So I've seen it go wrong, even in my own life with my own stuff I was looking for, but you have to realize a lot of your customers are in that same kind of mode where they are going to give you a precious little amount of attention.

00:19:14   They're going to give you a chance, but they're in a hurry to go get something else done. And there's a lot of other apps that are competing for their attention, and a lot of other things in their life that are competing for their attention.

00:19:23   And so you have a very, very small chance to win someone over, and that's why you see those abandonment rates.

00:19:31   We always wonder as developers, for some reason, App Store Connect will tell you, "Oh, you have this so-and-so retention over a day, a week, a month," and you're like, "Wow, why are so many people downloading my app and then just not using it after such a short time?"

00:19:45   And this is the answer. The answer is basically onboarding failures in some way. You didn't succeed in getting them into the app as a user, and there's all sorts of reasons why, but the onboarding process, I think, is such a big one because there are such big wins and losses that can be had there.

00:20:05   But you're right. You can't take too much. People are giving you this attention. They're doing it very quickly. They're not going to read almost any text you put on the screen, as you were saying. Text is a loser.

00:20:20   Because I know, as a user, how many of those screens did I read when I was going through those apps? I read maybe the titles that are on the buttons. Maybe. Even then, maybe I wasn't reading that closely for some of them because I was like, "Look, I got six apps to try here, and I don't want to spend three hours doing it. I just want to solve this problem that I'm trying to solve."

00:20:41   So really be very, very judicious with how you spend the attention the user is giving you because you don't have much of it. You have to spend it very carefully, very efficiently, because if you can shorten the time between them opening up your app for the first time and impressing them in some way or providing utility to them, you will see big benefits.

00:21:08   And how that looks is going to be different for every app. A lot of apps have support concerns. In my app, a huge role of my onboarding, the very first thing you have to do, basically, is I've got to know whether you have an account yet or not.

00:21:21   Because if you had an account but failed to log into it for whatever reason, you will have a bad experience in that you will open the app and your stuff won't be there, and you will think you've had data loss.

00:21:35   And that's not great. That's one of the worst ways that can possibly go. So my onboarding has to include some kind of account login or account creation procedure. Well, that's super thorny.

00:21:47   There's tons of potential problems that can result from that. There's failure modes. There's creating duplicate accounts. There's not being able to log in for some kind of forgotten email or password kind of thing.

00:21:58   It's a very complicated flow, and I have seen huge gains over time in simplifying it. So, for instance, one of the big problems is I have to create an account to use this app? Why?

00:22:11   And that turns a lot of people away right there. There's a lot of people out there who, if you ask them to create an account or log in in your app, they will delete the app and go right at one star and say, "One star requires an account. I don't want to make one."

00:22:26   That's a non-trivial amount of people who do that. So one of the things I learned over time is I basically changed the wording. It still has accounts, but it just generates random numbers and doesn't have emails, and so they're just random numbers stored in your keychain.

00:22:42   It still has accounts, but it doesn't say, "Create new account." It says, "Add podcasts." And then below that is a smaller button that says, "Log in to use an account," or something like that. I forget exactly what it is.

00:22:56   But that change dramatically improved my conversion rate from launching the app into actually getting people starting to use it, because the notion of an account turned them off.

00:23:06   And I did see a substantial gain from that one change of just changing the wording and, to some degree also, making the login less prominent than effectively the "Create new account" button, which is basically just "Proceed."

00:23:21   Because that's what most people want. Most of the time, what most people want is, "Get me through this screen so I can start using the app." That is the primary goal. "Get me through this."

00:23:31   That's why nobody reads your text. That's why everyone says, "Yeah, yeah, whatever. Yeah, yeah, yeah, yeah. Just approve. Yes, go, go." Because they don't want to go through your onboarding. They want to go to use the app.

00:23:43   So anything you can do to speed that up while achieving whatever the positive outcome or needs are that you need to achieve to provide that functionality, the faster you can get them through those screens, the better.

00:23:56   Yeah, and I think there's a very user-centric approach that you're describing there that I think is very reasonable. And it's one of these things. There is an element of just, I guess, a difference in approach or style.

00:24:09   I think the kind of apps that we tend to build tend to have that user-focused-ness to it. I'm trying to do whatever is best for them, even if it's not modal and you can't move past it.

00:24:26   But putting my paywall at the end of my onboarding feels slightly user-hostile to me in a way that is benefiting me but may not be as benefiting to them. And obviously, there is an element of benefit. You shouldn't be ashamed of your paywall screen.

00:24:42   But it's sort of like you're asking someone to buy something before they've even seen what it is they're buying is the part that I've found a lot of benefit recently. In my apps, I have a tab on the main screen that shows you the paywall, always.

00:24:58   So it's very available. Lots of people see the paywall. I'm trying to make sure they're educating people about it, but I'm letting them find it soon after the app has been useful to them rather than interrupting them to have an ad, essentially, right at the beginning.

00:25:16   And obviously, to some degree, they can get more out of the app if they have a premium subscription, or if I don't show it to them, they'll never see it. And it's like, well, then that's a different problem you're trying to solve.

00:25:28   But I think from a user experience perspective, the goal is get them to the thing that is awesome about your app as quickly as you possibly can. In an overcast case, it's like, how short can you make it for them to be listening to something that is interesting to them?

00:25:43   That's the main goal. That's what you need to be optimizing for, I think, or at least there's a lot of benefit to optimizing for that. Or in the case of Widgetsmith, how long can I get the shortening the time to get a widget that they think is interesting or beautiful on their home screen?

00:25:59   In Predometer, it's how soon can I be showing them their step data? If I can tighten up my onboarding as much as I can to get to that core experience, the thing that will be useful to them, I think the knock-on effects and the broader retention rate of the app is the thing that will improve as a result of that.

00:26:19   And this is very much an area where you're just creating small accumulations of positive things. I think it's worth optimizing this. I think it is worth A/B testing a bunch of different things, like my next step in my onboarding screens is going to be A/B testing a bunch of different...

00:26:35   It doesn't matter what word I put on the button before I prompt them for the thing. If I say "continue" or if I say "next," if it's an arrow, I don't know. But maybe one of those is half a percent better. And if it is, great. I will take the accumulation of that. But I think I want, fundamentally, to be optimizing my onboarding experience to be user-focused, and I think that just, in my experience, in the long term, will pay off.

00:26:58   The number of people who are clicking through are people who have had a good first experience, and it's the classic thing in life where you only get one chance to make a first impression. And in the App Store, it's very strongly that if you make a bad first impression, you just get deleted and never looked at ever again. And so it's a very profound difference between success and failure in that regard.

00:27:20   Oh, yeah. And that's why this is so important. And you're right. In Overcast, you're right. My goal should be get people into listening to a podcast as quickly as possible. I don't do a good job of that right now, and I have a lot of potential improvement to do.

00:27:35   And the good thing is, I bet if most of you look at your apps, I bet you'll find if you're honest with yourself, if you look at your apps, or especially if you can do some user testing and if you can see, watch somebody use your app for the very first time and try to see, wow, I could really get a lot more value out of this if I tweak these things, or this experience is not what I want it to be, it's not as good, it's not as smooth, it's not as nice as I want it to be, there's ways that I can improve it.

00:28:03   And every time the person kind of hesitates or seems to have a negative reaction and be like, ooh, how many people are having that same reaction when they see this screen? There's a lot of low-hanging fruit there to make your business better.

00:28:18   And again, look, no one's perfect. Again, I'm terrible at this. This is why I'm kind of talking to myself here just as much as I'm talking to everybody else. But look at these onboarding experiences and ruthlessly try new things and try to optimize them to get better outcomes, because there is a lot to be had.

00:28:37   And the nice thing about onboarding is optimizing it based on my recent experience is the nice thing is you can be more experimental here in some ways because it only affects new users, which is a meaningful thing, but it's like so many of the changes I make to my apps, some of the nervousness I feel is if I'm going to make a change that affects all of my existing users, it's really scary, because that's the big number.

00:29:02   Whereas with onboarding, the nice thing is you can try a bunch of different things, and if you have a bad onboarding screen for two days in the app, okay, that two days, you won't have great conversion.

00:29:14   But you can experiment and iterate on it in a much more kind of like safe way, which is something that I definitely have experienced recently that I was kind of -- it was nice -- it allowed me to be a bit more creative and a bit more laissez-faire about it, because I don't need to worry that if I'm going to make this change, and it's going to affect everybody, that it's going to like completely destroy and tank the app.

00:29:31   If one day I have 25% abandonment rather than 20% abandonment versus 10% abandonment, like in one day's data, that's not really going to matter.

00:29:41   And so that's the nice thing about it, doing something that only affects a tiny proportion of your users, a meaningful proportion of your users, but a very small percentage overall.

00:29:49   Thanks for listening, everybody, and we'll talk to you in two weeks.

00:29:52   Bye.

00:29:53   [BLANK_AUDIO]