Unity Analytics vs. Google Analytics vs. GameAnalytics (vs. other solutions)

Update: Shortly after creating this thread, I completely changed this first post from questions to the results of my research. The 3 posts that follow this one might not make much sense now. ;)

Seeing as there aren't many useful threads about Unity and analytics, I'd like to write what I have found on analytics solutions, from the perspective of someone who has never used analytics before.

First of all, from what I could gather, GameAnalytics, Flurry and Google Universal Analytics are probably the 3 most used solutions, in no particular order. For games, Google doesn't seem to be used as much. Unity Analytics now also looks like a good possibility, benefiting from its strong integration with the engine. Then, there are other services, like Parse, Soomla, Keen IO, among many others. If you think any of them have features that surpass the others in some way, please do post. :)

What follows are pros and cons I was able to find for each solution. These do not currently include setup difficulty, most features (heat maps, cohort analysis, etc) and are sometimes subject to opinion (though I should be mostly impartial). Some solutions might also have pros/cons that I mention in another one, without that being mentioned. If that happens, it is only because I don't know it. Finally, I might simply be taking wrong conclusions in some places. Please share your knowledge!

GameAnalytics

Pros

  • Entirely free (no premium plan) and has no discernible usage or event limits.
  • Has several events pre-configured for Unity, such as sending an event when a scene is loaded (and sending the time the player spent in the previous scene), your average FPS, when your FPS get to critical levels, error logging, etc. It makes shameless use of the no-limit of events. These are all activated by check boxes in the GameAnalytics settings, which is easy to setup.
  • (Their Unity SDK used to work on all Unity platforms, but their new version currently only works on iOS and Android.)
  • They have benchmarks, so that you can compare various metrics for your game against other games in the market which use the service.

Cons

  • Events are mainly organized by their ID, such as "Game:Level:Begin" and "Game:Level:End", but the associated event value must always be a float and what you can do with it is mostly limited to sums and means (no distribution/histograms). If you want to send a "duration" along with your "Game:Level:End" event, you can't see the distribution of duration from all players; only their mean and sum (though this is a limitation of many other platforms). You can get around this by including the time range in your ID, because GameAnalytics allows displaying a histogram from an ID category. For example, create IDs like "Game:Level:End:0-20s", "Game:Level:End:21-40s", etc and send those (this is limited, error prone and seems to involve quite some work).
  • This also makes it difficult to send many values associated with a single event, such as the level ID, a time, a score, etc. You have to send several events, one for each value. This shouldn't change in the recent future, based on the answer their support channel gave me.

  • Some people report that the dashboard is not useful for more complex comparisons or filtering.

Flurry Analytics

Pros

  • Completely free (no premium plan).
  • From general feedback, it's very easy to use and has nice visualization tools.
  • One of those tools is the User Path, a flow graph which lets you not only see sequences of actions (like funnels), but what percentage of players took each action after another. Example: from the players that got to the main menu, 60% of them clicked "New Game", other 35% clicked "Options", and the rest exited the game.
  • Events can take a dictionary of associated values (instead of just a single one), so, along with your "LevelComplete" event, you can send the level ID, the score, etc. However...

Cons

  • ...the dictionary of parameters is only composed of strings, so it ends up having the same no-distribution problem as GameAnalytics, where values must include hand-made ranges in order to display useful distribution information (correct me if I'm wrong!). Furthermore, strings don't have sums or means...*
  • No SDK for Unity, so it requires a third party plugin to work in all Unity platforms (if there is one like that at all), or many plugins. Flurry supports the following platforms officially (different packages for each): iOS, Android, Windows Phone 8, Windows 8 (using this ridiculous trick), BlackBerry and HTML5.

*Just for the record, when a system uses a dictionary of strings as parameters for its events, those strings are generally called "dimensions". They are not much different from the GameAnalytics way of separating the event ID in sections/categories, though they are much more flexible.

Other info

  • Event limits exist, but seem reasonable (though that always depends on the case). Quoting the FAQ, "there is a limit of 300 Events for each app". These are event "types", actually. It means you can create 300 and use event IDs. Each event can then have 10 parameters/dimensions. Each parameter can have an infinite number of different values, though only the 500 more relevant are displayed in the dashboard (the remaining are grouped under "Others"). The display limitation probably exists in other platforms as well and is kind of expected. You can send a max of 1000 events per session (a session is generally started when the user opens the app, and closed when it goes to the background).

Google Universal Analytics

Pros

  • Many data visualization tools, though it might be more complex than other platforms, on average (this is just from some feedback; I haven't checked this).
  • Has specific calls to measure timing events - which are common - social events, etc.

[I'm sure it has other advantages, as you can define custom things in the dashboard, but it seems a bit complex and I haven't had the time to research it more deeply, so if anyone has insight on it, please share]

Cons

  • No official SDK, though it should theoretically support all platforms, thanks to the Rest API. There are paid plugins in the asset store to support Google Universal Analytics.

  • Just like in GameAnalytics, we can only send a single value (*see "Other info" section below) along with the event (this time a long integer), though the event ID should have a complex structure to allow useful queries. In fact, the ID is explicitly divided into Category, Action and Label.

  • Limits (from here): "10 million hits per month per property" (reasonable for some; not enough for others). After this, you must upgrade to Premium. "200,000 hits per user per day". "500 hits per session not including ecommerce (item and transaction hit types)". Depending on the expected session length in your game, 500 events might be too little. (?) 2 events per second limit, on average. Max of 20 at once.

Other info

  • In fact, Google Analytics allows defining custom dimensions as strings, that seem to end up being similar to sending parameters along with events (which is what happens in Flurry). Nevertheless, these dimensions must be defined in the web interface and not dynamically from code.

Unity Analytics

Pros

  • Events have a dictionary of . In theory, this means that you can send anything with an event. A time float, a score int, a level ID string, etc. As long as the object type is a basic type, recognized by the server, and there are decent visualizations, this means that anything is analyzable.
  • Already supports most if not all relevant platforms in Unity, following the cross platform paradigm.

Cons

  • Currently in beta, so many things can and will change, and there's no final stand on event limits, pricing (although at least a basic solution will be free).
  • Limit of 100 custom events per hour (per user), as far as I know. This can go out fast, depending on the game, so you might have to condense some events into a single one somehow.

Other info

This is a post that tends to become out-of-date quickly, so if you are a new reader, also read the posts by other users, below!

  • Daniel
11 Likes

more options
http://soom.la/
https://parse.com/
http://en.kii.com/
all have free analytic dashboards you can setup in a couple minutes and play around with

1 Like

It's a bit hard to gauge Unity Analytics at the moment as it is beta.

There's also Flurry which provides some really good dashboards for viewing your data.

Yes, it probably is hard to measure right now. :) I had hoped for some feature comparisons but you're right. That said, there are a lot of options. I'll test a few to get a better understanding and maybe return here then.

We were looking for a cross platform solution, and while it helps if scene transitions and similar are tracked without much setup, custom events achieve the same with more work, so not having that is not a recipe for exclusion.

Thanks to you both for the additional suggestions.

I have updated (more like "replaced") the initial post to show my findings/opinions/comparisons. I intended to make this a summary of pros and cons of each solution, so if anyone has additions or corrections to my (already very large) post, please share! There are many things missing. :)

Good summation. Flurry was my favorite web interface - LOVED IT - until I began supporting multiple platforms. I cringed at needing to purchase multiple Prime31 plugins, and their stuff is pretty heavy-weight. The last 18 months, I've settled on Game Analytics - It was easy to integrate, is free, and works well with Unity. There are a few quirks about update times (sometimes data is delayed), though that is relatively minor.

The biggest weakness with GA is the limitations to the way you can browse data. For instance, comparing funnels for how many people who generated event X also generated event Y is impossible. And, it is REALLY stupid when it comes to 'Sessions' - a single player, never leaving the game, can somehow generate LOTS of distinct sessions, so your average playtime might appear to be 45s. Overall - it's my favoriate.

Gigi

Hey @CanisLupus ! Thanks for the pros/cons list - I'm sure this information is super helpful for developers (and it's helpful for my team as well :))

I can only really speak for Unity Analytics, and what I can say is that our goal has always been to make an analytics tool that was easy to integrate, that made it easy to understand and analyze your data, and that had features that were worthy of your time.

You are right - we are in beta, so things will likely change. But rest assured, we're here and we're listening. We will always recommend that developers use the analytics tool that suits their specific needs best (which may not be Unity Analytics), but we're trying our hardest to make a dashboard that is worth the time and effort investing in.

Hi - just to expand upon what @angeloferro posted, one key differentiator between other tools and Unity Analytics will be integrated in the Unity engine early in Unity 5.x cycle (this integration eliminates the needs for SDKs!). In the future, Unity Analytics will also provide reporting on Unity Cloud Services such as Cloud Build and Ads - so Unity developers will finally have one solution that brings all the important data together to help them make smart decisions for their games!

In general, we understand that there are a lot of analytics solutions out there that are interesting for various reasons. We want to provide a solution that meets the needs of the Unity developer community as effectively as possible. But as we continue to build out our functionality, we know that there are other tools out there that might serve certain needs more effectively. We encourage you to try out a variety of services as we see these other tools as being complementary, and not competitive.

@Gigiwoo Thanks a lot for sharing. :) You're actually not the first one I read saying that the GameAnalytics dashboard tends to be limited, so that's something to consider.

@angeloferro and @sschan , I'm glad I can help. I'm very divided between these analytics solutions because indeed, none of them is perfect, and certainly not adequate for everybody. One way to go is to use more than one at the same time, but that has its issues. :)

I'll try to update or fix information as I find it.

I used Unity Analytics briefly (as well as most others I mentioned) to get a feel for it, and liked the way you set the event parameters, which can be almost anything. As with other dictionary approaches, I felt it was intuitive (you pass any information relevant to the event), and in this case values are not necessarily strings, which allows a powerful dashboard that can use (for example) decent float parameter distributions instead of only categories. It's unfortunate that typos in dictionary keys can't be easily caught, but that's probably not a big problem.

I'm very interested what are the advantages of Unity Analytics and Performance Reporting over GameAnalytics and its crash reporting.

GA may has some minor flaws but it's completely free.


Hi @Ox

Please take a look at this link for additional information about Performance Reporting - https://perf.cloud.unity3d.com
We'll ask our Cloud team to synch up with you as our team isn't specifically working on Performance Reporting.

Hey @Ox , thanks for your question regarding Performance Reporting. The service is in a preview mode and at this stage always looking for feedback to help make it the best choice for you.

Similar to what @angeloferro and @sschan mentioned, over time we will be seamlessly integrated in the Unity editor, as well as with the other Cloud services.

As to the service itself, we show crash exceptions on the dashboard fairly quickly after they are encountered (a matter of minutes), allowing you to track down and debug issues found during testing at a much faster rate without having to wait for the next processing cycle to occur.

We are currently open to developers with a Unity 5 Pro license, so please try it and give us feedback in our forum (http://forum.unity3d.com/forums/game-performance-reporting-preview.83/) . Let us know how we can make Performance Reporting better for you.

Thanks!

@andyk-unity Does this track C#/js exceptions with full stack trace or crashes even in native platfrom(ios and android)?

Another solution to consider:
http://gamesparks.com

another option is microsoft azure. they have a 10,000$ contest on now too if you make a game with azure
https://msdn.microsoft.com/en-ca/mt125459.aspx?xd=315034&cr_eac=300301004

Great comparison CanisLupus . I just want to confirm, have you (or anyone in this thread) confirmed if any of the analytics discussed in the comparison above also impose a hard limit on the number of characters each argument can have? Arguments would be the name of the custom parameter type, the custom parameter type values, etc.

Does anyone know about any plans for making the Unity Analytics available for all the platforms which Unity support, including consoles?

GameAnalytics already supports all platforms right?

Hi @Mish - We support the following platforms now:

  • Mobile - iOS, Android, Windows Phone 8.1
  • Desktop - Windows, Windows 8.1, Mac, and Linux

We are always exploring additional platforms to support. :) Please submit your request via the feedback site - http://feedback.unity3d.com/ and tag the category as "Analytics."

Game Analytics does not support all platforms.

Hi @sschan

I am considering using Unity Analytics for a game I am developing with Unity, but I could not find any information about whether it allows cohorts analysis. Does it?

I've been a GameAnalytics user for a year or so and have been very happy with the product.

One thing missed in the overviews given in the OP is their latest feature - Benchmarks!

Quote from the GA email introducing this new feature:

You can now compare your games’ performance to that of all the other games in the GameAnalytics’ network. This will give you an understanding of how you fare against the competition, and where to focus your development efforts.

The Overview dashboard now shows you benchmarks for:

  • Retention (day 1, 7, 28 and 90)
  • Conversion rate
  • ARPDAU
  • ARPPU
  • Average session length

This is rather useful information since it can quickly show areas where you need attention.

You can compare your game to all games on their network or compare against genres (ie sports, action, puzzle, etc)