Android Google Analytics

基础知识:

一个统计条目包含两类,一种是 screen,另一种是 event。

  • Screen 包括 screen name。
  • Event 包括  category,action,label 和 value 四个信息。其中 value 只能是数值。

 

项目中integrate了GA,碰到过一些问题:

1.Too many hits sent too quickly, rate limiting invoked

这个问题是发送hit(event/screen)太频繁,超出了Google的限制(每两分钟 60 hits)。解决办法是设置session timeout到一个合适的值,并且分段统一发送hit。

 

2.Google Play Services版本兼容问题

由于设备中Google Play Services版本太老,为了兼容只得使用一个很老版本的Google Play Services。

compile 'com.google.android.gms:play-services-base:6.5.87'

这个版本中自带GA包,但包里不含AnalyticsReceiver和AnalyticsService。

 

3.网络断开后统计数据丢失

曾经出现过断网一段时间然后网络恢复之后数据丢失。不但断网期间的数据没有,而且网络恢复后的数据不再继续发送。

我更改了GoogleAnalytics Tracker的一些参数,但我还没开始测试具体是哪项设置起了作用,这一点有待之后补充。

注意以下是Kotlin代码

        analytics.setLocalDispatchPeriod(resources.getInteger(R.integer.ga_dispatchPeriod))
        if (BuildConfig.DEBUG) {
            analytics.logger.logLevel = com.google.android.gms.analytics.Logger.LogLevel.VERBOSE
//            analytics.setDryRun(true)
        }
        tracker = analytics.newTracker(applicationContext.resources.getString(R.string.ga_trackingId))
        tracker.setSessionTimeout(60)
        tracker.enableExceptionReporting(true)
        tracker.enableAdvertisingIdCollection(true)
        tracker.enableAutoActivityTracking(true)

AndroidManifest.xml

    <!-- Google Analytics required permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- Optional permission for reliable local dispatching on non-Google Play devices -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 以下写在application标签里 -->
    <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>
        <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />

 

应该是localDispatchPeriod起的作用,也有可能是manifest里监测网络状态的权限起的作用,也有可能是receiver起的作用,这个要测试后才知道。

当然这个问题可能是由于GoogleAnalytics的版本问题。需要更新Google Play Services。可能如果使用最新的版本这个问题不会出现,这个我也还没测试。

 

4. 创建 Mobile app property 时不使用 Firebase

默认创建 Mobile app property 时必须使用 Firebase。如果没有 Firebase 的话,只能创建 Website property,然后完成以下几步就可以改成 Mobile app property:

  1. Sign in to your Google Analytics account.
  2. Click Admin.
  3. In the PROPERTY column, select Create new property from the dropdown menu.
  4. Select Website.
  5. Provide a Website Name. You may use the name of your app.
  6. Provide a Website URL. You may use your company URL or the URL for your app’s marketing site.
  7. Click Get Tracking ID.
  8. In the VIEW column, select Create new view from the dropdown menu.
  9. Select Mobile app.
  10. Provide a Reporting View Name(ex: All Mobile App Data).
  11. Click Create View and delete the website property created previously.

 

posted @ 2017-03-27 22:48  davesuen  阅读(1226)  评论(0编辑  收藏  举报