【问题标题】:Getting GoogleAnalytics working in all activities让 GoogleAnalytics 在所有活动中工作
【发布时间】:2013-02-27 22:04:45
【问题描述】:

我想在我的应用中跟踪我的 7 个活动中的所有活动和按钮点击。现在我正处于实施 GA 的开始阶段。我在打开的主菜单屏幕上运行它,并且可以在 google.com/analytics 上在线查看它。我的问题是如何在所有活动中实现这一点?

现在在我的主菜单类中,我有这个:

private Tracker tracker;
private GoogleAnalytics ga;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.mainmenumain);


    EasyTracker.getInstance().activityStart(this);

    //Get the GA singleton.
    ga = GoogleAnalytics.getInstance(this);

    //ga.setDebug(true);

    //Use the GA singleton to get a Tracker object.
    tracker = ga.getTracker("UA-###-1");

我是否必须声明这 2 个变量,然后在每个活动中调用 EasyTracker.getInstance().activityStart(this);ga = GoogleAnalytics.getInstance(this);tracker = ga.getTracker("UA-####-1");

我知道那里有类似的主题,但我要求的是 Google Analytics 的新版本 2,而不是旧版本 1。

【问题讨论】:

    标签: java android google-analytics singleton google-analytics-api


    【解决方案1】:

    实现一个新的 BaseActivity 以在其 onCreate 方法中完成工作,然后让所有 7 个活动都扩展 BaseActivity。
    记得在你的活动中调用 super.onCreate。

    【讨论】:

    • 这种方法更好,因为在您的 BaseActivity 中您可以拥有所有常用功能,从而减少代码重复。
    • 我讨厌使用 BaseActivity 来处理这类事情。我认为它会将您的逻辑混淆为基本未触及的基类,并演变为巨大的定制。但是,这是一个题外话,并且脱离了这个特定主题。我也认为对于 2 行,不值得创建 BaseActivity。
    • 添加2行或仅1行都没有关系。重要的是您需要将线条放入多少位置。如果所有活动都确实需要该功能,那么使用 BaseActivity 是更好的选择。
    【解决方案2】:

    对于 Analytcs V2,您的活动中只需要以下两行:

    EasyTracker.getInstance().activityStart(this); 
    Tracker trackerV2 = EasyTracker.getTracker();
    

    您有点混淆了 V1 和 V2 调用。跟踪器实例化(关联您的 API 密钥)是通过清单中的属性设置的,因此您不再需要以下行:

    tracker = ga.getTracker("UA-####-1");
    

    【讨论】:

    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 2010-12-24
    • 2016-08-21
    • 2011-06-27
    • 2015-04-24
    相关资源
    最近更新 更多