Making Better Decisions Based On Tracking Data


Originally published at www.clingmarks.com Jun. 30th, 2011.

After a long wait, finally it’s my time to contribute to #iDevBlogADay!

Today I won’t talk about anything too technical. Instead, I’ll talk about how to make better decisions based on data in my iphone app development experience. Be more specific, how to leverage the power of Google Analytics.

There are plenty of tutorials online about how to do the integration, such as Google’s own doc, or this one from icode blog, so I don’t want to repeat that. My focus will be what data I track, what I have learned from that, and how these data have impacted my decisions.

A Little Bit Background

In June 2010, I released my two iPhone games “Penguin Links“, lite and full version (the latest version is available in app store at: http://itunes.apple.com/app/id443106263). After that, I had two updates followed in August and October.

In US, they are not very successful; but in China, they did become very popular for a while. I used Google Analytics to track user behavior from the very beginning, and have learned a lot from that. That’s what I want to share in this post.

Visitor(Player) Track

This probably is the most important thing to track for an iPhone app. If you just want to track a “visit”, which means somebody opening/exiting the app, you don’t have to do much. All you need to do is when the app starts, in “- (BOOL)application☹UIApplication *)application didFinishLaunchingWithOptions☹NSDictionary *)launchOptions”, call:

[[GANTracker sharedTracker] startTrackerWithAccountID:GOOGLE_ANALYTICS_TRACK_ID dispatchPeriod:-1 delegate:self];

And in “- (void)applicationWillTerminate: (UIApplication *)application” (or “- (void) applicationDidEnterBackground: (UIApplication *)application” for iOS 4), call:

[[GANTracker sharedTracker] stopTracker];

(Please note that I set “dispatchPeriod” to -1, which means I always dispatch the analytic data manually.)

In this way, Google Analytics will automatically track when the session starts, when it ends, where the user is from, is it a new or returned customer, how long is the session, what device (very basic information about device) they use, even the mobile carrier.

Following is the visitor trend for my Penguin Links game from the day it was released to last weekend.

As you can see, the traffic had a huge jump two weeks after the release. I still remember I thought Google Analytics must have gone crazy, until I found out my game had become the #2 overall app (not just games) in China! After learning that, I quickly released an updated version with Chinese localization.

Another interesting thing to see is how engaging the game is. The average time played per session is a good indicator for that. Following is the graph for my game from Aug. 2010 (I didn’t include Jun. and Jul. 2010 because too many new users introduced too much noise).

It’s clear that while the number of total players drops, the average play time per session actually grows from 23 mins / session in Aug. 1st, 2010 to almost 45 mins / session recently. That’s reasonable since when more players stop playing, the ones left are more engaged players. And playing for 45 mins per session on average? That’s actually very encouraging! From the data I can clearly tell, for people who likes it, the game is not bad at all.

Then why didn’t it fly in US?

Event Tracking and Advanced Segment

To figure out that, I need more data — in Google Analytics, that is called event tracking, the tracking result can be found in the “Content” section on the left side. In event tracking, you need to define category, action, label and value for each event. In my game, there are six levels: Elementary, High School, SAT, College, GRE and Grad School. I wanted to know for each level, how are my players doing — is it too difficult or too easy? which level do they play the most? To achieve that, in my tracking data, I use “GAME_OVER” as a category, which contains actions such as “Elementary Success”, “Elementary Fail”, … I also want to know if there is any different behavior between Chinese players and US players, since my game was fairly popular in China, but didn’t make any splash in US. To do that, I use “Advanced Segments” on Google Analytics. To define an “Advanced Segment”, you need to specify some filters to include only the traffic you are interested. You can use logical statement such as “AND” or “OR” to connect several filters together. In my case, I just need to define “US iPhone Traffic” as “Country/Territory contains United States”, and “China iPhone Traffic” as “Country/Territory contains China”. Once this is done, I can compare the data easily.

China iPhone Traffic

US iPhone Traffic

From the data we can see clearly, the biggest differences between Chinese players and US players are:

  • 61% Chinese players play college level, but only less than 49% US players do the same;
  • For all the levels, Chinese players’ success rates are: 6.7% (College), 28.7% (High School), and 46.9%(Elementary); and for US players, they are: 3.2% (College), 40% (High School) and 25.2% (Elementary).

Clearly Chinese players play more advanced levels (College) and have higher success rate (6.7% vs. 3.2%), and US players play the intermedium level (High School) more and have better success rate there. The most interesting part is the Elementary level, which is the entry level for this game. At this level, Chinese players performed much better: success rate is 47% vs US’ 25%.

Why? It’s not that Chinese people are better game players, it’s because this type of game is already very well-known in China. There is no learning curve, and most players can start playing immediately after downloading. But in US, this is pretty much a brand new game, so the learning curve is deep.

I know there are many reasons why a game didn’t fly, but after looking at these data, I know one of them is the learning curve. If I want it to be successfully in US, I must make it easier to understand, easier to start. So, in my recently finished second version of this game, Penguin Links 2, which was just submitted to App Store a few days ago and still waiting for review, I specifically added a new level called “Kindergarten”, which is basically an interactive tutorial, and some other much easier levels, to make people new to this game understand the concept quickly.

What Devices/OSes to Support

Comparing with Android developers, we are really lucky that we don’t have to deal with the fragmented market. But we still need to make decisions on when to drop support on a specific device or OS version. With Google Analytics data, that decision is a lot easier to make. Google Analytics tracks device type itself, but that information is too basic to use. To get better information, I have to do it myself.

As to parsing device information, Erica Sadun’s UIDevice extension is the best I’ve ever seen. What I did was at each game starting, sending the device model (iPhone 3G/3GS/4 …) and iOS version to Google Analytics. Following are the examples for iOS version tracking.

iOS Versions (8/1/2010–11/30/2010)

iOS Versions (3/1/2011–6/29/2011)

Above two graphs show the distribution of iOS versions. The first one is between 8/1/2010 to 11/30/2010, the second one is between 3/1/2011 to 6/29/2011. As you can see, the percentage of iOS 4 has jumped from 32% seven months ago to about 65% today. Most importantly, I know iOS 3.1 is still playing a role among my users (about 27% recently), so I’d better not to drop my support for them. I also did similar things to the device model data, hence I know I don’t have to care iPhone 1/3G and iPod 1G too much.

Not only you can make better product decisions with these data, you can also find some really fun facts from it. For example, do you know players from which country plays the longest time per session? It’s Australia! They play average 1 hour and 5 minutes per session! Do you know which day of the week people play my game the least? It’s Wednesday. I guess everybody is under work pressure on that day. Which US city downloaded my game the most? You got it, It’s New York City.

With the latest Google Analytics 1.2 library, you can track even more data now. For example, you can use Ecommerce Tracking to track your in-app purchase …

OK, I think I have talked too much. Thank you for your patience for coming this far. In short, by leveraging the power of data tracking (such as Google Analytics), you can make better, informed decisions in your iPhone development. And finally bellow are the before (Penguin Links) and after (Penguin Links 2) of the home screen/icons of my games — you can see the difference. When my new game is available , I’ll post an update. So check back soon.

Penguin Links Icon
Penguin Links 2 Icon
Penguin Link Home Page
Penguin Links 2 Home Page
Show your support

Clapping shows how much you appreciated Yuchen Wang’s story.