SDK自动采集对手动埋点的影响

不会重复记录,也不会增加时长。SDK在AUTO 模式下,会忽略掉手动埋点MobclickAgent.onResume/onPause。

分渠道平均使用时长的更新周期

channel id成功上报后可以展示,无设备限制条件。

页面路径少数据或无数据

页面路径无数据、数据少,请按照以下逐条查看下原因:
1,使用了集成测试 如果你使用了管理-集成测试功能,由于集成测试部分的数据是隔离的,所以测试数据是不会出现在正常的统计报表里。
2,页面访问路径数据今天测试的第二天才能看到数据。
3,未在管理版本中选版本的数据是不会进行计算的,所以,只有将该版本加入到已选版本,才会计算,并在设置后的第二天予以展示。
4,如果该版本数据在设置-版本部分被设置为隐藏,那么该版本数据也会不予以展示。

LBS相关权限

LBS是为了给开发者提供矫正用户地域分析服务,同时为开发者提供反作弊功能,剔除作弊设备,最终目的都是为了让开发者的统计数据更加精准。友盟不会超越开发者的权限采集LBS,所有的采集均是基于用户的授权。

时长计算规则

平均单次使用时长=合法总时长/合法的lnch(启动)

平均日使用时长=合法总时长/合法DAU(日活)

平均日使用时长=合法lnch平均单次使用时长 / 合法DAU

*因为合法lnch、合法DAU过滤的程度不同,所以两个指标无法直接进行运算、换算!

单设备事件上传限制

出于反作弊考虑
普通应用单设备8小时限制上传5000条事件。
游戏应用但设备8小时限制上传10000条事件。

接入完成后有事件数据,无新增渠道版本。

如果有事件数据,基本可以判断接入没有问题,关于测试这个环节建议:

  1. 建议以debug来测试,看输出日志的情况,发送是否succeed。
  2. 集成测试的数据会被隔离,如果想直接测数据,可以新建一个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个),和当前页面数据。

数据的后台展示与API获取的问题

OpenAPI默认能拉取的就是后台展示的数据,后台没有的数据,API也获取不到。
默认当天数据是不能区分渠道维度进行展示的,包括事件、新增统计等。
事件当天数据不能统计独立用户数。
这些都会在第二天后台展示离线数据。

运营商信息中未知运营商不在整体排行全局页面展示

非计算问题,整体排行里是展示200个(之后甩尾),在展示上,未知运营商信息是排在最后的,导致没看到未知。

OpenAPI数据拉取周期

离线的产出时间理论是早9点。留存的数据因为需要等第二天过完才能开始计算,所以是T+2产出,产出后即可拉取到。

主账号可以授权多少个子账号

子账号:目前1个主账号默认只能给10个子账号授权。

子进程的时长如何统计

SDK不支持子进程使用时长统计。子进程仅支持自定义事件统计,客户可以通过自定义事件间接统计时长。

Uapp接入性能影响

测试机型号: vivo X7
系统: Android 5.1.1
CPU:MSM8976(八核心 A72 1.84 + A53 1.24)
RAM: 4GB
测试Wi-Fi接入点:Alibaba-inc(手机未设置代理)
测试工具:GT(腾讯)

CPU平均占用:1.96%
内存平均占用:25M
app启动首次onResume耗时:7.2秒
SDK功耗测试:17.7mAH

竞品详细包体大小对比

参考地址:https://yuque.antfin-inc.com/docs/share/a4a1a835-bbe0-4d3d-8726-027cdb280827?#