2014-09-20 38 views
17

我已经在我的应用程序中使用google analytics V4 设置了每件事情,我得到的每件事情都工作,我可以看到它,但是当我去我的手机实时概述鉴于我没有看到任何活动用户谷歌分析不显示活动用户实时概况

这是我跟踪

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:tools="http://schemas.android.com/tools" 
tools:ignore="TypographyDashes"> 
    <integer name="ga_sessionTimeout">300</integer> 

    <!-- Enable automatic Activity measurement --> 
    <bool name="ga_autoActivityTracking">true</bool> 
    <!-- The screen names that will appear in reports --> 
    <screenName name="info.lifepast.MainActivity">MainActivity</screenName> 

    <!-- The following value should be replaced with correct property id. --> 
    <string name="ga_trackingId">UA-xxx-3</string> 
</resources> 

和应用程序类是

public class Analytics extends Application { 
private static final String PROPERTY_ID = "UA-xxxxx-3"; 
    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. 
     ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. 
    } 

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 
    synchronized Tracker getTracker(TrackerName trackerId) { 
     if (!mTrackers.containsKey(trackerId)) { 

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) 
       : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) 
        : analytics.newTracker(R.xml.ecommerce_tracker); 
      mTrackers.put(trackerId, t); 

     } 
     return mTrackers.get(trackerId); 
     } 

}

,在我的主要活动上创建我加入这个

Tracker t = ((Analytics) this.getApplication()).getTracker(
     TrackerName.GLOBAL_TRACKER); 
    GoogleAnalytics.getInstance(this).getLogger().setLogLevel(LogLevel.VERBOSE); 
    // Set screen name. 
    // Where path is a String representing the screen name. 
    t.setScreenName(getString(R.string.app_name)); 

    // Send a screen view. 
    t.send(new HitBuilders.AppViewBuilder().build()); 

和清单文件

<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"/> 

任何帮助吗?

回答

18

我一直在看今天的v4分析,并且在获取屏幕视图时也遇到了麻烦。这里有一对夫妇的事情我已经在我的调查,挖出来,可能对你会有所帮助:

  • AppViewBuilder赞成ScreenViewBuilder已被弃用(见HitBuilders源代码)。据推测,该文档的 This part已过时。 编辑2015年3月6日:它会显示链接的文档已更新为使用ScreenViewBuilder

  • 如果我对文档的解释是正确的,那么当启用自动活动跟踪功能(我在您的配置文件中看到的情况)时,不需要使用ScreenViewBuilder明确发布屏幕视图。

  • 默认情况下,当前日期不包含在您的Google Analytics统计信息中。您可以选择通过手动选择日期范围来包含它(请参阅大多数GA页面右上角的下拉控件)。

  • 确保您缩短调试版本的调度时间 - 默认情况下,事件每隔30分钟进行一次批量发送,但对于测试,可以将其减少到几秒。有关实现细节,请参阅@vangoz的答案。

希望一些可以帮助你。

编辑:相关的,但我看到你已经发布的有:Google Analytics API v4 for Android Does NOT Send Screen Views

+0

THX @stkent对你有所帮助,但即时通讯有点糊涂了,现在首先我试图取代screenviewrbuilder的appviewrbuilder但正如ü说,这不会工作,那么我想删除此代码bcuz自动跟踪但它也没有工作,当我读报告活动开始文档,他们说,调用与自动跟踪是一个noop,但即使我以为我试了它与两个自动跟踪真假,但同样的结果 – Tony 2014-09-20 22:12:56

+0

现在我得到它工作感谢stokent你对这个问题的惊人描述它似乎实时概览需要一些时间来得到会发生什么:D – Tony 2014-09-20 22:20:11

+0

非常好,很高兴哟你的东西解决了!只是fyi,事件在实时视图中显示之前发生的延迟可能是因为[默认发送周期设置为30分钟](https://developers.google.com/analytics/devguides/collection/android/ V4 /调度#周期)。如果您希望事件更快地出现,请尝试缩短。 – stkent 2014-09-20 23:06:55

6

对于我来说,原来谷歌Analytics(分析)只派出每30分钟默认情况下的数据。因此,更改测试的调度时间会延迟一段时间显示实时数据。

GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(15); 

参考:https://developers.google.com/analytics/devguides/collection/android/v4/dispatch

+1

我碰到同样的事情,你的帖子保存了我的理智!谢谢。这是一个真正荒谬的默认设置。 – 2015-11-30 14:52:18