谷歌分析碎片屏幕视图

时间:2014-04-30 15:55:08

标签: android android-fragments google-analytics

我的应用有一个活动和许多片段。我已经阅读了关于这个问题的所有主题,没有人能够看到我的工作。 我已尝试使用ga v3和v4,跟随

问题在于两种方式,分析只检索我执行的第一个调用。当我更改片段并以相同方式执行另一个调用时,“实时”分析不会改变。 两个片段都是从每个片段中的onStart()方法执行的。

    // Using ga v4
    Tracker t = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-1");
    t.setScreenName("/home");
    t.send(new HitBuilders.AppViewBuilder().build());

    // Using ga v3
    EasyTracker _tracker = EasyTracker.getInstance(getActivity());
    _tracker.set(Fields.SCREEN_NAME, "/discover");
    _tracker.send(MapBuilder.createAppView().build());

任何建议都将受到高度赞赏!

1 个答案:

答案 0 :(得分:5)

实际上我觉得我可能找到了让它有效的方法。阅读文档:https://developers.google.com/analytics/devguides/collection/android/v4/dispatch

  

默认情况下,会从Google AnalyticsSDK中调度数据   Android每 30分钟

是的,我的想法是"什么???? 30分钟?不是假设是实时的吗?"无论如何,阅读更多:

  

以编程方式设置调度周期:

// Set the dispatch period in seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(15);
  

在XML配置文件中设置调度周期:

<integer name="ga_dispatchPeriod">30</integer>

还有......

  

设置负值将禁用定期发送,如果您要将任何数据发送到Google Analytics,则需要使用手动发送。

// Disable periodic dispatch by setting dispatch period to a value less than 1.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);

好的,也许你在这里发现了一个有争议的,负值还是不到1?我试过,它不到1! (0或负数将禁用定期发送)。

如果您更喜欢手动调度,例如:

tracker.setScreenName(TAG);
tracker.send(new HitBuilders.AppViewBuilder().build());
GoogleAnalytics.getInstance(getActivity().getBaseContext()).dispatchLocalHits();

请注意,您可以随时调用dispatchLocalHits()(甚至可以调用该函数的按钮)。顺便说一下,它在我的片段上的那段代码(在onResume()方法中)。

文档也说:

  

如果用户失去网络访问权限或退出您的应用,但仍有点击等待&gt;已分配,则这些匹配将保留在本地存储中。他们将在您的应用运行的下一个&gt;时间发送,并调用调度。

但我不确定这是否适用于手动和定期发送。我试过了,似乎都在工作:)。