友盟为用户提供了自定义事件的功能,用于追踪用户行为,记录行为发生的具体细节。
1、计数事件
计数事件统计事件的发生次数、独立用户数、事件时长及事件各参数的发生次数、时长。
// 普通事件
MobclickAgent.onEvent(mContext, "event_Id");
MobclickAgent.onEvent(mContext, "event_Id", "标签");
// 多属性(K-V)事件
Map map_ekv = new HashMap();
map_ekv.put("type", "popular");
map_ekv.put("artist", "JJLin");
MobclickAgent.onEvent(mContext, "music", map_ekv);
2、计算事件
程序中的某些事件,如登录、分享、下载等,是定性变量(categorical variable),对应的统计项是字符串类型。开发者只需了解它们发生的次数及独立用户数,使用计数事件即可满足。
还有一些事件,如上面提到的支付金额、内容浏览数量等是连续变量,对应的统计项是数值类型。开发者需要查看这些事件的数值分布特征,这就需要使用计算事件。
计算事件可以解决的一些问题:
(1)对某个参数值求和
(2)计算某个参数值的单次均值及单用户均值
(3)近似得到某个参数值的概率分布函数[1]
(4)近似得到某个参数值的累计分布函数[2]
// 数值型统计
Map map_value = new HashMap();
map_value.put("type", "popular");
map_value.put("artist", "JJLin");
MobclickAgent.onEventValue(this, "music", map_value, 12000);
事件开始与结束
// 事件开始
MobclickAgent.onEventBegin(mContext, "music");
MobclickAgent.onEventBegin(mContext, "music", "one");
Map map = new HashMap();
map.put("type", "popular");
map.put("artist", "JJLin");
MobclickAgent.onKVEventBegin(mContext, "music", map, "flag0");
// 事件结束
MobclickAgent.onEventEnd(mContext, "music");
MobclickAgent.onEventEnd(mContext, "music", "one");
MobclickAgent.onKVEventEnd(mContext, "music", "flag0");
但是onEventBegin(...),onEventEnd(...)以及onEventDuration(...)后续不再支持,不建议使用。
如需统计使用时长,开发者需要自己上传时长数据(如示例中的duration所示),时长数据会在计算事件的数值型部分展示;
如果使用了onEventBegin(...),onEventEnd(...)以及onEventDuration(...)方法,时长数据会在计算事件的字符串型中显示。
// 获取在线参数
String onlineParams = MobclickAgent.getConfigParams(mContext, "abc");
// webView 统计
WebView webview = (WebView)findViewById(R.id.webview);
new MobclickAgentJSInterface(this, webview, new WebChromeClient());
注意如果你的HTML是运行在浏览器的,那么还是无法统计的,下文仅针对使用WebView加载 网页的情况。
集成了上面的代码后,我们将会监听友盟的 js 代码调用。
js代码集成在网页端,请添加如下的 js 代码: