53
marmot you http://www.matmotu.com user behavior system work @ youa WED team http://t.sina.com/rank 11年7月12日星期二

用户行为系统Marmot - D2 2011 session

Embed Size (px)

DESCRIPTION

2011.7月在d2的session keynote, 用户行为在前端来说是第一次讲, 这次是联合演讲的方式, taobao的两位同学先讲,随后,我主要讲了一下做marmot的原理,设计框架,和部分实现细节.

Citation preview

Page 1: 用户行为系统Marmot - D2 2011 session

marmot youhttp://www.matmotu.com

userbehaviorsystem

work @ youa WED teamhttp://t.sina.com/rank

11年7月12日星期二

Page 2: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 3: 用户行为系统Marmot - D2 2011 session

各种 抓狂抓狂抓狂

11年7月12日星期二

Page 4: 用户行为系统Marmot - D2 2011 session

不能拍脑袋来决策问题11年7月12日星期二

Page 5: 用户行为系统Marmot - D2 2011 session

目标

11年7月12日星期二

Page 6: 用户行为系统Marmot - D2 2011 session

自动化用户体验评级系统!

11年7月12日星期二

Page 7: 用户行为系统Marmot - D2 2011 session

工作流

11年7月12日星期二

Page 8: 用户行为系统Marmot - D2 2011 session

marmot整体工作流

11年7月12日星期二

Page 9: 用户行为系统Marmot - D2 2011 session

看看长什么样

11年7月12日星期二

Page 10: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 11: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 12: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 13: 用户行为系统Marmot - D2 2011 session

图层可叠加

11年7月12日星期二

Page 14: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 15: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 16: 用户行为系统Marmot - D2 2011 session

网游充值

手机直充

100元

11年7月12日星期二

Page 17: 用户行为系统Marmot - D2 2011 session

数据绘制选型

11年7月12日星期二

Page 18: 用户行为系统Marmot - D2 2011 session

flash

php clickheat canvas

V.S

11年7月12日星期二

Page 19: 用户行为系统Marmot - D2 2011 session

类型 消耗 兼容 DOM 适用性

flash客户端cpu消耗

高 好 不能很好与dom结合

采样控制兼容性好

php clickheat无客户端消耗消耗在服务端 极好 不能很好与dom

结合 全采样可绘制

canvas 客户端消耗中高 需html5支持 能与dom很好结合

采样控制DOM结合

11年7月12日星期二

Page 20: 用户行为系统Marmot - D2 2011 session

采集

11年7月12日星期二

Page 21: 用户行为系统Marmot - D2 2011 session

Sid+Mid

marmot serverclient js

url match

client log

server logseq=0

processor API

referer+url

marmotID

sessionID

seq=n

11年7月12日星期二

Page 22: 用户行为系统Marmot - D2 2011 session

采集细节发送数据内容发送数据内容

target 元素

event type 事件类型

timestamp 时间

custom data 自定义数据

采集原始事件采集原始事件mousemove mousedown

mouseup click

dblclick focus

scroll keydown

11年7月12日星期二

Page 23: 用户行为系统Marmot - D2 2011 session

• 采集频率• 采集大小• 数据筛选• 采集API

• 数据合并

注意事项

11年7月12日星期二

Page 24: 用户行为系统Marmot - D2 2011 session

坐标一致性

11年7月12日星期二

Page 25: 用户行为系统Marmot - D2 2011 session

1024*768 1280*800

align = middle

relative coordinate

原点O=(0,0)

原点O=(document.documentElement.scrollWidth/2|0,0)

11年7月12日星期二

Page 26: 用户行为系统Marmot - D2 2011 session

MDPMarmot DOM Path

DOM path还原

11年7月12日星期二

Page 27: 用户行为系统Marmot - D2 2011 session

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日星期二

Page 28: 用户行为系统Marmot - D2 2011 session

还原规则

11年7月12日星期二

Page 29: 用户行为系统Marmot - D2 2011 session

统计与还原• marmot.log.js收集click

• 计算hover悬停的MDP

• 计算selector的MDP

• 发送至服务器• 服务器扫日志入HDFS/库

• 输出时直接输出

• 算法写死在客户端• 扩展比较麻烦

11年7月12日星期二

Page 30: 用户行为系统Marmot - D2 2011 session

发送数据内容发送数据内容

target 元素

event type 事件类型

timestamp 时间

custom data 自定义数据

时间差值

11年7月12日星期二

Page 31: 用户行为系统Marmot - D2 2011 session

mouse down + mouse

move + mouse up

mouse down + mouse

up = click

mouse move - mouse

move = delta hover

delta select=

move start

11年7月12日星期二

Page 32: 用户行为系统Marmot - D2 2011 session

是否有 不用关心页面对齐的方案

回到刚才的坐标一致性问题

11年7月12日星期二

Page 33: 用户行为系统Marmot - D2 2011 session

绝对坐标与相对坐标

11年7月12日星期二

Page 34: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 35: 用户行为系统Marmot - D2 2011 session

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日星期二

Page 36: 用户行为系统Marmot - D2 2011 session

栅格化

11年7月12日星期二

Page 37: 用户行为系统Marmot - D2 2011 session

Math.floor(document.documentElement.scrollWidth/n)

9px*9px

1px*1px

1024px

768px

11年7月12日星期二

Page 38: 用户行为系统Marmot - D2 2011 session

能满足宏观需求...

11年7月12日星期二

Page 39: 用户行为系统Marmot - D2 2011 session

再更多的一点料...

11年7月12日星期二

Page 40: 用户行为系统Marmot - D2 2011 session

页面行为如何衡量优劣

AB test进一步考虑

11年7月12日星期二

Page 41: 用户行为系统Marmot - D2 2011 session

行为数据分析微观数据的特征分析

11年7月12日星期二

Page 42: 用户行为系统Marmot - D2 2011 session

模糊关键路径

• 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日星期二

Page 43: 用户行为系统Marmot - D2 2011 session

['', '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日星期二

Page 44: 用户行为系统Marmot - D2 2011 session

关于还原用户行为PV还原的意义

11年7月12日星期二

Page 45: 用户行为系统Marmot - D2 2011 session

微观数据找到用户的问题Q : 找到的问题应该是 一类用户, 还是一个用户

11年7月12日星期二

Page 46: 用户行为系统Marmot - D2 2011 session

用户维度数据仓库

11年7月12日星期二

Page 47: 用户行为系统Marmot - D2 2011 session

• 一帮 公程师

• 一票 美女

• 一群 小资

• 这些 80后

如何找到用户

11年7月12日星期二

Page 48: 用户行为系统Marmot - D2 2011 session

用户维度marmot v2 design UDC

用户信息

用户数据平台

上网时间00:00

使用浏览器Safari

第一次来此页面

......

用户维度中心UDC

用户体验模型配置UEM

操作熟练产品新手

操作新手产品新手

操作熟练产品熟练

操作新手产品熟练

操作熟练产品新手性别男80后北京...

抽取该类用户操作轨迹回放

11年7月12日星期二

Page 49: 用户行为系统Marmot - D2 2011 session

评级模型

11年7月12日星期二

Page 50: 用户行为系统Marmot - D2 2011 session

自动评级

11年7月12日星期二

Page 51: 用户行为系统Marmot - D2 2011 session

11年7月12日星期二

Page 52: 用户行为系统Marmot - D2 2011 session

数据层hadoop(HDFS)

框架层framework

ABtest

beta publish

产品上线

marmot

WPO

11年7月12日星期二

Page 53: 用户行为系统Marmot - D2 2011 session

thanks拍砖及鸡蛋

11年7月12日星期二