谷歌分析API v4适用于Android,但不会发送屏幕视图。

11
我已经按照这里提到的设置了所有谷歌分析API v4相关的事项:
https://developers.google.com/analytics/devguides/collection/android/v4/
还有这里: http://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html


我可以看到实时数据,但在特定时间段(如“全部时间”),我无法看到屏幕、活跃用户、新用户和顶部设备型号。
分析工具不发送屏幕视图。
这是我的全局跟踪器 XML 文件。
    <string name="ga_trackingId">UA-XXXXXXXX-Y</string>

    <integer name="ga_sessionTimeout">300</integer>

    <bool name="ga_autoActivityTracking">true</bool>

    <bool name="ga_reportUncaughtExceptions">true</bool>

    <screenName name="com.org.ScreenActivity1">Screen 1</screenName>
    <screenName name="com.org.ScreenActivity2">Screen 2</screenName>


这是我的AndroidManifest.xml

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker"/>


这是我的Analytics.java

public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER // Tracker used by all the apps from a company. eg: roll-up tracking.
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    public Analytics() {
        super();
    }

    public synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

            if (trackerId == TrackerName.GLOBAL_TRACKER) {
                mTrackers.put(trackerId, analytics.newTracker(R.xml.global_tracker));
            }

        }

        return mTrackers.get(trackerId);
    }


这是我的Activity类

protected void onCreate(Bundle bundle){
//......................

Tracker tracker = ((Analytics) getApplication()).getTracker(Analytics.TrackerName.GLOBAL_TRACKER);
        tracker.setScreenName("Main Activity");
        tracker.send(new HitBuilders.AppViewBuilder().build());

//......................

}

    @Override
    protected void onStart() {
        super.onStart();
        GoogleAnalytics.getInstance(this).reportActivityStart(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
        GoogleAnalytics.getInstance(this).reportActivityStop(this);
    }

我没有遇到这样的错误。你是否将最新的Google Play服务添加到Gradle中了? - Ertuğrul Çetin
是的,我已经添加了所有必要的内容,现在一切都正常运行。但是在Google Analytics实时审查中,我没有看到活跃客户端。 - Antwan
我尝试了,但是还是一样的 :( - Antwan
我也是 :( 如果你找到了方法,请告诉我,如果我找到了方法,我会告诉你 :) - Ertuğrul Çetin
我肯定已经对这个问题有疑问了,如果有人能帮忙就好了。 - Antwan
显示剩余7条评论
4个回答

10
根据 @stkent 的回答,问题在于 AppViewBuilder() 已被弃用,因此您可以通过删除代码行来解决问题,在您的情况下需要这样做。为了帮助遇到相同问题的人,按照 this 后面的步骤,删除这行代码即可。
 tracker.send(new HitBuilders.AppViewBuilder().build());

并用这个替代。
  @Override
protected void onStart() {
    super.onStart();
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

@Override
protected void onStop() {
    super.onStop();
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
}

在每个需要跟踪的活动中,
谷歌文档中有关这两种方法的额外信息。
reportActivityStop
reportActivityStart

使用自动跟踪时,这是无效的,所以您可以将其禁用

原始答案是针对@skent在此post上的


2

添加

<application
android:name="mypackagename.MyApplication"
... >

在清单文件中,这就是诀窍。

2

我因此浪费了一整天的时间。尝试了所有方法,从文档到互联网代码,都没有展示全局屏幕视图的效果。最终,在今天午夜之后,它们才出现。

我猜,如果Google实时数据(在onCreate或类似方法中发送Tracker)对您有效,则只需等待一天,这些数据将在Google服务器上处理,并在某段时间后在分析仪表板上准备好。

附言:不要听Tony的话,他的问题与此不同。但stkent对问题有一些好的见解:google analytics不显示实时概览中的活跃用户


我之前什么都没得到,但在修复了我的问题后,现在我可以看到 Neat 需要展示的内容,所以我认为它可能会有帮助。请不要谈论您没有尝试过的东西。 - Antwan
你的英语很糟糕,我的朋友,我听不太懂你说什么。你的答案现在应该是正确的。即使我像你在那删除的行中所说的那样,只使用标准的 Google 代码和 Tracker 发送,它现在也对我起作用了。最终,我们都可以认同这个 Google Analytics 充满了不合逻辑的代码 :D - Beemo
1
我同意你的观点,现在我发现当我按照Google Analytics指南操作时遇到了很多问题,我认为对于初学者来说放置一些代码片段并不是一个好主意。 - Antwan
不知道为什么它不能像这样简单:sendAction(String action)...而不是所有这些垃圾,如果人们想要高级功能,让他们自己去了解。 - Oliver Dixon

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接