12

我已经为谷歌分析 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


我可以看到实时数据,但在“所有时间”等特定时间段内看不到屏幕、活跃用户、新用户和顶级设备型号。

Analytic 不发送屏幕视图。


这是我的global_tracker.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);
    }


这是我的活动课

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);
    }
4

4 回答 4

10

根据@stkent 的答案,问题AppViewBuilder()是已弃用,因此您可以通过删除这行代码来解决 问题

 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

将此与自动跟踪一起使用是一个 noop,因此您可以禁用它

最初的答案是针对这篇文章的@skent

于 2014-09-21T10:01:45.217 回答
2

我为此失去了一天。尝试了从文档到 Internet 代码的所有方法,但都无法向我展示整体屏幕视图。终于,今天午夜过后,他们出现了。

我想,如果 Google 实时数据(在 onCreate 或类似方法中发送 Tracker)对您有用,那么只需等待一天,该数据将在 Google 服务器上的某处进行处理,并在一段时间后在分析仪表板上准备就绪。

附言。别听托尼的,他的问题和这个不一样。但是 stkent 对谷歌分析没有在实时概览中显示活跃用户的问题有一些很好的见解

于 2014-09-21T00:32:53.570 回答
2

添加

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

在清单文件中,可以解决问题。

于 2015-04-29T07:01:10.620 回答
1

@tony 是对的, HitBuilders.AppViewBuilder类已被弃用,但onStart/Stop如果您不想实现方法,则无需实现。如GA 的 V4 教程(第 4 节)所述,您可以替换 AppViewBuilder 类HitBuilders.ScreenViewBuilder(),您将在所有平台上获得所需的结果。

在此处查看有关类参考 API 的更多详细信息: https ://developer.android.com/reference/com/google/android/gms/analytics/HitBuilders.ScreenViewBuilder.html

于 2015-05-13T19:00:54.040 回答