我想在我的 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是一个很好的指南,可以为您提供帮助。
简而言之,您需要:
- 将 google play 服务作为库包含到您的项目中
- 在您的应用中的 res/row 文件夹下添加一个默认容器。您可以在设置宏和标签后将此容器从 GTM 帐户中导出
在应用程序下的 list 文件中添加以下行:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
在初始屏幕(例如启动屏幕)中打开容器
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);
创建一个类 ContainerHolderSingleton
public class ContainerHolderSingleton { private static ContainerHolder containerHolder; private ContainerHolderSingleton() { } public static ContainerHolder getContainerHolder() { return containerHolder; } public static void setContainerHolder(ContainerHolder c) { containerHolder = c; }
- 创建另一个类 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)); }
- 最后,从您想要发送事件的任何 Activity/fragment 中,您可以执行如下操作:
GtmUtils.pushOpenScreenEvent(this, "登录");
就是这样。您只需设置您的 GTM 帐户并将其与 Analytics 等相关联。
您还可以找到here官方文档和一些示例。
回家会有帮助。
关于android - 如何在 Android 应用程序中实现 Google TagManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601134/