We decided to try some analytic tool to compare it with Flurry analytics (http://www.flurry.com/) that we currently use in our applications.  Our choice has fallen on Motally Mobile Analytics (http://www.motally.com).

After signing up to Mottaly, we add our application and got an “Application Key” which should be used within the API initialization.  Then we download motally library and API documentation and started to integrate Motally into our application…

First of all we read the API documentation (http://motally.com/api/motally_android_api_doc.pdf) and tried the example from this document. And we were surprised that our code is not compiled because some methods cannot be found.  Our next step was motally javadoc studying. We have found out that javadoc and API documentation have a lot of differences. For example API documentation says:

Every Activity or Service within your application must retrieve the MoTrack object in order to invoke tracking calls on it. This is done with the help of the getSharedTracker method.”

But, there are no getSharedTracker() method in the motally library. And all methods are static and non of them do not return instance of Motrack object.

So, motally API Documentation is absolutely useless as does not coincide with the latest motally library for Android.

Eventually, using javadoc we have integrated motally analytics into our application, but… In the sniffer log of our applications we did not see any posts made by motally API.

To understand how motally works we … decompiled there code 🙂

All motally API methods are static in MoTracker class that extends android.app.Service.

To start tracking you need to start initSharedTracker() method, which init some preferences (such as Application Key) and starts Motally Service.

MoTracker object is initializing in onStartCommand() method which is called by the system every time a client explicitly starts the service.

But onStartCommand() method is available only since Android API level 5. Before Android API level 5 the onStart() method were used. Because of that Motally does not work on Android 1.5 and 1.6 devices.

Thus having tried Motally Mobile Analytics we decided to stay with Flurry 🙂