【问题标题】:How to Implement Google TagManager in Android Application如何在 Android 应用程序中实现 Google TagManager
【发布时间】:2014-10-25 09:43:11
【问题描述】:

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

我对分析和谷歌标签管理器完全陌生。我正在关注这些链接 link1, , link2 通过这个我对谷歌标签管理器和谷歌分析有了一些基本的了解。

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

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

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    我的建议是只使用 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. 在初始屏幕(例如启动屏幕)中打开容器

      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

      公共类 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. 最后,您可以从要发送事件的任何活动/片段中执行以下操作:

      GtmUtils.pushOpenScreenEvent(this, "login");

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

    你也可以找到here官方文档和一些示例。

    回家会有帮助。

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      相关资源
      最近更新 更多