2

这就是我设计 Google Analytics 以在我的应用上运行的方式:

每个活动都扩展TrackedFragmentActivity或任何其他扩展的片段活动TrackedFragmentActivity

TrackedFragmentActivity 是:

public class TrackedFragmentActivity extends SherlockFragmentActivity {
    GoogleAnalyticsTracker tracker;

    public void startAnalytics(String pageName) {
        tracker = GoogleAnalyticsTracker.getInstance();

        tracker.startNewSession("UA-CODE-HERE", this);
        tracker.trackPageView(pageName);
        tracker.dispatch();
    }   
}

并且每个活动都super.startAnalytics("pagenameHere")onCreate.

现在,每个活动都得到了正确的跟踪,一切都得到了正确的跟踪,但是与持续时间相关的数据完全混乱了:

Pages / Visit: 1.07
Avg. Visit Duration: 00:00:00
Bounce Rate: 94.63%

我正在打电话stopTracker() onDestroy,虽然这是这种行为的错,因此我试图将其删除,但我遇到了完全相同的问题。

知道是什么原因造成的吗?

4

2 回答 2

0

我相信这是一种正常的行为。我的理解是,Android 平台上的 Google Analytics 仅限于记录简单事件。

于 2012-06-15T12:43:55.500 回答
0

主要问题是调用这个方法:tracker.startNewSession("UA-CODE-HERE", this);

每次加载新活动时。所以我只是添加了一个非常愚蠢的静态布尔值来仅在第一次调用该方法。有没有人有更好的解决方案?

新代码是:

public class TrackedFragmentActivity extends SherlockFragmentActivity {
    private static GoogleAnalyticsTracker tracker = GoogleAnalyticsTracker.getInstance();
    private static boolean hasStarted = false;

    public void startAnalytics(String pageName) {

        if(!hasStarted) {
            tracker.startNewSession("UA-CODE-HERE", this);
            hasStarted = true;
        }

        tracker.trackPageView(pageName);
        tracker.dispatch();

    }   
}
于 2012-07-02T13:30:06.757 回答