基础知识:

一个统计条目包含两类,一种是 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.

Android Google Analytics的更多相关文章

  1. Google Analytics Advanced Configuration - Google Analytics 高级配置

    该文档提供了Android SDK v3的部分元素的高级配置说明. Overview - 概述 Android Google Analytics SDK提供了Tracker类,应用可以用它给Googl ...

  2. 使用 Google Analytics 跟踪 JavaScript 错误

    Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语 ...

  3. Android Google AdMob 广告接入示例

    Android Google AdMob 广告接入示例 [TOC] 首先请大家放心,虽然 Google搜索等服务被qiang了,但是 广告服务国内还是可以用的,真是普天同庆啊~~~噗! 其实这篇文章也 ...

  4. Google Analytics电子商务篇(Universal版)

    Google Analytics是一款用于统计分析网站流量.浏览行为,可用于衡量用户与您网站的互动情况的全新方式.最近刚接触不久,发现其功能真的十分强大,记录下电子商务配置方法.(新手,老鸟勿喷) G ...

  5. Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析

    Google Analytics for Firebase Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析.Fir ...

  6. Google Analytics Overview - Google Analytics 概述

    该文档讨论了如何开始使用Google Analytics SDK for Android v3. Before you Begin - 在开始之前 在开始实现SDK之前,请确保有下面的东东: 1.  ...

  7. 如何使用DTM将App事件发送到Google Analytics

    本文分享于华为开发者论坛<如何使用DTM将App事件发送到Google Analytics>,可观看视频具体集成指导. 作为一名开发者或App运营人员,实时获取用户在App中的行为数据是日 ...

  8. 如何使用Google Analytics Universal Analytics增强型电子商务

    Google Analytics: Universal Analytics增强型电子商务,可以让运营人员轻松地跟踪用户在其购物历程中与产品的互动,包括产品展示.产品点击.查看产品详情.将产品添加到购物 ...

  9. SDK接入(2)之Android Google Play内支付(in-app Billing)接入

    SDK接入(2)之Android Google Play内支付(in-app Billing)接入 继上篇SDK接入(1)之Android Facebook SDK接入整理完Facebook接入流程之 ...

随机推荐

  1. Golang之Socket

    go创建socket很简单 package main import ( "fmt" "net" ) func main() { //服务器监听地址 fmt.Pr ...

  2. Linux ld命令

    一.简介 http://blog.sina.com.cn/s/blog_a0dc7dcf01014c5s.html 二.选项 http://blog.sina.com.cn/s/blog_a0dc7d ...

  3. process_创建进程

    import multiprocessingimport time#方式一def worker(interval): n = 5 while n > 0: print("The tim ...

  4. easyui-从数据库读取创建无极菜单

    easyui-tree基础必须知道这个如下: 树控件使用<ul>元素定义.标签能够定义分支和子节点.节点都定义在<ul>列表内的<li>元素中.以下显示的元素将被用 ...

  5. 2018秋季c语言基础课第一次作业

    1)大学和高中最大的不同是没有人天天看着你,请看大学理想的师生关系是?有何感想? 答:邹欣老师提到了很多种关系,不外呼就是两种:平等或者不平等.平等的师生关系与陌生人无异,而自古以来尊师重道却被世人所 ...

  6. js把一个数组插入到另一个数组的指定位置

    var arr1 = ['a', 'b', 'c']; var arr2 = ['1', '2', '3']; // 把arr2 变成一个适合splice的数组(包含splice前2个参数的数组) a ...

  7. SharedPreferences的基本使用-----存,删,改,查

    1.创建一个SharedPreferences对象 SharedPreferences spf = context.getSharedPreferences("imageload" ...

  8. [原创汉化] 价值990美元的顶级专业数据恢复软件O&O DiskRecovery 11(技术员版)汉化绿色版

    百度没搜索到11有汉化版的,有空就把它汉化了,大部分借鉴的是以前汉化版的词条.另外,顺便做了个二合一的单文件版给有需要的朋友. 运行环境: 可用于 Windows 2000/XP/2003/Vista ...

  9. 2018.09.01 poj2689 Prime Distance(埃式筛法)

    传送门 一道挺有趣的. 第一眼以为每个数都用miller_rabin判一次,但感觉会被卡时间啊. 继续分析发现可以晒出sqrt(r)中的所有素数,然后用类似埃式筛法的方法晒出[l,r]" r ...

  10. 2018.07.20 bzoj2152: 聪聪可可(点分治)

    传送门 本蒟蒻AC的第二道点分治,调了30min" role="presentation" style="position: relative;"&g ...