如何在Android应用程序中实现Google TagManager

时间:2014-09-01 07:50:50

标签: android google-analytics google-tag-manager

我想在我的Android应用程序中实现Google跟踪代码管理器和Google Analytics。

我对分析和google tagmanager完全陌生。我正在关注这些链接 link1 ,, link2 通过这个,我得到了一些关于Google跟踪代码管理器和Google Analytics的基本知识。

我做的是:
我创建了Google TagManager帐户和Google Analytics帐户。 在TagManager和Google Analytics帐户中创建了所有基本步骤。 我还将libGoogleAnalyticsServices这个文件添加到项目文件资产中的项目库和gtm容器中。

现在我需要的是。我需要在我的应用程序中添加哪些代码?我需要添加这个。我在src中创建了一个单独的java文件,并添加了这些代码

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);
}
}

告诉我我需要添加的剩余代码以及我需要更改的内容。如果我的问题不可理解,请在下面发表评论。让我再说一遍。

非常感谢。

1 个答案:

答案 0 :(得分:4)

我的建议是仅使用GTM,您可以通过GTM帐户关联Google Analytics和其他可以帮助您的服务。

Here是一个很好的指南,可以帮助你。

简而言之,您需要:

  1. 将Google Play服务作为项目库包含在您的项目中
  2. 在您的应用中添加res / row文件夹下的默认容器。设置宏和标记后,您可以从GTM帐户导出此容器
  3. 在应用程序下的清单文件中添加以下行:

    <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    
  4. 在初始屏幕(例如Splash屏幕)中打开容器

    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);
    
  5. 创建一个ContainerHolderSingleton类

    public class ContainerHolderSingleton {
    private static ContainerHolder containerHolder;
    
    private ContainerHolderSingleton() {
    }
    
    public static ContainerHolder getContainerHolder() {
        return containerHolder;
    }
    
    public static void setContainerHolder(ContainerHolder c) {
        containerHolder = c;
    }
    

    }

    1. 创建另一个类GtmUtils
    2. 公共类GtmUtils {

      private GtmUtils() {
      }
      
      public static void pushOpenScreenEvent(Context context, String screenName) {
          DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
          dataLayer.pushEvent("OpenScreen", DataLayer.mapOf("screenName", screenName));
      }
      

      }

      1. 最后,您要发送活动的任何活动/片段,您可以执行以下操作:
      2. GtmUtils.pushOpenScreenEvent(this,“login”);

        就是这样。您只需设置GTM帐户并将其与Google Analytics等链接即可。

        您还可以找到here官方文档和一些示例。

        回家它会有所帮助。