接入完成后有事件数据,无新增渠道版本。
如果有事件数据,基本可以判断接入没有问题,关于测试这个环节建议:
- 建议以debug来测试,看输出日志的情况,发送是否succeed。
- 集成测试的数据会被隔离,如果想直接测数据,可以新建一个appkey来尝试,这样能保证当前设备为新设备。
用户路径中,为什么启动页的前面还有来源
如果app界面没有退出到后台,只是黑屏了,那么用户在30秒后在打开手机,这个时候app我们会算第二次启动,并且这个session上报的第一个页面是黑屏时最后访问的页面。
用户路径,Android端,启动页跳转到启动页
排查结果:启动页打开后会弹出授权弹窗,待用户操作授权后切回启动页,这个操作流程其实启动页会被计算为2次,原因是Activity的生命周期onPause函数在弹出授权框时,已经被调用,导致第一个页面统计过程闭合了。但这次操作还是在一个session内,所以就出现了路径中启动页扭转到启动页的情况;
精简版能采集到那些数据?
支持的数据、指标:
1. 日活、启动、日使用时长、平均使用时长、留存,apptrack设备激活。
2. 基础的设备信息:如手机型号分布,os分布等。
3. 基础的网络信息:用户位置分布。
不支持的数据、指标:
1. 页面采集数、页面采集路径。
2. 账号信息。
3. 自定义事件、预置事件属性。
目前同时接入会引起的冲突
EMAS和友盟的sdk同时集成会有冲突
关于友盟SDK会使用设备的权限问题
SDK中不存在私自获取权限的代码,只判断应用有没有获取这些权限(例如摄像头、蓝牙等),所以整体上是合规的,不会涉及用户隐私。
1、短信、联系人、修改通讯录、拨打电话,这些我们没有拿
2、粗略位置(基站定位)、GPS、蓝牙、摄像头、传感器如果app开发者申请了权限,我们拿到的只是硬件信息
3、存储卡权限,如果开发者自己有申请,我们会用,我们会把设备唯一ID存起来,这样来保证设备的唯一性
4、电话状态、网络,这两个是必选的,其它所有的权限都是非必选的。要获取设备的imei作为唯一标识,并上报统计数据。
实时新增数大于实时活跃数
实时新增没有去重逻辑,当日只要友盟识别为新增设备,该设备每次启动应用,实时新增就会+1,而实时活跃友盟会进行去重。所以可能有设备在进行刷量。
后台版本采集开关
新版本上限需要手动进行“采集”配置,这里版本默认是不采集的,这个开关涉及到采集“页面数据”,上限目前是30个版本。
统计SDK中要求App申请READ_PHONE_STATE权限,不申请的话,SDK能正常工作吗?
App可以不申请READ_PHONE_STATE,如果是【友盟+】新客户,首次集成【友盟+】统计SDK,没有历史数据,则几乎无影响。如果是老客户,App之前有历史数据,新版App中如果不申请READ_PHONE_STATE,用户重装应用或清除应用缓存会导致友盟识别为新增用户,可能会对数据产生较明显影响。
Android缓存机制与什么情况下可能产生数据丢失:
a. App产生的统计数据默认会先持久化存储到本地sqlite数据库,需要满足SDK发送策略情况,且网络可用的情况下,
才会发送统计数据,所以说网络不可用并不会导致丢数,只可能导致数据延迟发送。
b. 如果App在运行过程中被强行kill掉(例如:用adb shell命令杀进程),有可能会丢失少量自定义事件(小于5个),和当前页面数据。
c. App 异常Crash情况下,如果屏蔽了SDK的异常自动捕获功能,可能会丢失少量自定义事件(小于5个),和当前页面数据。
如果没有屏蔽异常自动捕获功能,不会丢失数据。
d. 如果宿主App实现了退出应用时同时退出进程功能,且通过android.os.Process.killProcess(pid)
方式退出应用进程,则需要在调用android.os.Process.killProcess前调用SDK的MobclickAgent.onKillProcess(mContext);
接口,否则可能丢失少量自定义事件(小于5个),和当前页面数据。
