Are you interested in tracking your Android app activities? If yes, Google Analytics provides a service for which real time tracking of Activities, fragments, events, exceptions and crash reports can be done easily.
Steps to integrate Google Analytics:-
Step1:- Sign-in to Google Analytics Account
Select tracking to mobile app, add account name, App name, category of app, country wise time zone and select Get tracking id. You will get a tracking-id and save it as seperate.
Step2:- Apply plugin and under build.gradel add google analytics dependency and synchronize the app
dependencies {
compile 'com.google.android.gms:play-services-analytics:8.4.0'
}
Step3:- Permissions needed:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Step4:- Create folder xml inside res directory, now create a file analytics_tracker.xml and put below code inside it. The tracking id we get after sign-in to the google analytics account have to place inside the tag ga_trackingId.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- End current session if app sleeps for_image a period of time -->
<integer name="ga_sessionTimeout">300</integer>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The property id associated with this analytics tracker -->
<string name="ga_trackingId">UA-XXXXXXXX-X</string>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
Step5:- Create AnalyticsTracker class in your utility package, initialize the tacker before getInstance().
public final class AnalyticsTracker {
public enum Target {
APP
}
private static AnalyticsTracker sInstance;
public static synchronized void initialize(Context context) {
if (sInstance != null) {
throw new IllegalStateException("Extra call to initialize analytics trackers");
}
sInstance = new AnalyticsTracker(context);
}
public static synchronized AnalyticsTracker getInstance() {
if (sInstance == null) {
throw new IllegalStateException("Call initialize() before getInstance()");
}
return sInstance;
}
private final Map<Target, Tracker> mTrackers = new HashMap<Target, Tracker>();
private final Context mContext;
// creating the instance of class
private AnalyticsTracker(Context context) {
mContext = context.getApplicationContext();
}
public synchronized Tracker get(Target target) {
if (!mTrackers.containsKey(target)) {
Tracker tracker;
switch (target) {
case APP:
tracker = GoogleAnalytics.getInstance(mContext).newTracker(R.xml.analytics_tracker);
break;
default:
throw new IllegalArgumentException("Unhandled analytics target " + target);
}
mTrackers.put(target, tracker);
}
return mTrackers.get(target);
}
}
Step6:- Call below methods to initialize the tracker in your application class.
AnalyticsTrackers.initialize(this);
AnalyticsTrackers.getInstance().get(AnalyticsTrackers.Target.APP);
0 Comment(s)