From the Dashboard to the Inbox — An #IndieDev’s analytics solution

Image for post
Image for post

Any project I’ve ever worked on that wasn’t my own, there’s always the one project owner who wants every analytics SDK they’ve ever heard of compiled into their app. Measuring everything they can think of, mostly in case it might be useful, with no plan of how to compile, correlate or even understand the mass of data they were unnecessarily collecting.

And then there’s my own apps. For which I’d love to collect specific analytics that help me better understand my users like, for example, which features of my app users like or use the most so I can focus my efforts there.

However, for every analytics SDK I’ve used in client apps, I’ve not found one that could tell me any of that without some over complicated setup involving filters, graphs, charts, keys, etc.. 😴😴

I mean, I do currently use the analytics dashboard, (shocker — I use Firebase Analytics) for some of the useful information it automatically collects, like making sure there’s no huge drop offs in installs because of some issue I wasn’t aware of, or on the off chance there’s a huge spike in installs as the app got featured somewhere prominent (hi Forbes 👋).

But that’s the extent of my Analytical Dashboard prowess.

Which is another thing — if I did figure out which correct combination of buttons & levers would get me to the data I want to know, am I seriously expected to visit the analytics dashboard on a daily basis to comb through all that for each one of my apps??

Dashboards I already use:

  • Firebase Analytics - as mentioned above.
  • Crashlytics - which I use daily, checking to ensure my latest update didn’t break the app for everyone. Or Google’s latest update didn’t break my app.
  • the Play Developer Console - which I check fairly regularly for new reviews to see if they require action (why do people think “leave a review” means “ask for support”?!), checking the direction my rating is going, how many IAP’s were purchased & is there a trend, etc etc..

It’s ALOT of information. And I have to manually go in check all of it. Not to mention the fact that I find myself traveling a lot these days so I don’t always have access to good Internet or the time to go through all the data. All I really want is the cliff notes - the things I deem important, to be delivered to my inbox, once a day.. is that so much to ask?

Analytics made easy

Now before you get carried away, no — I don’t have a way to compile all that information into a single daily email. Although Google if you’re reading this — pretty please? 🙏

No actually where I’m going with this is, from that thought it occurred to me — what I really really want to know are things that are specific to my app’s usage. Not just generic things like downloads, or installs, or purchases, or even Activity views.. More specific.

Take one of my recent apps, Coffee-Working, for example. It’s a user populated app of coffee shops that are great to work from all around the world (or at least, where people have submitted places). And what’s important to me specifically for this app is..

  • How many new coffee shops were submitted today?
  • How many searches were performed?
  • Which places in the world were searched the most?
  • Are people using the map view or are people using the list view?
  • Do people click through to a coffee shop’s Instagram page to check it out or do they go straight to it’s Google Maps directions?
  • And so on….

Simple things, that require minimal effort to log, zero effort to compile & delivered straight to my inbox — no dashboards!!

And so, as us developers do when there’s no existing solution in sight (or our Googling powers for a solution have failed us) I built one.

What is DroidStats

DroidStats (such a creative name!) is a simple service that lets you log events in your app, however you chose. Activity opens, feature uses, etc.. Similar to how an analytics tool would work but much much simpler — it only counts events.

Each morning (which might end up being the evening depending where in the world you are — it’s a work in progress 😅) you get an email with an overview of all the stats you logged. This feature was used X times today. 25 coffee shops were submitted. 7 searches were performed for London while 3 where performed for New York. And so on.

It’s built on a typed event system so you can use it to log literally anything you want.

For example let’s say the type of event you’re logging is FEATURE_USE, the event itself is “Coffee shop submission”. Done.

StatManager.logEvent(context, FEATURE_USE, “Coffee shop submission”)

Every time someone submits a coffee shop you fire that event, once a day DroidStats will collate all the information submitted for your app across all your user devices & email you the daily overview.

Image for post
Image for post
Email from DroidStats for Coffee-Working

It’s that simple.

There’s a few pre-provided Type’s in the SDK but you can create any type you like, likewise events are also completely custom. The SDK was built to only increment a count of whatever you tell it to, in fact the only thing it does by itself is count today’s app installs & today’s app updates to a particular version. And even then this is completely optional, if you have no interest in that or would prefer to check the Play Console yourself you can turn it off — personally I want to have to check it as infrequently as possible, hence why I built this in.

My Saviour — How do I get it??

Right now the service is in beta and being used in a number of apps to trial it (dw — my users have an option to turn if off per GDPR), so if you’re interested in giving it a go you can do so by registering your interest here, if there’s enough interest I plan on opening it up to everyone to use.

Now be forewarned all you indie devs, with your minimal budgets & your ingrained Android-ness of “it should be free” (I’m not judging — I’m one of you), I do plan on making it a paid service. I know — the horror! However my reasoning is not solely monetary. If we take just my user base alone, if every user was to have it enabled, that’d be around 100k writes per day to log each install’s analytics! Which equates to somewhere around a Gazillion dollars!!! Okay probably not a Gazillion, but it would cost dollars. And as much as I love the Android community there’s no way in hell I’m paying for you to use something I built. I might not be an analyst but I can just about do maths. Sorry.

However, I’d love to hear what people would think is a reasonable monthly fee to pay for something like this, to make it accessible to everyone. Assuming you want to use it — if not you can actually probably stop reading here, save yourself some extra eye movement.

If you are interested however, you can register your interest on the Firebase hosted, Jekyll built site I threw up here, you can also submit your vote on pricing there.

And that’s that! 🤷 I would love to hear people’s experiences implementing useful analytics in their apps, am I missing the boat? Did I just reinvent the email for no reason? Is there an email service that already does this? Preferably for free? I’m all ears..

And of course feel free to leave a comment, privately message me if you’re shy & donate if you’re loaded.. you know the drill. 🤓🤓

PS: In response to the inevitable question..

DroidStats does NOT collect any user identifiable information. In fact the only information it collects is the events you submit, along with a random UUID to identify that install purely so it can show you stats like “8 coffee shops submitted by 3 users”, where UUID is used to differentiate users.

Once the email is sent all of the data is wiped, both locally & remotely, and the day starts over. Meaning no stats are ever stored more than a day. Easy.

Written by

Freelance Android Developer since 2012 🎙️Host of CoffeeAndCodingPod.com 🌍 World Tourist ☕ Coffee Addict | robj.me

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store