谷歌Analytics(分析)API V4为Android不发送屏幕视图 [英] Google Analytics API v4 for Android Does NOT Send Screen Views

查看:189
本文介绍了谷歌Analytics(分析)API V4为Android不发送屏幕视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经将所有东西谷歌分析API v4的,因为这里所说:
<一href="https://developers.google.com/analytics/devguides/collection/android/v4/">https://developers.google.com/analytics/devguides/collection/android/v4/
这里: <一href="http://www.java$c$cgeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html">http://www.java$c$cgeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html


我可以看到实时数据,但我无法看到的屏幕,活跃用户,新用户和顶级设备型号在特定的时间段,如所有的时间。

分析不发送屏幕视图。


这是我的 global_tracker.xml

 &LT;字符串名称=ga_trackingId&GT; UA-XXXXXXXX-Y&LT; /串&GT;

    &所述;整数名称=ga_sessionTimeout&GT; 300℃/整数GT;

    &LT;布尔名=ga_autoActivityTracking&GT;真&LT; /布尔&GT;

    &LT;布尔名=ga_reportUncaughtExceptions&GT;真&LT; /布尔&GT;

    &LT;屏幕名NAME =com.org.ScreenActivity1&GT;屏幕1&LT; /屏幕名&GT;
    &LT;屏幕名NAME =com.org.ScreenActivity2&GT;屏幕2'; /屏幕名&GT;
 


这是我的 AndroidManifest.xml中

 &LT;元数据
            机器人:名称=com.google.android.gms.version
            机器人:值=@整数/ google_play_services_version/&GT;

        &所述;元数据
            机器人:名称=com.google.android.gms.analytics.globalConfigResource
            机器人:资源=@ XML / global_tracker/&GT;
 


这是我的 Analytics.java

 公开枚举TrackerName {
        APP_TRACKER,//跟踪器只用在这个应用程序。
        使用从公司所有的应用程序GLOBAL_TRACKER //跟踪。例如:卷起跟踪。
    }

    HashMap的&LT; TrackerName,跟踪&GT; mTrackers =新的HashMap&LT; TrackerName,跟踪&GT;();

    公共分析(){
        超();
    }

    公共同步跟踪getTracker(TrackerName trackerId){

        如果(!mTrackers.containsKey(trackerId)){

            GoogleAnalytics分析= GoogleAnalytics.getInstance(本);

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

        }

        返回mTrackers.get(trackerId);
    }
 


这是我的活动类

 保护无效的onCreate(束捆){
// ......................

跟踪器跟踪器=((分析)getApplication())getTracker(Analytics.TrackerName.GLOBAL_TRACKER)。
        tracker.setScreenName(主要活动);
        tracker.send(新HitBuilders.AppViewBuilder()建());

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

}

    @覆盖
    保护无效的OnStart(){
        super.onStart();
        GoogleAnalytics.getInstance(本).reportActivityStart(本);
    }

    @覆盖
    保护无效的onStop(){
        super.onStop();
        GoogleAnalytics.getInstance(本).reportActivityStop(本);
    }
 

解决方案
根据@stkent答案

的问题是, AppViewBuilder()是德precated所以您可以通过delete一个此行的code解决您的问题,这就是你需要在你的情况下, 为了帮助人有同样的问题后,下面的 删除这一行code

  tracker.send(新HitBuilders.AppViewBuilder()建());
 

和添加此而不是

  @覆盖
保护无效的OnStart(){
    super.onStart();
    GoogleAnalytics.getInstance(本).reportActivityStart(本);
}

@覆盖
保护无效的onStop(){
    super.onStop();
    GoogleAnalytics.getInstance(本).reportActivityStop(本);
}
 

在每个活动要跟踪

这是谷歌文档约2的那些方法的其他信息

  reportActivityStop
reportActivityStart
 

使用这个自动跟踪是一个空操作,这样你就可以将其禁用

原来答案是@skent在此<一个href="http://stackoverflow.com/questions/25949983/google-analytics-doesnt-show-the-active-user-in-real-time-overview">post

I've set all things for google analytics api v4 as it mentioned here:
https://developers.google.com/analytics/devguides/collection/android/v4/
and here: http://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html


I can see real time data but i could NOT see Screens, Active Users,New Users and Top Device Models in specific time period such as "All Time".

Analytic does not send screen views.


Here is my 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>


Here is my 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"/>


Here is my 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);
    }


Here is my Activity class:

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

解决方案

The problem according to @stkent answer is that the AppViewBuilder() is deprecated so you can fix your problem by deleteing this line of code that's what you need in your case And to help people that have same problem after following this delete this line of code

 tracker.send(new HitBuilders.AppViewBuilder().build());

and add this instead

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

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

in each activity you want to track

additional info from google doc about those 2 method

reportActivityStop
reportActivityStart

using this with auto tracking is a noop so you can disable it

the original answer is for @skent on this post

这篇关于谷歌Analytics(分析)API V4为Android不发送屏幕视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆