|
友盟SDK支持哪些设备?Top
Android 统计SDK目前支持Android手机、Android平板; iOS 统计SDK目前支持iPhone、iTouch、iPad。 友盟的发送的log数据包有多大?Top
数据包压缩后大概0.7k,这个流量对用户基本没有影响。而且数据是即时缓存在客户端, 您也可以根据需要自定义数据发送策略。 默认在程序启动且联网的状态下发送,不会影响用户的体验。 统计SDK安装多久后可以看到数据?Top
按照开发指南集成SDK后,再次启动应用程序,半个小时左右就可以看到相应的报表。 可以知道用户下载和卸载的情况吗?Top
我们是通过应用启动发送log来进行数据统计分析的,用户下载和卸载跟应用的启动没有关系,所以这方面信息我们获取不到。 用户卸载后,还会被算做累计用户,但不再是活跃用户了。 如何针对不同的分发渠道进行统计?Top
首先按照开发指南中的说明,为不同的渠道添加相应的ChannelID。然后,针对每个渠道分别编译打包,不同的渠道发布相应的软件包(它们共用一个AppKey,只是渠道标签不同)。 为什么没有收到页面访问统计数据? Top
我们针对页面访问进行的是抽样统计,所以只有数据量达到一定规模之后才可以看到。 测试过程中,更改渠道标记后为什么渠道新增用户没有发生变化? Top
我们对一个设备只记录一次渠道,也就是最原始的渠道。我们通过IMEI来作为设备的唯一标识(如果您的应用运行在无法读取IMEI的平板上,我们会将mac地址作为设备的唯一标识)。 对于Android应用,如何定义一次启动?启动用户包括后台运行程序的用户么? Top
启动是通过在所有activity中调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法来监测的。一个应用程序在多个activity之间连续切换时,将会被视为同一个session(启动)。这两个调用不会阻塞应用程序的主线程,也不会影响应用程序的性能。 后台运行的程序,没有调用MobclickAgent.onResume() 和MobclickAgent.onPause(),所以不会被算做启动用户。 当用户两次使用的间隔超过30秒时,将被认为是两个的独立的启动 (session)。例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。如果两次使用的间隔少于30秒,则被认为是一次启动;如果两次使用的间隔超过30秒,则被认为是两次启动。 如果用户更新了应用程序版本,会被重新算做新用户么?Top
老用户更新应用程序版本不会被算做新增用户。但是在版本统计中,会被算成新版本的用户。 为什么前几天的启动用户/新增用户数一直有变化?Top
首先,友盟的统计时间以用户客户端的时间为准,北美和欧洲部分国家的用户会被算作昨天的用户,导致已经结束的统计数据产生变化。 此外,友盟的数据是客户端即时缓存,然后根据开发者选择的数据发送策略来发送的(并不一定是实时发送),这也造成了一定程度的延迟。比如用在网络不好的情况下用户发送数据失败,过段时间第二次启动程序才把数据发送出去。 渠道上的每日下载数和友盟统计的每日新增用户数存在一定差距,这个是正常现象么?Top
友盟统计的每日新用户指的是当天启动过该应用程序的新用户,如果是下载未安装或者安装未启动的用户都不会被计算在内。 此外,还会有部分启动用户由于数据发送策略等缘故被延迟统计。 所以每日新增用户数和您在渠道上观察到的每日下载数存在差距是很正常的。 为什么用proguard混淆后,友盟AndroidSDK的一些功能不可用?Top
由于SDK需要引用导入工程的资源文件,通过了反射机制得到资源引用文件R.java,但是在开发者通过proguard等混淆/优化工具处理apk时,proguard可能会将R.java删除,如果遇到这个问题,请在proguard配置文件中添加keep命令如:
-keep public class [package name].R$*{
public static final int *;
}
如果您使用了双向反馈功能,还需要添加下面代码,以免我们自定义的UI被混淆:
-keep public class com.feedback.ui.ThreadView {
}
为什么我上传了自动更新的APK文件,用户却没有收到提示?Top
我们的自动更新服务的机制是: SDK会检查您上传的更新包中的VersionCode,与当前的App的版本进行比较,如果您上传的更新包中的VersionCode大于当前版本的,我们才会提示用户更新。因此,请确保您上传的更新包的VersionCode大于已发布的版本。 为什么使用TabHost,ActivityGroup时会出现启动次数变多的情况?Top
TabHost和ActivityGroup中有Activity之间有包含关系,如果同时在父和子Activity中都调用了onPause和onResume方法的话,就会出现重复调用的情况,从而出现统计启动次数不准确的情况,这时可以选择要么只在子activity中要么只在父activity中添加这两个方法的方式解决问题。同样在有继承关系的Activity中也不要在父类和子类中同时调用。 |