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.
Android Google Analytics的更多相关文章
- Google Analytics Advanced Configuration - Google Analytics 高级配置
该文档提供了Android SDK v3的部分元素的高级配置说明. Overview - 概述 Android Google Analytics SDK提供了Tracker类,应用可以用它给Googl ...
- 使用 Google Analytics 跟踪 JavaScript 错误
Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语 ...
- Android Google AdMob 广告接入示例
Android Google AdMob 广告接入示例 [TOC] 首先请大家放心,虽然 Google搜索等服务被qiang了,但是 广告服务国内还是可以用的,真是普天同庆啊~~~噗! 其实这篇文章也 ...
- Google Analytics电子商务篇(Universal版)
Google Analytics是一款用于统计分析网站流量.浏览行为,可用于衡量用户与您网站的互动情况的全新方式.最近刚接触不久,发现其功能真的十分强大,记录下电子商务配置方法.(新手,老鸟勿喷) G ...
- Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析
Google Analytics for Firebase Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析.Fir ...
- Google Analytics Overview - Google Analytics 概述
该文档讨论了如何开始使用Google Analytics SDK for Android v3. Before you Begin - 在开始之前 在开始实现SDK之前,请确保有下面的东东: 1. ...
- 如何使用DTM将App事件发送到Google Analytics
本文分享于华为开发者论坛<如何使用DTM将App事件发送到Google Analytics>,可观看视频具体集成指导. 作为一名开发者或App运营人员,实时获取用户在App中的行为数据是日 ...
- 如何使用Google Analytics Universal Analytics增强型电子商务
Google Analytics: Universal Analytics增强型电子商务,可以让运营人员轻松地跟踪用户在其购物历程中与产品的互动,包括产品展示.产品点击.查看产品详情.将产品添加到购物 ...
- SDK接入(2)之Android Google Play内支付(in-app Billing)接入
SDK接入(2)之Android Google Play内支付(in-app Billing)接入 继上篇SDK接入(1)之Android Facebook SDK接入整理完Facebook接入流程之 ...
随机推荐
- Aactivity和Service之间的通信
一.在activity中定义三个按钮 一个开启服务 一个关闭服务,还有一个是向服务发送广播 当创建出Serevice时先执行Service的onCreate()创建服务后只执行一次 以后每次点击开启 ...
- Spring框架的AOP的底层实现之JDK的动态代理(代码了解,理解原理)
1.创建接口UserDao: package com.huida.demo1; public interface UserDao { public void save(); public void u ...
- 清除所有Cookie
代码 /// <summary> /// 清除所有Cookie /// </summary> public static void RemoveAll() { System.W ...
- Java图形化界面设计——布局管理器之GridBagLayout
GridBagLayout 不会随着窗口的变化标签随之发生变化,可固定. ---------------------------------------------------------- impo ...
- dataTables常用参数
一.新版本和老版本的区别 新版本的改进:https://datatables.net/new/1.10 新老版本参数变化列表:http://datatables.club/upgrade/1.10-c ...
- [Selenium] CSS3 选择器
在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. "CSS" 列指示该属性是在哪个 CSS 版本中定义的.(CSS1.CSS2 还是 CSS3.) 选择器 例子 例子 ...
- 主频3.0 1g内存是什么意思
我会讲解一些常用的计算机应用知识.希望大家多多支持,稍后更新,我的技术水平在国内属于顶尖的水平,不服来战...稍后更新...
- spring 3 mvc 的 @ResponseBody返回数据中文乱码
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter&q ...
- exit--进程退出;wait--进程等待;execl--执行程序
函数原型:void exit(int status) 参数说明:退出状态. 函数原型:pid_t wait(int *status) 头文件:#include<sys/types.h>,# ...
- 【JAVA】通过HttpURLConnection 上传和下载文件(二)
HttpURLConnection文件上传 HttpURLConnection采用模拟浏览器上传的数据格式,上传给服务器 上传代码如下: package com.util; import java.i ...