The Great search for Analytics services
blog.coredumped.org
blog.coredumped.org
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.
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.
KISSMetrics, visually, kicks ass. What sucks about it? It's not real-time. No simple real-time data export/querying API.
The latter is nearly a show stopper. I mean, really? No export/querying API?
Also - KISSmetrics allows for data export to an S3 Amazon bucket in JSON format. http://support.kissmetrics.com/apis/data/data-export-setup
~Disclosure: I work at KISSmetrics.
We also run GA in parallel just for the real-time reporting (which the biz folks love).