适用于Android的Google AnalyticsAPI v4不会发送屏幕视图

Ert*_*tin 12 java android google-analytics google-analytics-api google-analytics-firebase

我为google analytics 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>
Run Code Online (Sandbox Code Playgroud)


这是我的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"/>
Run Code Online (Sandbox Code Playgroud)


这是我的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);
    }
Run Code Online (Sandbox Code Playgroud)


这是我的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);
    }
Run Code Online (Sandbox Code Playgroud)

Ant*_*wan 10

根据@stkent回答的问题是,AppViewBuilder()已被弃用,因此您可以delete一个由这行代码,这就是你需要在你的情况下,为了帮助有同样的问题,下面的人后解决您的问题,这个 删除此行代码

 tracker.send(new HitBuilders.AppViewBuilder().build());
Run Code Online (Sandbox Code Playgroud)

并添加此项

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

@Override
protected void onStop() {
    super.onStop();
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
}
Run Code Online (Sandbox Code Playgroud)

在您要跟踪的每个活动中

关于这两种方法的谷歌文档的其他信息

reportActivityStop
reportActivityStart
Run Code Online (Sandbox Code Playgroud)

使用这个与自动跟踪是一个noop所以你可以禁用它

这个帖子的原始答案是@skent