ALog 是前端统计框架。
我们会使用或开发各种不同的统计模块对产品的使用情况进行收集,以便衡量产品的健康状况和对产品发展方向进行决策
随着前端交互越来越丰富,统计要分析的维度也越来越多样
经常一个页面中就会并行着多个统计模块:有性能相关的、有点击相关的、有业务相关的
ALog使用一些少量简单的API将这些复杂的统计模块统一组织起来
team/alog#2-alog%E8%A7%A3%E5%86%B3%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98)2. ALog解决什么问题?
team/alog#2-1-%E5%87%8F%E5%B0%91%E7%BB%9F%E8%AE%A1%E6%A8%A1%E5%9D%97%E5%8A%A0%E8%BD%BD%E5%AF%B9%E4%BA%A7%E5%93%81%E7%9A%84%E5%BD%B1%E5%93%8D)2-1. 减少统计模块加载对产品的影响
ALog使用异步方式加载统计模块,不堵塞页面正常资源加载;
另外值得一提的是,ALog的模块文件不依赖加载顺序、兼容同步和异步加载。
team/alog#2-2-%E5%B9%B6%E8%A1%8C%E5%A4%9A%E4%B8%AA%E7%BB%9F%E8%AE%A1%E6%A8%A1%E5%9D%97)2-2. 并行多个统计模块
team/alog#3-alog%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF)3. ALog适合什么应用场景?
team/alog#3-1-%E7%AE%80%E5%8D%95%E7%BB%9F%E8%AE%A1)3-1. 简单统计
直接这页面中调用
team/alog#3-2-%E5%A4%8D%E6%9D%82%E7%BB%9F%E8%AE%A1)3-2. 复杂统计
通过define定义统计模块
team/alog#3-3-%E4%BB%A3%E7%90%86%E7%BB%9F%E8%AE%A1)3-3. 代理统计
接入第三方统计模块
team/alog#4-2-%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C)4-2. 准备工作
页面加载的方式
/** * 执行 * @param{String} trackerMethod 追踪器的方法 "<trackerName>.<method>" * @param{Object…} params 方法 */ function alog(trackerMethod, params)
alog('define', 'pv', function(){ var pvTracker = alog.tracker('pv'); pvTracker.set('ver', 1); pvTracker.set('px', window.screen.width + 'x' + window.screen.height); return pvTracker;});
alog('require', ['pv'], function(pvTracker){ pvTracker.create({ postUrl: 'http://localhost/u.gif' });});
绑定事件
function record(e){}alog('speed.on', 'record', function(e){ var buffer = this.get('buffer'); buffer.push('e');});
注销事件
派发事件
ATracker模块
创建追踪器实例
alog('pv.create', { postUrl: 'http://localhost/u.gif'});alog('pv.send', 'pageview');
设置字段值
获取字段值
上报数据
team/alog#5-3-%E4%BF%9D%E7%95%99%E5%AD%97%E6%AE%B5)5-3. 保留字段
上报地址
protocolParameter
协议字段,用于简写
team/alog#5-4-%E6%A0%87%E5%87%86%E4%BA%8B%E4%BB%B6)5-4. 标准事件
追踪器创建时触发
数据上报时派发
team/alog#6-%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3)6. 参考文档
google analytics https://developers.google.com/analytics/devguides/platform/