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

标签 android google-analytics google-tag-manager

我想在我的 Android 应用程序中实现 Google Tag Manager 和 Google Analytics。

我对分析和 google tagmanager 完全陌生。我正在关注这些链接 link1 , , link2 通过这个我对 Google Tag Manager 和 Google Analytics 有了一些基本的了解。

我所做的是:
我创建了 Google TagManager 帐户和 Analytics 帐户。 在 TagManager 和 Analytics 帐户中创建所有基本步骤。 此外,我将 libGoogleAnalyticsServices 此文件添加到项目文件 Assets 中的项目 lib 和 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);
}
}

请告诉我我需要添加哪些剩余代码以及我需要对此进行哪些更改。如果我的问题无法理解,请在下面发表评论。我再问清楚。

非常感谢。

最佳答案

我的建议是只使用 GTM,您可以从 GTM 帐户链接 Google Analytics 和其他可以帮助您的服务。

Here是一个很好的指南,可以为您提供帮助。

简而言之,您需要:

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

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

    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

    公共(public)类 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. 最后,从您想要发送事件的任何 Activity/fragment 中,您可以执行如下操作:

    GtmUtils.pushOpenScreenEvent(this, "登录");

就是这样。您只需设置您的 GTM 帐户并将其与 Analytics 等相关联。

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

回家会有帮助。

关于android - 如何在 Android 应用程序中实现 Google TagManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601134/

相关文章:

java - 如果多个 R.java 不断重新生成,如何删除它?

java - 我想设置一个通知,当我收到通知时它应该响铃

java - 在 JAVA 中无需 Web 浏览器即可验证 Google Analytics

regex - 在Google Analytics(分析)过滤器中使用正则表达式重写某些URL

google-analytics - 此页面上未正确安装ID为GTM-…的容器的Google Optimize代码段

android - 如何在首选项设置中从 SharedPreference getLong()

java - 以编程方式设置形状的颜色

javascript - 如果 wordpress postid 为偶数且 GTM,则显示脚本

javascript - 如何在网页上管理不同的 Google Analytics 跟踪代码

google-analytics - GA 增强型电子商务 session 在重定向后丢失