View
1.321
Download
0
Category
Preview:
DESCRIPTION
2011.7月在d2的session keynote, 用户行为在前端来说是第一次讲, 这次是联合演讲的方式, taobao的两位同学先讲,随后,我主要讲了一下做marmot的原理,设计框架,和部分实现细节.
Citation preview
marmot youhttp://www.matmotu.com
userbehaviorsystem
work @ youa WED teamhttp://t.sina.com/rank
11年7月12日星期二
11年7月12日星期二
各种 抓狂抓狂抓狂
11年7月12日星期二
不能拍脑袋来决策问题11年7月12日星期二
目标
11年7月12日星期二
自动化用户体验评级系统!
11年7月12日星期二
工作流
11年7月12日星期二
marmot整体工作流
11年7月12日星期二
看看长什么样
11年7月12日星期二
11年7月12日星期二
11年7月12日星期二
11年7月12日星期二
图层可叠加
11年7月12日星期二
11年7月12日星期二
11年7月12日星期二
网游充值
手机直充
100元
11年7月12日星期二
数据绘制选型
11年7月12日星期二
flash
php clickheat canvas
V.S
11年7月12日星期二
类型 消耗 兼容 DOM 适用性
flash客户端cpu消耗
高 好 不能很好与dom结合
采样控制兼容性好
php clickheat无客户端消耗消耗在服务端 极好 不能很好与dom
结合 全采样可绘制
canvas 客户端消耗中高 需html5支持 能与dom很好结合
采样控制DOM结合
11年7月12日星期二
采集
11年7月12日星期二
Sid+Mid
marmot serverclient js
url match
client log
server logseq=0
processor API
referer+url
marmotID
sessionID
seq=n
11年7月12日星期二
采集细节发送数据内容发送数据内容
target 元素
event type 事件类型
timestamp 时间
custom data 自定义数据
采集原始事件采集原始事件mousemove mousedown
mouseup click
dblclick focus
scroll keydown
11年7月12日星期二
• 采集频率• 采集大小• 数据筛选• 采集API
• 数据合并
注意事项
11年7月12日星期二
坐标一致性
11年7月12日星期二
1024*768 1280*800
align = middle
relative coordinate
原点O=(0,0)
原点O=(document.documentElement.scrollWidth/2|0,0)
11年7月12日星期二
MDPMarmot DOM Path
DOM path还原
11年7月12日星期二
path=[div.container, ~1div]
div(HTMLElement) div(HTMLElement)
div#container(HTMLElement)
body
selector=’div#container>div:nth-of-type(1)’
path.replace(/~(\d+)([^~]+)/gi, '~$2:nth-of-type($1)').replace(/\~/gi, '>').replace(/\./gi, '#');
Marmot.getPath
11年7月12日星期二
还原规则
11年7月12日星期二
统计与还原• marmot.log.js收集click
• 计算hover悬停的MDP
• 计算selector的MDP
• 发送至服务器• 服务器扫日志入HDFS/库
• 输出时直接输出
• 算法写死在客户端• 扩展比较麻烦
11年7月12日星期二
发送数据内容发送数据内容
target 元素
event type 事件类型
timestamp 时间
custom data 自定义数据
时间差值
11年7月12日星期二
mouse down + mouse
move + mouse up
mouse down + mouse
up = click
mouse move - mouse
move = delta hover
delta select=
move start
11年7月12日星期二
是否有 不用关心页面对齐的方案
有
回到刚才的坐标一致性问题
11年7月12日星期二
绝对坐标与相对坐标
11年7月12日星期二
11年7月12日星期二
div(HTMLElement) div(HTMLElement)
div#container(HTMLElement)
body
mdp selector = ‘div#container>div:nth-of-type(1)’relative coordinate x = event.x; //300relative coordinate y = event.y; //100
var el = document.querySelector(mdp selector); //定位元素var xy = Dom.getXY(el);var corrective x = xy[0] + relative coordinate x;var corrective y = xy[1] + relative coordinate y;
x=300y=100
11年7月12日星期二
栅格化
11年7月12日星期二
Math.floor(document.documentElement.scrollWidth/n)
9px*9px
1px*1px
1024px
768px
11年7月12日星期二
能满足宏观需求...
11年7月12日星期二
再更多的一点料...
11年7月12日星期二
页面行为如何衡量优劣
AB test进一步考虑
11年7月12日星期二
行为数据分析微观数据的特征分析
11年7月12日星期二
模糊关键路径
• A用户行为的拓展序列是a->b->c->d->...
• B用户行为的拓展序列是c->b->d->a->...
• C用户行为的拓展序列是a->b->c->a->...
• D用户行为的拓展序列是a->c->b->a->...
模糊关键路径得到a->b->c->a
11年7月12日星期二
['', 'input.rd_fv_30', 'input.phone_number', 'button.btn-charge']
key path
['', 'input.phone_number', 'button.btn-charge', 'input.PassInputPassword0']['', 'input.rd_fv_30', 'input.phone_number', 'button.btn-charge', 'input.PassInputUsername0', 'input.PassInputPassword0']['', 'input.phone_number', 'button.btn-charge', 'input.PassInputPassword0']['', 'input.rd_ct_slow', 'input.phone_number', 'button.btn-charge', 'div.pdc-wrap~2div~1div~1div~1a', '']['', 'input.phone_number']['', 'input.phone_number', 'button.btn-charge', 'div.user_register_ctn~1h4', 'button.user_register_btn']['', 'input.rd_fv_50', 'input.phone_number', 'input.phone_number', 'input.phone_number', 'button.btn-charge']['', 'input.phone_number', 'button.btn-charge', 'input.PassInputPassword0', 'form.PassFormlogin~1fieldset~1p~1button', 'form.PassFormlogin~1fieldset~1p~1button']
similar path
11年7月12日星期二
关于还原用户行为PV还原的意义
11年7月12日星期二
微观数据找到用户的问题Q : 找到的问题应该是 一类用户, 还是一个用户
11年7月12日星期二
用户维度数据仓库
11年7月12日星期二
• 一帮 公程师
• 一票 美女
• 一群 小资
• 这些 80后
如何找到用户
11年7月12日星期二
用户维度marmot v2 design UDC
用户信息
用户数据平台
上网时间00:00
使用浏览器Safari
第一次来此页面
......
用户维度中心UDC
用户体验模型配置UEM
操作熟练产品新手
操作新手产品新手
操作熟练产品熟练
操作新手产品熟练
操作熟练产品新手性别男80后北京...
抽取该类用户操作轨迹回放
11年7月12日星期二
评级模型
11年7月12日星期二
自动评级
11年7月12日星期二
11年7月12日星期二
数据层hadoop(HDFS)
框架层framework
ABtest
beta publish
产品上线
marmot
WPO
11年7月12日星期二
thanks拍砖及鸡蛋
11年7月12日星期二
Recommended