首页 > 代码库 > 友盟(三)高级功能
友盟(三)高级功能
计算事件:还有一些事件,如支付金额、内容浏览数量等是连续变量,对应的统计项是数值类型。开发者需要查看这些事件的数值分布特征,这就需要使用计算事件。
计算事件可以解决的一些问题:
(1)对某个参数值求和
(2)计算某个参数值的单次均值及单用户均值
(3)近似得到某个参数值的概率分布函数[1]
(4)近似得到某个参数值的累计分布函数[2]
二、使用计数事件
1.了解计数事件的基本概念
事件ID是事件的标识,必须先在友盟后台进行创建,在代码中发送事件数据时,事件ID必须和后台一致。
事件ID不能使用特殊字符和ID、ts、du字段,并且长度在128字节内。
应用最多可以自定义500个事件(事件ID),每个事件最后又10个key,每个key最多1000g个取值。
2.创建事件ID
注意:
①事件ID是事件的标识,所以是唯一的,事件名称是事件ID的解释,方便理解。
②一些定性的操作,比如:登录次数、搜索次数、注册次数、进入购物车次数等,这些用计数事件;但是搜索关键词、账单金额等,这些信息是不确定的,有变化的取值,用计算事件。
3.集成计数事件
①统计事件的发生次数
调用下面的方法发送数据
MobclickAgent.onEvent(Context context, String eventId);
MobclickAgent.onEvent(LoginActivity.this, "login");
MobclickAgent.onEvent(Context context, String eventId, HashMap<String,String> map);
HashMap<String,String> map = new HashMap<String,String>();
map.put("category","Gadgets");
map.put("sku",""+1225);
map.put("price","$12.89");
MobclickAgent.onEvent(mContext, "add to cart", map);
MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du)
int duration = 12000; //开发者需要自己计算音乐播放时长
Map<String, String> map_value = new HashMap<String, String>();
map_value.put("type", "popular");
map_value.put("artist", "JJLin");
MobclickAgent.onEventValue(this, "music", map_value, duration);
public MobclickAgentJSInterface(Context context, WebView webview, WebChromeClient client)
public MobclickAgentJSInterface(Context context, WebView webview)
WebView webview = (WebView) findViewById(R.id.webview);
new MobclickAgentJSInterface(Context, webview);
做完上面2步,其实Android端页面的代码已经集成好了,现在需要做的是在HTML/JS页面中添加点击事件,当用户点击连接的时候,相应JS中的方法,发送数据到友盟。
③在js页面中添加2个方法
<script type="text/javascript">
function onEvent(tag, label, duration) {
prompt("event", JSON.stringify({tag:tag,label:label, duration:duration}));
}
function onKVEvent(tag, map, duration) {
map.id = tag;
map.duration = duration;
prompt("ekv", JSON.stringify( map ));
}
</script>
<a onClick="onEvent(‘click‘)"> SimpleEvent</a>
<a onClick="onEvent(‘click‘,‘button‘)"> EventWithLabel </a>
<a onClick="onEvent(‘play‘,‘music‘,123)"> EventWithLabelAndDuration </a>
<a onClick="onEvent(‘play‘,‘‘,123)"> EventWithDuration </a>
<a onClick="onKVEvent(‘buy‘,{‘item‘:‘gun‘})"> KVEvent </a>
<a onClick="onKVEvent(‘play‘,{‘music‘:‘blue‘}, 123)"> KVEventWithDuration </a>
//tag 传入字符串
onEvent(tag) -> MobclickAgent.onEvent(Context context, String tag);
// tag ,label 传入字符串onEvent(tag, label)-> MobclickAgent.onEvent(Context context, String tag, String label);
// tag 传入字符串, 第二个变量 传入空字符串, du 传入 数值类型
onEvent(tag, ‘‘, du) -> MobclickAgent.onEvent(Context context, long duration);// tag, label 传入字符串, du 传入数值类型onEvent(tag, label, du) -> MobclickAgent.onEvent(Context context, String tag, String label, long du);// id 传入字符串, 第二个参数传入 js 对象eg:{‘item‘:‘gun‘,‘type‘:‘weapon‘}onKVEvent(id, {} ) -> MobclickAgent.onEvent(Context context, HashMap map);// id 传入字符串, 第二个参数传入 js 对象eg:{‘item‘:‘gun‘,‘type‘:‘weapon‘}, du 传入 数值类型onKVEvent(id, {} , du) -> MobclickAgent.onEvent(Context context, HashMap map, long du);
public static void reportError(Context context, String error)
//或
public static void reportError(Context context, Throwable e)
UMPlatformData platform = new UMPlatformData(UMedia.SINA_WEIBO, "user_id");
platform.setGender(GENDER.MALE); //optional
platform.setWeiboId("weiboId"); //optional
MobclickAgent.onSocialEvent(this, platform);
UMeida meida
平台枚举类型(必填)String usid
用户的id(必填)String weiboId
微博id String name
用户姓名 GENDER gender
用户性别八、其它数据统计API
1.MobclickAgent.setAutoLocation(boolean enable)
设置是否允许收集地理位置信息 (默认true) 2.MobclickAgent.setOpenGLContext(GL10 gl)
设置openGL 信息,辅助统计GPU 信息
3.MobclickAgent.onKillProcess(Context context)
如果开发者调用Process.kill
或者System.exit
之类的方法杀死进程,请务必在此之前调用此方法,用来保存统计数据。
友盟(三)高级功能