我按照
this guide在我的Android应用中实施Google Analytics.我无法理解该文件.
<screenName name="com.mycompany.myapp.MainActivity"> SomeApp MainActivity </screenName>
要发送屏幕视图,我必须这样做:
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER); t.setScreenName(screenName); t.send(new HitBuilders.AppViewBuilder().build());
但是,我不确定这个screenName应该是什么.它是名称值(com.mycompany.myapp.MainActivity)还是screenName值(SomeApp MainActivity)?
解决方法
只要启用“自动活动跟踪”,就会使用您描述的xml配置.每当活动开始时,此跟踪会自动报告新的屏幕视图,从而使您无需手动触发代码中的屏幕视图事件.
要启用自动活动跟踪,您可以在跟踪器的xml配置中将ga_autoActivityTracking布尔值设置为true:
<!-- Enable automatic Activity measurement --> <bool name="ga_autoActivityTracking">true</bool>
默认情况下,此自动报告工具将使用您的Activity类名称作为报告的屏幕名称(例如com.mycompany.myapp.MainActivity).这些类名通常很长且难以阅读,因此Google允许我们自定义每个活动的报告屏幕名称.这就是你的问题的这一部分:
<screenName name="com.mycompany.myapp.MainActivity"> SomeApp MainActivity </screenName>
使用此配置,自动活动跟踪将在自动报告该活动的屏幕视图时使用字符串“SomeApp MainActivity”而不是“com.mycompany.myapp.MainActivity”.
请务必注意,如果您不使用自动活动跟踪,则会忽略跟踪器xml中的任何屏幕名称配置.在这种情况下,每次以编程方式触发屏幕视图事件时,都必须指定屏幕名称.这就是你的代码示例中发生的事情:
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER); t.setScreenName(screenName); t.send(new HitBuilders.AppViewBuilder().build());
xml配置中的屏幕名称设置未在此代码中使用,因为它不是自动活动跟踪的一部分.相反,您必须在发送屏幕视图之前在跟踪器上手动设置屏幕名称.这比自动活动跟踪更灵活 – 例如,在片段繁重的应用程序中,可以通过片段事务而不是活动更改来执行导航.在这种情况下,单独跟踪活动更改不会适当地报告应用中的每个屏幕更改.自动活动跟踪应该比手动发送屏幕视图更少开销,但我发现它不灵活且更容易出错(每次引入新活动时,您必须手动将< screenName>条目添加到xml中,并且它非常容易忘记).