Another lesson learned the hard way is that I will not touch any analytics SDK code unless it is open source. It needs to have an actual clear license attached.
We got bitten with Google Analytics, because it can only report against one ID. That means if a library in the app also uses GA, then you can't have the different parts using different ids. This turned out to be a showstopper and they had no code to examine.
You can take a look at http://count.ly if you are looking for an open source solution. It has a Node.js + MongoDB server and Android & iOS SDKs. (Yes I'm the developer)
It only matters that the client is open source (note I didn't say free software). This is so you can read the code and be proactive about issues in it. For example the mixpanel client for Android caused one thread to be created whose sole purpose was to fire a timer event every 60 seconds, which was used in a second thread to see if there was any work to do. It is a lot easier to figure out stuff like that is happening from the source than to try and work out who is responsible for extra threads showing up in the debugger. If there is a suitable license then you can at least modify and redistribute the changed code.
We do actually do our import and custom processing in MongoDB, so that side is covered.
Comments
Have you tried http://www.kontagent.com?
All I find is marketing.
Another lesson learned the hard way is that I will not touch any analytics SDK code unless it is open source. It needs to have an actual clear license attached.
We got bitten with Google Analytics, because it can only report against one ID. That means if a library in the app also uses GA, then you can't have the different parts using different ids. This turned out to be a showstopper and they had no code to examine.
You can take a look at http://count.ly if you are looking for an open source solution. It has a Node.js + MongoDB server and Android & iOS SDKs. (Yes I'm the developer)
It only matters that the client is open source (note I didn't say free software). This is so you can read the code and be proactive about issues in it. For example the mixpanel client for Android caused one thread to be created whose sole purpose was to fire a timer event every 60 seconds, which was used in a second thread to see if there was any work to do. It is a lot easier to figure out stuff like that is happening from the source than to try and work out who is responsible for extra threads showing up in the debugger. If there is a suitable license then you can at least modify and redistribute the changed code.
We do actually do our import and custom processing in MongoDB, so that side is covered.
That's because it's not free. In general, you get what you pay for.