• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
刘平川:【用户行为分析】Marmot实践
 

刘平川:【用户行为分析】Marmot实践

on

  • 6,277 views

 

Statistics

Views

Total Views
6,277
Views on SlideShare
2,094
Embed Views
4,183

Actions

Likes
9
Downloads
84
Comments
1

7 Embeds 4,183

http://www.d2forum.org 4158
http://www.itfeed.cn 10
http://cache.baidu.com 10
http://reader.youdao.com 2
http://www.d2forum.org} {663014624|||pingback 1
http://www.d2forum.org} {1514583721|||pingback 1
http://www.chengxuyuans.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • cool
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    刘平川:【用户行为分析】Marmot实践 刘平川:【用户行为分析】Marmot实践 Presentation Transcript

    • userbehaviorsystem http://www.matmotu.com work @ youa WED team http://t.sina.com/rank
    • userbehaviorsystem marmot you http://www.matmotu.com work @ youa WED team http://t.sina.com/rank
    • marmot
    • 100
    • flash V.S phpclickheat canvas
    • DOM cpu dom flash domphp clickheat dom canvas html5 DOM
    • referer+url client js marmot server marmotID Sid+Mid url match sessionID client log seq=0 server log seq=nprocessor API
    • mousemove mousedown target mouseup click event type dblclick focus timestamp scroll keydown custom data
    • •••• API•
    • O=(0,0)1024*768 1280*800 O=(document.documentElement.scrollWidth/2|0,0) align = middle relative coordinate
    • DOM pathMDPMarmot DOM Path
    • body div#container(HTMLElement) div(HTMLElement) div(HTMLElement) Marmot.getPath path=[div.container, ~1div] path.replace(/~(d+)([^~]+)/gi, ~$2:nth-of-type($1)) .replace(/~/gi, >) .replace(/./gi, #); selector=’div#container>div:nth-of-type(1)’
    • • marmot.log.js click• hover MDP •• selector MDP ••• HDFS/•
    • targetevent typetimestampcustom data
    • move start mouse mouse delta move - move = hover mouse mouse down + up = clickmouse mouse mouse deltadown + move + up = select
    • body x=300 div#container(HTMLElement) y=100 div(HTMLElement) div(HTMLElement)mdp selector = ‘div#container>div:nth-of-type(1)’relative coordinate x = event.x; //300relative coordinate y = event.y; //100var 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;
    • 1024px 1px*1px768px Math.floor(document.documentElement.scrollWidth/n) 9px*9px
    • ...
    • ...
    • AB test
    • •A a->b->c->d->...•B c->b->d->a->...•C a->b->c->a->...•D a->c->b->a->... a->b->c->a
    • key path[, input.rd_fv_30, input.phone_number, button.btn-charge]similar 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]
    • PV
    • Q: ,
    • •••• 80
    • marmot v2 design UDC
    • ABtesthadoop framework(HDFS) beta publish marmot WPO
    • thanks