Avatar photo

What are users doing in your app?

My name is Rebecca and I’m a junior engineer here at Keen IO. I recently graduated from Hackbright Academy, a 10-week developer bootcamp for women. For my final project (thematcproject.org), I created a crowdsourced game for tagging words with parts of speech. My app then assembles these words into a corpus for anyone to download or browse.

As a newly minted junior developer, the thought of doing data analytics on my web app was pretty intimidating, especially since I had no clear concept of what “data analytics” meant. What did I want to know about my users? How would I even collect the data to analyze? Did I need another database for whatever it was I ended up collecting? I had no idea what I was doing or why I even needed to do it.

I took a weekend class on data analytics and discovered that it isn’t some scary, nebulous creature you need to tame. Ask yourself just one simple question and you’re well on your way to being an analytics nerd. What do you need to know about your customers? For my app, I needed event data. I wanted to know who was registering but never playing, who was downloading the corpus, and who needed more information on how to play the game. Some of these things are doable with standard analytics tools, and some required customization. Since I needed custom analytics anyway, I just used Keen IO’s API for all of my analytics.

Getting started with Keen IO is actually really simple. You can keep track of a huge amount of attributes for each event, and your event data can come from both the server and the front end. I ended up tracking my events using the Python client, but I could have tracked the same events using the JavaScript SDK just as easily. Every time someone registers for my site, my server sends an event to Keen IO’s database under the “register” collection I created.

I’m currently keeping track of when a user registers and their username. I have a separate “signins” collection that keeps track of when a user signs in and their username. Now, I can easily assess the percentage of users who come to my site and play more than once. Customer retention for my app isn’t super vital, but it might be for your app. I also don’t need a ton of data on who exactly is signing up, how they were referred, et cetera, but you can easily track that in your app if you want to.

Other than how many players were returning, I really wanted to know which players were “super users” versus the more casual players. Whenever my game page loads, I send another event to Keen IO. Here, I’m keeping track of a bunch more attributes:

  • the username
  • how many points in the game they have
  • how many words they’ve tagged with a part of speech
  • how many of those words have been verified (by a certain amount of other users tagging it similarly)

As you can imagine, a lot of that data is coming from my own server to begin with, and it changes each time the player plays the game and tags a word.

However, since I’ve stored all of this data in Keen IO’s database, I can now look at a player’s history and see how they’ve changed their tagging over time, how often they’re playing, what sorts of words they tag, and how often other users agree with their tags. This sort of data isn’t available in my regular database, and is also a pretty large amount of data to have to worry about storing for what is essentially now a pet project.

Obviously once you send your event data to a database, you want to be able to query for it again. Luckily querying is also really straightforward and simple to set up on Keen IO. I created an administrator dashboard for my web app that shows me some stats on my users, and you can use Keen IO’s data visualization tools if you want to be fancy. Alternatively, you can also log into your Keen IO workbench and query directly from there. If you do that, Keen IO provides you with the visualization, JSON, JavaScript, and query URL for that specific query so you can just copy/paste it as needed.

So far working with Keen IO’s API has been really simple and insightful. I discovered that most people who register for my game are actually coming back and playing it more than once (success!!) and that there definitely is a learning curve in discovering how to tag words properly. In the future, I can use these insights for all sorts of different things — refining the instructions to lower the learning curve, for instance.

My web app is obviously way different from yours, but the same principles apply. Start from the bottom: Figure out what information you need to gather, set up your website to start tracking that data, and then start reaping the benefits! If you need any help getting started, check out Keen IO’s API documentation, or you can get in touch with me directly at rebecca@keen.io, and I’ll happily lend a hand.