PodSearch

Under the Radar

29: Numbers and Analytics

 

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

00:00:04 ◼   ► And I'm David Smith. Under the Radar is never longer than 30 minutes, so let's get started.

00:00:09 ◼   ► So I have a bit of a reputation, a reputation as somebody who likes numbers, who likes making

00:00:18 ◼   ► charts, pretty pictures made from numbers, and using them to talk about all kinds of things.

00:00:25 ◼   ► things. I've run an iOS version stats page for, oh gosh, it's probably four or five years

00:00:33 ◼   ► now. And there's something that I love about being able to make decisions in my business

00:00:40 ◼   ► and my development based on numbers rather than just on instinct or on gut feel. And

00:00:48 ◼   ► so it was something that I thought would be an interesting thing to dive into because

00:00:51 ◼   ► I don't think that's how everybody tends to work. I collect and process, and on a weekly

00:00:58 ◼   ► basis, use numbers in ways that I don't think a lot of developers do, and so I kind of thought

00:01:03 ◼   ► it would be interesting to unpack that a little bit, because what I find is being able to

00:01:10 ◼   ► make my decisions based on numbers and actual measured things makes me a bit more rigorous

00:01:18 ◼   ► in terms of, you know, I'm basing it on something concrete, as well as, honestly, I think it

00:01:22 ◼   ► makes me more honest with myself, because it's so easy to trick yourself into thinking

00:01:29 ◼   ► something's more important than it actually is.

00:01:32 ◼   ► And so as an example of this, like something that I've run into recently is, I, in, you

00:01:37 ◼   ► know, Perimeter++, my most sort of popular app, has an Apple Watch component, which is

00:01:43 ◼   ► great.

00:01:44 ◼   ► Apple Watch component, it has a complication that you can install. And I added, when I

00:01:50 ◼   ► added this feature to the app, I added a little thing that, as part of my analytics, which

00:01:54 ◼   ► I'll talk about a little bit later, the actual collecting of it, but in my analytics, it

00:01:58 ◼   ► tells me how many people have installed the complication. And I started getting the numbers

00:02:03 ◼   ► back and it's like, the reality is, a very small percentage of my users use the complication.

00:02:09 ◼   ► And so, which was different in my mind than what I originally expected, like, I use it,

00:02:13 ◼   ► I love it, and it's the part of the watch app that is most useful to me, but it turns

00:02:19 ◼   ► out a lot of my customers don't use it. There are some, but it's very helpful for

00:02:23 ◼   ► me to kind of guide how much time and energy I should put into making that awesome, because

00:02:27 ◼   ► I have a number to base on it. It's a few percent of people are using it. Maybe it's

00:02:32 ◼   ► not as important as I thought it was. And so that helps me to be honest. Do you use

00:02:37 ◼   ► numbers in your work?

00:02:39 ◼   ► What I usually do is just randomly discuss a possible thing with you around, and then

00:02:46 ◼   ► you will jump in and say, "Actually, I have an entire graph and database for this going

00:02:51 ◼   ► back seven years. Here, this is how this actually works."

00:02:54 ◼   ► That's true.

00:02:55 ◼   ► So it's actually very useful having you around as a friend. But no, I mean, I do way

00:03:01 ◼   ► less of it than you do, and I want to change that, and I have slowly been changing that,

00:03:07 ◼   ► not nearly to the degree that you do because you have numbers and stats and data on things

00:03:15 ◼   ► that I wouldn't even consider, like I would never think to do that, but it would be so

00:03:21 ◼   ► useful if I did think to do that. And there are ways, we're going to get into the details

00:03:26 ◼   ► of this, but like there are ways to do this that are not difficult, that are not that

00:03:32 ◼   ► time-consuming and importantly that aren't creepy or that don't sell out your users.

00:03:38 ◼   ► And there's like there's so many data based decisions that I should be making and I should

00:03:45 ◼   ► be factoring in usage data and activity data and revenue data and things like that. I should

00:03:51 ◼   ► be factoring in all those things as you said like when I'm when I'm making decisions about

00:03:55 ◼   ► what to do with my products, what products to even make in the first place, what not

00:04:00 ◼   ► to do, what to expect revenue-wise or usage-wise, and really I feel like I've been underdoing

00:04:09 ◼   ► it in the past, and so now I've been trying to jump into the data game a little bit.

00:04:15 ◼   ► Yeah, and it's definitely an interesting balance that I find you have to strike, because you

00:04:19 ◼   ► can become a little obsessive with it, where you end up with, oh, what's it, the KPIs or

00:04:28 ◼   ► whatever, there's the terrible business speak where you end up with, "Oh, our business is

00:04:32 ◼   ► like, are we hitting our key performance indicators?" I think is what that is. Anyway, that's terrifying

00:04:37 ◼   ► to me, but it's that kind of a world where you end up with a business that's based on

00:04:41 ◼   ► the numbers, and it's all A/B tested, and it's all driven from this kind of feeling

00:04:45 ◼   ► that, "Well, if we can just keep tweaking the numbers, then our product will get better

00:04:50 ◼   ► and better and better." Personally, I find that a little bit, it kind of removes the

00:04:55 ◼   ► craft from what we do. It removes a lot of the feel of what you can make in that sense.

00:05:01 ◼   ► And so that's not really the kind of numbers that we're talking about. But what I moreover

00:05:06 ◼   ► have found is that if I'm able to collect the right kind of basic information and then

00:05:11 ◼   ► have a very basic set of skills in Excel or in scripting or SQL or things like that to

00:05:17 ◼   ► actually be able to pull it together, is that I can answer these questions that otherwise

00:05:22 ◼   ► you just can't really get a good answer for. Because what you really don't want to be doing

00:05:28 ◼   ► is just kind of like shooting in the dark. As an example, I remember when I was localizing

00:05:34 ◼   ► some of my apps. It's like, you have to be able to answer the question, "Where are people

00:05:38 ◼   ► using it? What countries is my app popular in, but it's not localized into? I should

00:05:45 ◼   ► probably be localizing there." And you need to be able to pull that number from somewhere.

00:05:50 ◼   ► Yeah, I mean, there's so many, there's so much, I've done personally, so much wasted

00:05:55 ◼   ► effort over the years in working on something that a basic investigation into some numbers

00:06:03 ◼   ► would have told me that it's not worth doing. Consequently, I've also, you know, on the

00:06:09 ◼   ► flip side, I've also not done things over the years that I should have been doing because

00:06:14 ◼   ► I wasn't looking at the right data that would have shown me this is something you

00:06:18 ◼   ► you should be doing. Things like localization are obviously a big one. Even simple things

00:06:23 ◼   ► like app features and usage. I mentioned recently that I did a lot of effort to make Overcast

00:06:30 ◼   ► work really well on the iPad. And in retrospect, that might not have been worth all that effort

00:06:35 ◼   ► because my iPad usage is in the low single digit percentages. It's like 3% or something

00:06:41 ◼   ► of people who use Overcast. And that was a very, very simple thing to look up and to

00:06:46 ◼   ► realize, oh, this is actually maybe not worth prioritizing over more important features

00:06:50 ◼   ► that would benefit all the iPhone users. Similarly, I can look at features that make it better

00:06:58 ◼   ► or worse with certain numbers of podcasts. Well, I can look on my server and I can see

00:07:03 ◼   ► what's the average or the median number of podcasts that people subscribe to. And I should

00:07:09 ◼   ► optimize the interface to make that look good and work well and things like that. There

00:07:14 ◼   ► are so many opportunities that I can bring in just basics of looking at numbers, looking

00:07:19 ◼   ► at stats, doing a little bit of research, and finding out other things. Over the last

00:07:25 ◼   ► year or so I occasionally get tempted by the idea of making an audio editing app for producing

00:07:30 ◼   ► podcasts. I keep talking myself out of it because I just keep seeing -- I'll look up

00:07:36 ◼   ► rank data, I'll look up revenue data, of estimates of what other apps make, and try to figure

00:07:41 ◼   ► out how many people are producing these kind of podcasts, how many people might be buying

00:07:46 ◼   ► this app, what might I be able to charge for it, and I keep coming back to the conclusion

00:07:50 ◼   ► that it's just not worth doing. But eventually, if I look at the data on an ongoing basis,

00:07:57 ◼   ► eventually, it might be worth doing, and it'll be useful to figure out when that time comes.

00:08:02 ◼   ► Yeah, exactly. And I love that making these types of decisions, it feels like there's

00:08:07 ◼   ► always going to be an emotional part to it, where you may want to make your app look good

00:08:14 ◼   ► on the iPad just because you like the iPad, for example. But there's always something

00:08:20 ◼   ► kind of sobering when you look at the numbers and you're like, "Huh, I just did all this

00:08:25 ◼   ► work for 5% of my users." And it makes that more gut decision into something that you

00:08:37 ◼   ► can be like, you know, not that I want to ignore that 5% of my users and you know, there's

00:08:41 ◼   ► certainly arguments to be made for making sure that you're taking care of your most

00:08:48 ◼   ► devoted or powerful users type of people, but it really helps you to focus in on what

00:08:54 ◼   ► are my 80% users and is their experience as optimal as I can make it.

00:09:01 ◼   ► >>Ezra Klein Exactly.

00:09:02 ◼   ► So I wanted to—it seemed like there's two types of numbers that I personally have

00:09:08 ◼   ► a lot of infrastructure around collecting that I thought would make sense for us to

00:09:15 ◼   ► discuss. The first one is sales numbers. So sales and revenue downloads. This is the kind

00:09:23 ◼   ► of thing that you really—if you're going to make making software your livelihood—maybe

00:09:29 ◼   ► This doesn't apply as much if you're just more of a hobbyist, but if this is what you

00:09:33 ◼   ► want, either want it to become your livelihood or it is your livelihood, you really have

00:09:38 ◼   ► to have a good grasp on how much money are you making on a daily basis. Where is that

00:09:43 ◼   ► money coming from? Both in terms of geographically, what countries are you popular in, asking

00:09:49 ◼   ► questions like, "Are you making your income from advertising, in-app purchase, direct

00:09:56 ◼   ► sales, all those types of questions that you need to be able to understand in order to

00:10:01 ◼   ► make sure that, A, your business is functioning and let you make good, thoughtful decisions

00:10:06 ◼   ► about your future. And I've used so many different tools for this over the years. I think it

00:10:11 ◼   ► was called AppViz. It was the first product I used back in the day, which was like a Mac

00:10:16 ◼   ► app that would download the reports out of iTunes Connect. There have been all kinds

00:10:22 ◼   ► of other things, there's AppFigures, AppAnnie, iTunes Connect itself has actually gotten

00:10:26 ◼   ► a lot better at this. It used to basically just give you a CSV file and now you can go

00:10:31 ◼   ► into the sales and trends area and they have a nice interactive thing that you can get

00:10:36 ◼   ► quite a lot of mileage from. Personally, I ended up actually, I have an entirely homegrown

00:10:42 ◼   ► system that I built over the course of, because what I do is I have a little Ruby script that

00:10:50 ◼   ► go in, like iTunes Connect has an ingest API, which you can sort of hook up to, and it will

00:10:58 ◼   ► pull in the sales reports directly from iTunes Connect, and it puts it into a SQL database

00:11:03 ◼   ► that I run locally that has my historical data going back, I think it's somewhere on

00:11:09 ◼   ► the order of about seven years or so. And what I love about that, and the reason I've

00:11:14 ◼   ► I've done that is because now I can look and I can ask very strange questions and I can

00:11:21 ◼   ► get an answer for them because I have data going back so long and in such a normalized

00:11:26 ◼   ► way. And most people don't need to do that. I'm not recommending that. But that is certainly

00:11:32 ◼   ► something at the end of this that if you keep going down this path for long enough, eventually

00:11:37 ◼   ► you might find yourself being like, "Huh, none of the tools that exist can answer the

00:11:42 ◼   ► questions that I'm asking, and then you can start to get a bit more homegrown. But for

00:11:46 ◼   ► most people, use AppFigures, use AppAnnie, just use the iTunes Connect thing. But be

00:11:50 ◼   ► able to look at them and decide questions. And you have to think about some strange things.

00:11:55 ◼   ► I don't know how you think about your revenue, but I've always found that I think of revenue

00:12:00 ◼   ► in terms of average revenue per day. That is the number that I've—I don't know why,

00:12:08 ◼   ► I think where this came from is when I was initially going independent, or that was my

00:12:14 ◼   ► goal. I was still doing contracting at the time, and I was saying, "One day I'd like

00:12:17 ◼   ► to go independent." I kind of had a big number in mind. What would I like my ideal

00:12:24 ◼   ► base salary to be? How big would my software business have to be before I could go independent,

00:12:32 ◼   ► before I could say no to consulting and just make this my main focus. And when that number

00:12:38 ◼   ► was the annualized number, it was kind of daunting and scary and felt very amorphous.

00:12:46 ◼   ► But when I took that number and divided it by 365 and said, "Well, this is the amount

00:12:52 ◼   ► that I need to make each day," and as I was putting out apps, every morning I could log

00:12:59 ◼   ► into iTunes Connect or I can get an email from a lot of these services that do this,

00:13:04 ◼   ► and they'll tell you how much you made. And I could see that number gradually increasing

00:13:09 ◼   ► over time and getting closer to my tipping point. My wife and I decided that once my

00:13:17 ◼   ► software hit this number, at that point, that was our focus. That's what we were going

00:13:24 ◼   ► to keep going behind because we'd hit that sort of tipping point. And so that's still

00:13:29 ◼   ► the way I think about it now. Like the day-to-day numbers maybe are a bit less relevant at this

00:13:33 ◼   ► point. You know, like I'll have some good days, I'll have some bad days. But overall,

00:13:38 ◼   ► I think about it in those terms, and I think about when I'm making a new app. I don't think

00:13:42 ◼   ► about it in terms of how much money I could make in a year from it. I think about how

00:13:45 ◼   ► much money per day I could make from it, which I think is helpful too from a sustainability

00:13:51 ◼   ► perspective, 'cause I think about it,

00:13:53 ◼   ► it doesn't matter if an app can have a huge, big spike

00:13:56 ◼   ► at launch if it immediately falls to zero,

00:13:59 ◼   ► because what I really want are apps

00:14:02 ◼   ► that make steady income every single day.

00:14:05 ◼   ► - Yeah, and that also gives you an idea,

00:14:06 ◼   ► like when you get those daily reports,

00:14:08 ◼   ► you can already have a sense for like,

00:14:11 ◼   ► are things going well, or are things starting to go badly?

00:14:14 ◼   ► Because you have internalized,

00:14:17 ◼   ► like what is my target daily income?

00:14:20 ◼   ► - Exactly, yeah.

00:14:21 ◼   ► I mean, there's a good point for it too.

00:14:23 ◼   ► It's like if you only measure, say, on a monthly basis,

00:14:26 ◼   ► you could be potentially 30 days behind

00:14:30 ◼   ► making changes that you need to correct problems or issues.

00:14:35 ◼   ► If one day your revenue falls off a cliff,

00:14:39 ◼   ► it's like you should probably know about that right away

00:14:43 ◼   ► because is something wrong in iTunes?

00:14:46 ◼   ► Like that's happened to me,

00:14:47 ◼   ► where I've definitely had a weird thing

00:14:49 ◼   ► where an app update messed something up in iTunes Connect

00:14:53 ◼   ► and no one could download my app.

00:14:55 ◼   ► - It's a bit of a problem.

00:14:56 ◼   ► - It's a bit of a problem when all of a sudden

00:14:57 ◼   ► you wake up the next day and you have 10% of the sales

00:15:00 ◼   ► of the day before.

00:15:01 ◼   ► And it's like, because I'm keeping track of it

00:15:03 ◼   ► on a daily basis, I was able to go into iTunes Connect

00:15:06 ◼   ► and make a non-meaningful change

00:15:08 ◼   ► and somehow it magically fixes things and hooray,

00:15:10 ◼   ► we're get back on path again.

00:15:14 ◼   ► But you have to be able to look at that,

00:15:16 ◼   ► have a mechanism to be aware of those types of things on a regular basis. And I think

00:15:21 ◼   ► I tend to—I wouldn't say I necessarily look at everything on a daily basis. Usually

00:15:25 ◼   ► it's the thing I do first thing Monday morning is kind of the pattern I've gotten into.

00:15:29 ◼   ► Like I run my little scripts and pull in all my data and run my reports on a Monday morning,

00:15:34 ◼   ► and I find it kind of helpful to think about what I'm going to do that next week. But

00:15:38 ◼   ► yeah, it's definitely so helpful to have this number in mind that you're trying to

00:15:42 ◼   ► to hit and have a way to kind of generate that number

00:15:45 ◼   ► and look at it in a way that makes sense to you.

00:15:49 ◼   ► - Exactly.

00:15:51 ◼   ► All right, our sponsor this week is Pingdom.

00:15:53 ◼   ► Once again, go to pingdom.com/radar

00:15:56 ◼   ► to start monitoring your websites and servers today.

00:15:59 ◼   ► You get a 14-day free trial,

00:16:01 ◼   ► and when you use the offer code RADAR at checkout,

00:16:03 ◼   ► you get 20% off your first invoice.

00:16:05 ◼   ► Pingdom makes the web faster and more reliable

00:16:07 ◼   ► for everybody by offering powerful, easy-to-use

00:16:09 ◼   ► monitoring tools and services for anybody with a website.

00:16:12 ◼   ► You can, for example, monitor availability and performance

00:16:14 ◼   ► in your server, database, or website

00:16:17 ◼   ► from more than 70 global test servers.

00:16:19 ◼   ► They can emulate visits to your site

00:16:20 ◼   ► to check its availability as often as once every minute.

00:16:23 ◼   ► Now, we all know websites are becoming more sophisticated

00:16:26 ◼   ► and are often made up of several dependencies.

00:16:28 ◼   ► And when one dependency encounters an adage,

00:16:29 ◼   ► it can affect the entire site.

00:16:31 ◼   ► So it's also possible to use Pingdom

00:16:33 ◼   ► to monitor the availability of key interactions.

00:16:36 ◼   ► So things like contact forms, e-commerce checkouts,

00:16:38 ◼   ► logging in, search functionality, and a lot more.

00:16:41 ◼   ► And you'd be surprised how often stuff breaks

00:16:44 ◼   ► in the internet.

00:16:45 ◼   ► Every month, Pingdom detects more than 13 million outages.

00:16:48 ◼   ► So regardless of whether your web presence

00:16:50 ◼   ► is a small website or a complete infrastructure,

00:16:52 ◼   ► you really should monitor its availability and performance.

00:16:54 ◼   ► And I use Pingdom personally.

00:16:56 ◼   ► I have used Pingdom since 2007.

00:16:58 ◼   ► Now to give you some idea of how long that is,

00:17:02 ◼   ► that is older than the entire app store.

00:17:05 ◼   ► The entire business we are talking on this podcast about

00:17:08 ◼   ► is younger than the time I've been using Pingdom.

00:17:11 ◼   ► And so this is way before they were response,

00:17:13 ◼   ► so they started sponsoring like a few weeks ago

00:17:14 ◼   ► and I've been using them for, you know,

00:17:16 ◼   ► literally since 2007.

00:17:18 ◼   ► I recommend them strongly if you have any kind of monitoring,

00:17:21 ◼   ► if you're monitoring things for changes or for downtime,

00:17:24 ◼   ► you don't even have to own the sites you're monitoring.

00:17:26 ◼   ► If you wanna monitor some other site for changes

00:17:28 ◼   ► or downtime, you can do that too.

00:17:30 ◼   ► All Pingdom needs is a URL to monitor

00:17:32 ◼   ► and optionally any kind of conditions

00:17:34 ◼   ► to check for on the page, substring, stuff like that.

00:17:37 ◼   ► and you know, or you can just tell it, check when it's up.

00:17:39 ◼   ► And when they detect an outage,

00:17:41 ◼   ► you can be alerted immediately,

00:17:42 ◼   ► so you can fix the problem before it becomes

00:17:44 ◼   ► a much bigger and more costly outage for you.

00:17:47 ◼   ► Now, you should not be learning that your site is down

00:17:50 ◼   ► by people on Twitter telling you three hours ago,

00:17:53 ◼   ► hey, by the way, I think your site's down.

00:17:54 ◼   ► No, that is not good, it's not professional,

00:17:56 ◼   ► it's not good for your business.

00:17:57 ◼   ► You should be the first to know,

00:17:58 ◼   ► and with Pingdom, you can be.

00:18:00 ◼   ► And you can fix it before too many customers

00:18:02 ◼   ► or readers see it.

00:18:03 ◼   ► Check it out today, go to pingdom.com/radar

00:18:06 ◼   ► for a 14 day free trial and get 20% off your first invoice

00:18:10 ◼   ► with offer code RADAR.

00:18:11 ◼   ► Thanks to Pingdom for sponsoring our show.

00:18:14 ◼   ► - All right, so the other aspect of numbers

00:18:19 ◼   ► that I find personally really helpful for

00:18:21 ◼   ► to think about is app analytics,

00:18:24 ◼   ► to understand how people are using your app,

00:18:27 ◼   ► how people are, what the devices they're using.

00:18:31 ◼   ► I mean, there's some very basic questions that,

00:18:34 ◼   ► Like for a long time I struggled with not having an answer for.

00:18:38 ◼   ► This was easier back in the day when there was only, for example, one screen of iPhone

00:18:42 ◼   ► size.

00:18:43 ◼   ► But even back then there was different versions of iOS.

00:18:47 ◼   ► And you find yourself in a question of like, well, how soon can I drop support for old

00:18:52 ◼   ► OSes?

00:18:54 ◼   ► And there's some amount of this that is sort of generally available in public.

00:18:58 ◼   ► But the reality is, even like, I have a site, like if you go to david-schmidt.org/ios-version-stats,

00:19:03 ◼   ► You can see the data that I collect from one of my apps that I made public.

00:19:08 ◼   ► But even if you look at that, that applies to my app with its particular user base and

00:19:14 ◼   ► usage.

00:19:15 ◼   ► Your app and your mileage may vary.

00:19:17 ◼   ► And so this is the kind of thing that I feel like every app developer needs to have a good

00:19:20 ◼   ► handle on for themselves to be able to answer these kind of questions.

00:19:24 ◼   ► Because otherwise you're just kind of shooting in the dark.

00:19:25 ◼   ► Like, "Well, I guess I'll drop iOS 9 6 or iOS, I guess it wouldn't be, I'm dropping

00:19:31 ◼   ► iOS 9 now.

00:19:32 ◼   ► a bit foolish, but dropping iOS 8 support maybe six months after it comes out, like

00:19:38 ◼   ► you're just kind of pulling a number out of the air versus looking at your app and deciding,

00:19:42 ◼   ► "Hey, maybe my users don't upgrade very quickly or they're using it on devices that I wasn't

00:19:48 ◼   ► aware of." And so this is something that you just kind of have to do. Where do you collect

00:19:53 ◼   ► this kind of data when you were saying that your iPad usage was single digits? Like, where

00:19:58 ◼   ► is that number coming from for you?

00:19:59 ◼   ► So I used to, like back in the newspaper days,

00:20:02 ◼   ► I used to just do the basic kind of homegrown

00:20:05 ◼   ► server stat reporting.

00:20:06 ◼   ► So basically, when the app would connect

00:20:09 ◼   ► to the backing web service, and of course,

00:20:10 ◼   ► this depends on having a backing web service,

00:20:13 ◼   ► it would report what kind of device it was,

00:20:15 ◼   ► what its OS version was and stuff like that,

00:20:17 ◼   ► and so I would just be able to go

00:20:18 ◼   ► and query my users table and be like,

00:20:20 ◼   ► all right, how many people are running the iPad One?

00:20:24 ◼   ► How many people are running iOS 7 or whatever?

00:20:27 ◼   ► So that has pluses and minuses.

00:20:28 ◼   ► The main downside is that you have to,

00:20:31 ◼   ► if you do it that way, you have to write

00:20:34 ◼   ► any of the supporting tools yourself.

00:20:36 ◼   ► So if you wanna have graphs over time,

00:20:38 ◼   ► or additional metrics, or any kind of smarts,

00:20:41 ◼   ► or intelligence, or summarizing behind that reporting,

00:20:44 ◼   ► you basically have to do it all yourself,

00:20:45 ◼   ► and you probably won't.

00:20:47 ◼   ► I never did.

00:20:48 ◼   ► I just kept the basics there.

00:20:50 ◼   ► So it made it hard to really draw

00:20:53 ◼   ► any kind of deeper knowledge from it,

00:20:55 ◼   ► and there was a lot of data I was missing

00:20:57 ◼   ► by doing it that way.

00:20:58 ◼   ► But the advantage there is that there's no code dependencies

00:21:01 ◼   ► in your app and it's really not creepy at all.

00:21:04 ◼   ► Nobody would really be offended by you reporting back

00:21:07 ◼   ► to your own server during requests you were already making

00:21:10 ◼   ► what kind of device they're running on, stuff like that.

00:21:12 ◼   ► I mean, it can be abused, but it's harder to abuse, I think.

00:21:15 ◼   ► So there are some advantages there in terms of privacy,

00:21:19 ◼   ► simplicity on the technical side,

00:21:21 ◼   ► like you don't have to embed somebody's library

00:21:23 ◼   ► into your app, stuff like that.

00:21:25 ◼   ► But it is very limiting in what it can do.

00:21:28 ◼   ► With Overcast, up until the handful of most recent versions,

00:21:33 ◼   ► I was doing basically nothing.

00:21:35 ◼   ► I was embedding crash reporters.

00:21:37 ◼   ► And so in the early days I used Hockey,

00:21:39 ◼   ► and then more recently I used Crashlytics.

00:21:41 ◼   ► And so I would have an approximation of what the app was,

00:21:45 ◼   ► or of the install base,

00:21:47 ◼   ► if I would get a really common crash,

00:21:49 ◼   ► then the crash logger would say,

00:21:51 ◼   ► "Hey, this is like 92% on iPhone."

00:21:54 ◼   ► Okay, well I guess I have roughly 92% iPhone use then.

00:21:57 ◼   ► (laughing)

00:21:58 ◼   ► That was also not a great method because--

00:22:01 ◼   ► - It's not the best.

00:22:02 ◼   ► - First of all, it kind of encourages me

00:22:03 ◼   ► to leave common crashes in the app.

00:22:05 ◼   ► (laughing)

00:22:07 ◼   ► I didn't, but yeah, so and then--

00:22:10 ◼   ► - There's a better way.

00:22:10 ◼   ► - Yeah, there's a better way and I didn't,

00:22:14 ◼   ► I didn't get, you can't get a lot of data from that really.

00:22:17 ◼   ► There's also the iTunes Connect built in stats,

00:22:21 ◼   ► but they're also very limited in both what they report

00:22:25 ◼   ► and also which devices in use they report from.

00:22:29 ◼   ► Because they only report if the user had checked in

00:22:31 ◼   ► that like send data to Apple thing during setup.

00:22:34 ◼   ► So I have found that the number of devices reporting in

00:22:39 ◼   ► through iTunes Connect is way lower

00:22:42 ◼   ► than the actual number in use.

00:22:43 ◼   ► I think mine was something like 10 or 20%.

00:22:46 ◼   ► - Yeah, and I think my numbers are fairly similar to that

00:22:48 ◼   ► in terms of the like the opt-in rate is pretty low.

00:22:51 ◼   ► - Yeah, so that's also like,

00:22:53 ◼   ► That's good to get an approximate idea

00:22:56 ◼   ► of what's my rough ratio of iPhone to iPad

00:23:00 ◼   ► or something like that,

00:23:00 ◼   ► but those can't tell you a whole lot overall.

00:23:04 ◼   ► So recently I switched to Fabric

00:23:06 ◼   ► because Fabric is the umbrella that owns Crashlytics.

00:23:11 ◼   ► It's all part of Twitter.

00:23:13 ◼   ► And so I started adding basic analytics through Fabric

00:23:16 ◼   ► and it has been surprisingly useful to me.

00:23:20 ◼   ► I was a little wary at first

00:23:22 ◼   ► And there's this whole other area of it that allows you,

00:23:25 ◼   ► there's like a second level of creepiness

00:23:27 ◼   ► that you can opt into that I didn't opt into.

00:23:30 ◼   ► (laughs)

00:23:31 ◼   ► Where you can like, it like tries to figure out

00:23:33 ◼   ► who your users are so it can tell you like the geography

00:23:36 ◼   ► and demographics and like all sorts of more advanced things

00:23:40 ◼   ► about like what kind of people are using your app.

00:23:41 ◼   ► Like, well it's the people in this age group

00:23:43 ◼   ► and you know skewing mostly female or mostly male

00:23:45 ◼   ► or whatever and like there's more of that that I don't do.

00:23:49 ◼   ► Maybe someday I'll turn that on.

00:23:50 ◼   ► I don't, with Fabric, it gives you not only the basics

00:23:54 ◼   ► automatically of things like what versions of your app

00:23:57 ◼   ► are in use, what platforms are they in use for

00:23:59 ◼   ► and everything else, but also, and of course,

00:24:02 ◼   ► things like crashes are all integrated,

00:24:03 ◼   ► so you have a crash for user percentages.

00:24:06 ◼   ► This morning I got an email that there was one crash

00:24:09 ◼   ► that was crashing more today than it usually does,

00:24:12 ◼   ► so it sent me an email, 'cause it's like,

00:24:13 ◼   ► "Hey, this number is suspiciously high.

00:24:16 ◼   ► "You might wanna look at that."

00:24:18 ◼   ► Stuff like that, and then you can add custom events,

00:24:20 ◼   ► which I have done, I have something like 15 custom things

00:24:24 ◼   ► that I can track, and it's things like,

00:24:26 ◼   ► I track how many new signups do I get,

00:24:28 ◼   ► and then how many people among those

00:24:30 ◼   ► click the anonymous account button

00:24:33 ◼   ► versus the give me an email address button.

00:24:35 ◼   ► I do things like how many people use the watch app,

00:24:37 ◼   ► and are they using the entire app or just the glance?

00:24:40 ◼   ► And even in the watch app, are they going

00:24:43 ◼   ► to the deeper menu parts and rearranging playlists,

00:24:45 ◼   ► or are they really just using the basic play controls?

00:24:48 ◼   ► And then in the app, I have like,

00:24:49 ◼   ► how many people use SmartSpeed?

00:24:51 ◼   ► How many people add podcasts through the directory

00:24:54 ◼   ► versus add it through URLs?

00:24:57 ◼   ► How many people are playing through the speaker

00:24:58 ◼   ► versus playing through headphones?

00:25:00 ◼   ► Stuff like this, and what this allows me to do

00:25:02 ◼   ► is what we said in the beginning.

00:25:04 ◼   ► Basically make smart decisions about what I work on.

00:25:07 ◼   ► And so ever since integrating Fabric a few months ago,

00:25:10 ◼   ► I have not only dramatically reduced the number of crashes,

00:25:13 ◼   ► 'cause I keep optimizing for that

00:25:15 ◼   ► crash for users percentage,

00:25:16 ◼   ► (laughs)

00:25:17 ◼   ► But also, I have gotten a lot of insight into what I really need to be working on.

00:25:23 ◼   ► Like, there are certain numbers here that I want to increase.

00:25:26 ◼   ► Things like, you know, how many people hit the recommend button ever?

00:25:31 ◼   ► You know, like, I want to boost that up because that helps my social discovery features.

00:25:35 ◼   ► Then I also know how many people use the social discovery features.

00:25:39 ◼   ► How many people ever add podcasts through the recommended podcast section?

00:25:43 ◼   ► Now I have data on that and I can see if I make changes over time, I can see like, okay,

00:25:50 ◼   ► maybe making this thing more prominent or rearranging the order of things on this screen

00:25:53 ◼   ► or something else like changing the wording, changing the language around things.

00:25:58 ◼   ► You know, I can see the effects of those things and now I kind of know like what's worth

00:26:02 ◼   ► it, what's not, what I need to work on, what I probably don't need to work on and

00:26:08 ◼   ► just all sorts of useful stuff about how people are actually using my app all in a way that

00:26:12 ◼   ► that I don't think is creepy at all,

00:26:14 ◼   ► because there's reasonable boundaries here,

00:26:16 ◼   ► and I think I've chosen reasonable parameters

00:26:19 ◼   ► and reasonable limits,

00:26:20 ◼   ► and so I think the downside really is pretty low.

00:26:24 ◼   ► - Yeah, and I mean, one of my favorite stories about this

00:26:27 ◼   ► was the reason why you ended up adding the,

00:26:30 ◼   ► I guess the EQ profile for the built-in iPhone speaker.

00:26:35 ◼   ► - That's right.

00:26:37 ◼   ► - Which was like this really cool, clever thing

00:26:39 ◼   ► that you did in one of the more recent Overcast updates,

00:26:42 ◼   ► or when you're playing a podcast through the iPhone speaker,

00:26:46 ◼   ► it sounds a lot better now,

00:26:47 ◼   ► because you kind of changed the IQ to optimize it

00:26:49 ◼   ► for the type of speaker it is.

00:26:51 ◼   ► But if I'm remembering right, you added that

00:26:52 ◼   ► because you discovered that a lot of people

00:26:54 ◼   ► listen to podcasts playing out of the iPhone speaker,

00:26:58 ◼   ► which I wouldn't have guessed.

00:27:00 ◼   ► - And yeah, and I listen to it

00:27:01 ◼   ► out of the iPhone speaker all the time,

00:27:03 ◼   ► but I didn't think most people did.

00:27:04 ◼   ► And yeah, it turns out a good number of people do,

00:27:07 ◼   ► so I thought this is a feature worth doing.

00:27:09 ◼   ► With my watch app, I decided, you know,

00:27:11 ◼   ► I still have my WatchKit 1 app,

00:27:14 ◼   ► and a lot of people have asked me for WatchKit 2,

00:27:16 ◼   ► so I decided to look,

00:27:17 ◼   ► and how many people are actually using the Watch app?

00:27:20 ◼   ► And it turns out the number is very, very low.

00:27:23 ◼   ► And so now I know, like, you know what,

00:27:24 ◼   ► I can hold off on that.

00:27:25 ◼   ► I can wait until WWDC, wait and see, you know,

00:27:28 ◼   ► what's happening with WatchOS,

00:27:30 ◼   ► and maybe just like skip WatchOS 2

00:27:32 ◼   ► and go right to WatchOS 3 before I invest time into that.

00:27:36 ◼   ► So there's all sorts of really useful things.

00:27:38 ◼   ► Like, I discovered that, you know,

00:27:40 ◼   ► I'm better off investing time in the iPhone speaker

00:27:42 ◼   ► optimization than rebuilding a watch kit app.

00:27:45 ◼   ► You can get insights like this with fairly easy

00:27:48 ◼   ► to collect data.

00:27:50 ◼   ► And I think ultimately, the reason

00:27:52 ◼   ► that I find that this is so important for me

00:27:55 ◼   ► and my business is the nature of doing the kind of work we do.

00:28:00 ◼   ► We're just one man shops.

00:28:04 ◼   ► Our most limited resource in most realities is our time.

00:28:09 ◼   ► There's only so many things we can work on.

00:28:10 ◼   ► There's only so many projects that we can tackle.

00:28:13 ◼   ► And having a way to concretely say,

00:28:17 ◼   ► this is worth doing, this is why,

00:28:20 ◼   ► and pointing to a number and saying,

00:28:22 ◼   ► if I do this, this will benefit 50% of my users,

00:28:25 ◼   ► is incredibly helpful to get out of the kind of,

00:28:30 ◼   ► all the rabbit holes that otherwise I find

00:28:32 ◼   ► that I'll end up going down,

00:28:34 ◼   ► and just be working on projects

00:28:37 ◼   ► that I think are kind of cool or interesting,

00:28:39 ◼   ► but ultimately aren't helping my business be sustainable

00:28:42 ◼   ► or my apps to be really useful.

00:28:45 ◼   ► And so it's such a vital thing to get,

00:28:48 ◼   ► once you kind of start going down this road of saying,

00:28:50 ◼   ► what would I like to know about my users

00:28:53 ◼   ► and how can I use that to then make better decisions?

00:28:55 ◼   ► - Exactly.

00:28:58 ◼   ► All right, that's all the time we have for this week.

00:29:00 ◼   ► Thank you everybody for listening

00:29:01 ◼   ► and we will talk to you next week.

00:29:03 ◼   ► - Bye.

00:29:04 ◼   ► [