Wow quite the mixpanel ad. My own experience started with Google Analytics which turned sour. Their Android API only supports one tracker instance and reporting id so you can't have different components in the app using it simultaneously. While it does support events, it only supports reporting one value with the event. And it only shows the average for numerical values which is spectacularly useless - you want to see the distribution of the values. (They also only have two prices - free and $150k per year.)
Mixpanel was tried next. Thankfully you can supply a JSON object of key values with each event (properties in their terminology) which matches our usage model. Unfortunately the reporting is nowhere near as useful as Google Analytics. For example there are no pre-canned reports, so if you want to find out anything (eg platform, version and country distributions) you have to build new reports. (I have the sneaking suspicion it was all designed by architecture astronauts - after all data is data when abstracted as data.) You can't copy reports across projects. Reports have to start with a particular event name - you can't do them across events (ie any name). Their realtime view doesn't show any properties. When doing a multi-dimensional analysis (eg country then operating system), everything except the last one has to be an expression - you can't say slice by all countries then by all operating systems - the country bit would have to be an expression. They do use geoip to add country information, but won't add region/state or ISP information. That makes it hard to work with US data. Their Android code is visible, but requests for an explicit license have taken over a month and they still can't make their mind up.
Despite all this, Mixpanel do have one redeeming feature. You can get an export of your raw data (comically bad mishandling of timezone issues aside). It isn't real time (generated once a day). However Google Analytics does not let you get the raw data - only queries. We have resorted to building our own analysis tools on the exported data from Mixpanel, but are still stymied by lack of geoip for region and isp. (Yes there have been support requests, no they haven't actually done anything about these and many other issues.)
I had considered trying out Localytics, but thankfully this article saved me that effort.
Some of the other products like Flurry aren't usable because they also do advertising which is a conflict of interest for our use cases.
Some lessons:
* You don't really find out the various gnarly issues with any of the analytics services until you are quite far down the road with integration and getting a variety of data back and need to slice and dice things in various ways
* Don't touch them unless you can get the raw data back out, not just aggregated reports
* Make sure they can coexist in your apps (ie other libraries/components in the app can also use the same service but with a different id)
* Make sure client libraries are open source, read the code and make sure there is an actual license attached so you are on solid ground when you need to make modifications (you will always need to)
* The various services all suck in some way. Hopefully someone will come along that doesn't.
I've paid for KISSMetrics and really liked it. I know Mixpanel has grown, does anyone have reasons why I should use Mixpanel over KISSMetrics?
Also another good simple analytics service for all the different services you might use is DigMyData (http://digmydata.com/). I'm in a trial right now and finding it pretty useful.
Just curious, but what makes real time so important to you? What do you do with your data instantly that wouldn't be better served rolling up over a longer period of time to remove any noise-iness and natural variability in your data? I'm genuinely interested in your use case.
I've also heard that KISSMetrics is more about identifying people rather than data points, so it makes retention and user-based events easier, but it seems mixpanel does that too, so I'm not sure.
I'm really struggling to find a cheap solution to this. So many metrics services seem to be based around conversion to a sale. For ad-supported sites, you need pretty huge numbers to turn revenue, and then you're priced straight out of these kind of products.
Note that you don't have to report everything - use a sampling rate. On first deployment I have a sampling rate of 100% (ie all sessions are reported) and then decrease the sampling rate as the user base increases.
There are also some great services out there if your web application is database driven - such as http://chart.io. Easy connection, nice dashboard, and really modestly priced.
I'm partial to Localytics, but that's because we pay for their Enterprise solution which insures a complete copy of your raw data stream on S3 and much better reporting (including custom funnels).
We also run GA in parallel just for the real-time reporting (which the biz folks love).
Mixpanel was tried next. Thankfully you can supply a JSON object of key values with each event (properties in their terminology) which matches our usage model. Unfortunately the reporting is nowhere near as useful as Google Analytics. For example there are no pre-canned reports, so if you want to find out anything (eg platform, version and country distributions) you have to build new reports. (I have the sneaking suspicion it was all designed by architecture astronauts - after all data is data when abstracted as data.) You can't copy reports across projects. Reports have to start with a particular event name - you can't do them across events (ie any name). Their realtime view doesn't show any properties. When doing a multi-dimensional analysis (eg country then operating system), everything except the last one has to be an expression - you can't say slice by all countries then by all operating systems - the country bit would have to be an expression. They do use geoip to add country information, but won't add region/state or ISP information. That makes it hard to work with US data. Their Android code is visible, but requests for an explicit license have taken over a month and they still can't make their mind up.
Despite all this, Mixpanel do have one redeeming feature. You can get an export of your raw data (comically bad mishandling of timezone issues aside). It isn't real time (generated once a day). However Google Analytics does not let you get the raw data - only queries. We have resorted to building our own analysis tools on the exported data from Mixpanel, but are still stymied by lack of geoip for region and isp. (Yes there have been support requests, no they haven't actually done anything about these and many other issues.)
I had considered trying out Localytics, but thankfully this article saved me that effort.
Some of the other products like Flurry aren't usable because they also do advertising which is a conflict of interest for our use cases.
Some lessons:
* You don't really find out the various gnarly issues with any of the analytics services until you are quite far down the road with integration and getting a variety of data back and need to slice and dice things in various ways
* Don't touch them unless you can get the raw data back out, not just aggregated reports
* Make sure they can coexist in your apps (ie other libraries/components in the app can also use the same service but with a different id)
* Make sure client libraries are open source, read the code and make sure there is an actual license attached so you are on solid ground when you need to make modifications (you will always need to)
* The various services all suck in some way. Hopefully someone will come along that doesn't.