A class to handle all analytics related operations.

Posted on Aug 22, 2014 , 3 minute read

Just recently I have finished adding google analytics in Wish ‘N U. Being a useful tool to collect usage behavior data, it was and will be essential to include this tool in my app. For future reference for me and reference of others this is the post that will help you to integrate analytics. And with almost 4 months of experiments and analysing needs I have created a class that handles almost all the operations for google analytics. It’s called AnalyticsLogger a class that works as a wrapper for Google Analytics operations.

If you’re already familiar with google analytics and have already working with google analytics for android v4 you can skip next paragraph.

If you are not familiar with Google analytics I recommend you to read analytics guide here. I request you to read this first because it covers almost all the basic things.

At this point I assume you have introduced yourself with google analytics. So let’s start with the class. Here is the class.

To start working with this class you should have enabled google play service (atleast version 4.3 from where google analytics is added into Google Play Services). However it’s recommended to use the latest version of Google Play Services. If you are using gradle it’s more easier for you, this class is working fine with com.google.android.gms:play-services:5.0.+. You will also need your analytics xml file added in the app.

To initialize, it only needs a context variable. And it’s singleton class, so you can initiate it by calling AnalyticsLogger.init(context); and start using it. While initializing I have added code to ask for user consent in a dialog. And three buttons. One each to accept or reject the request. The third button is to show more information regarding to analytics.

To send events I wrote sendException,sendEvent and sendTime methods, asks analyticsTracker to call respective methods and accept same arguments which can be passed directly to related tracker methods.

Many developers are interested in getting data related to screensize and it’s density bucket. I wrote one method to send this data as an event in google analytics. To use it, simply call analyticsLogger.sendScreenData();.

I’m also planning some more versions of it. And possible roadmap is

  1. Add activity tracking in it. It will also require existing sendScreenData() to be renamed.
  2. In asking user consent it should be optional to add third button.
  3. Add your own strings to user consent dialog, including title, message and text on buttons.
  4. Enabling analytics by tracking id only, while it’s possible I have not got enough time to test it.
  5. I am also exploring possibilities to initialize analytics from following
    1. From your own analytics.xml
    2. Only from tracking id.
    3. From tracking id and default analytics.xml
  6. Working with multiple trackers.

See Also



- WishN'U      - Deprecated      - Google Analytics