在Google Analytics V4中,我应该发送哪个屏幕名称?

时间:2015-01-28 03:00:36

标签: android google-analytics google-analytics-v4

我关注this guide在我的Android应用中实施Google Analytics。我无法理解该文件。

在文档中,它说创建一个XML文件,并将其作为内容:

<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应该是什么。它是name值(com.mycompany.myapp.MainActivity)还是screenName值(SomeApp MainActivity)?

3 个答案:

答案 0 :(得分:13)

只要启用“自动活动跟踪”,就会使用您描述的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中,并且它是很容易忘记。)

答案 1 :(得分:5)

我认为你只想发送&#34; SomeActivity&#34;字符串到GA。如果您想轻松完成,可以在这篇文章中看到我的回复。我认为它会对你有帮助。

Google Analytics - NetworkOnMainThreadException on send in AsyncTask

答案 2 :(得分:0)

只需在String中为当前屏幕(视图)的名称设置标记即可。它将用于跟踪用户正在查看的屏幕。