I want to implement Google Tag Manager and Google Analytics in my android application.
I am totally new to analytics and google tagmanager. I am following these link link1, , link2 through this I got some basic idea about Google Tag Manager and Google Analytics.
What I did is:
I created both Google TagManager account and Analytics account.
Created all the basic step in TagManager and in Analytics account.
Also I added libGoogleAnalyticsServices this file to project lib and gtm container in project file asset.
Now what I need is. What are all the codes I need to add in my application? And where I need to add this. I created one seperated java file in the src and I added these code
import com.google.android.gms.analytics.Logger;
import com.google.android.gms.analytics.Tracker;
import com.google.android.gms.analytics.GoogleAnalytics;
import android.app.Application;
import java.util.HashMap;
public class AnalyticsSampleApp extends Application {
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "UA-XXXXX-Y";
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public AnalyticsSampleApp() {
super();
}
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(
R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
t.enableAdvertisingIdCollection(true);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
Just tell me what are remaining codes I need to add and what I need to change in this. If my question is not understandable kindly comment below. Let me ask it clearly again.
Thanks a lot.
My advice is to use just GTM, and from the GTM account you can link the Google Analytics and others services that could help you.
Here is a nice guide that will help you.
In few words you need to:
Add this lines in your Manifest file under application:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Open the container in a initial screen (Splash screen for example)
TagManager tagManager = TagManager.getInstance(this);
tagManager.setVerboseLoggingEnabled(true);
PendingResult<ContainerHolder> pending =
tagManager.loadContainerPreferNonDefault(CONTAINER_ID,
R.raw.default_container);
pending.setResultCallback(new ResultCallback<ContainerHolder>() {
@Override
public void onResult(ContainerHolder containerHolder) {
ContainerHolderSingleton.setContainerHolder(containerHolder);
containerLoaded = true;
startMainActivity();
}
}, 2, TimeUnit.SECONDS);
create a class ContainerHolderSingleton
public class ContainerHolderSingleton {
private static ContainerHolder containerHolder;
private ContainerHolderSingleton() {
}
public static ContainerHolder getContainerHolder() {
return containerHolder;
}
public static void setContainerHolder(ContainerHolder c) {
containerHolder = c;
}
}
public class GtmUtils {
private GtmUtils() {
}
public static void pushOpenScreenEvent(Context context, String screenName) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("OpenScreen", DataLayer.mapOf("screenName", screenName));
}
}
GtmUtils.pushOpenScreenEvent(this, "login");
And that's it. You just need to set up your GTM account and link it with Analytics and so on.
Also you can find here the official documentation and some samples.
Home it will help.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With