关于用户行为追踪,从收集到后端的疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
diggzhang
V2EX    程序员

关于用户行为追踪,从收集到后端的疑问

  •  1
     
  •   diggzhang 2016-03-18 15:56:00 +08:00 6081 次点击
    这是一个创建于 3569 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们的产品会收集一些用户行为数据到后端供产品研究巴拉巴拉。

    目前的架构很简单,当用户产生行为后,前端获取后 ajax 请求 API 发送到后端,后端 server 程序写一个 event 事件到数据库。

    这样做前端很痛苦的,用户每产生一个行为,都要组合一个 json ,涵盖行为名字、触发实践以及各种状态,信息臃肿不堪。后端 API 压力大,数据库查询也因为量级太大导致各种慢查询。

    其实,我不知道这个埋点收集方式,有什么术语去搜,胡碰乱撞期间发现一个关键字'collect metrics',似乎很接近‘收集埋点’,但很多文章说 collect metrics 趋向于服务器监控的味道。

    继续调研发现, MixPanel 果然是业界首选。艾玛,我想做的其实就是一个自家版的 MixPanel 。

    顺着这个思路,发现一些很成熟的技术栈'ELK'以及'TICK':

    ELK: elastic.co

    TICK: influxdata.com

    基本锁定,如果想山寨一个 mixpanel 就是这样的技术选型了。

    大概看了一下 ELK 应该已经比 TICK 成熟,但 TICK 技术栈的组合又似乎 born from collect 。

    技术选型依然迷茫,甚至都不知道二选其一是否靠谱,如果大家有接触过行为收集的,诚恳求建议。

    有可能埋点收集与交互完全解耦吗?

    埋点信息,该如何设计才是最佳实?

    整个流,该如何搭配,如何工作吗?

    你们现在是如何做的呢?

    17 条回复    2016-03-23 08:34:57 +08:00
    knightdf
        1
    knightdf  
       2016-03-18 16:28:03 +08:00
    我们用的 elasticsearch
    akira
        2
    akira  
       2016-03-18 16:59:57 +08:00
    TalkingData ?
    practicer
        3
    practicer  
       2016-03-18 17:19:27 +08:00   4
    我的公司使用 Google tag manager 获取自定义点击事件数据,
    GTM 是一套 js 代码管理软件,提供了非常成熟的事件跟踪方案。
    通过 GTM 能够与交互完全解耦,只需在 GTM 后台管理系统进行埋点跟踪,
    全程不需要麻烦前端设计,基本能满足大部分的产品分析需求,
    我已经给公司网站进行了上千个埋点,包括普通的关键位置点击事件,
    长页面鼠标滚动事件,甚至 flash 产品内的点击事件,都可以通过 GTM 解决

    至于数据展现平台,哪个顺手用哪个咯,但强烈推荐用 Google Analytics ,
    搭配 GTM 可以说没有跟踪不到的内容,非常强大
    diggzhang
        4
    diggzhang  
    OP
       2016-03-18 17:25:24 +08:00
    @knightdf 似乎 sina 也在用 ELK ,翻过一篇博客如是说。
    @akira talkingdata growingio 诸葛 io... 真想知道他们是怎么做的
    @practicer GA 到了 X 百万了以后,如果不付费,会丢埋点 T_T
    practicer
        5
    practicer  
       2016-03-18 17:40:31 +08:00   3
    @diggzhang 前段时间查到的一个不付费的办法,还是用 GA 搜集数据
    GA 搜集数据的原理是把带参数的 1 乘 1 像素图片请求到 GA 服务器,
    GA 实际上已经获取了完整的数据,不过只对付费用户开放。但是如果
    把这个图片复制一个出来再发到自己的服务器,就能通过查看服务器
    网络日志获取到完整的数据。剩下要做的就是解析图片后面的参数并
    存入数据库
    diggzhang
        6
    diggzhang  
    OP
       2016-03-18 17:52:20 +08:00
    @practicer Aha! 神之一手。 相当有意思的做法。拍案叫绝。
    practicer
        7
    practicer  
       2016-03-18 18:00:40 +08:00   1
    @diggzhang https://www.stickler.de/en/information/analytics/send-ga-hits-to-own-server ,附上具体流程,主要是用到了 GA 的一个方法 ---- sendHitTask
    toposort
        8
    toposort  
       2016-03-18 18:03:42 +08:00
    https://sp0.baidu.com/5bU_dTmfKgQFm2e88IuM_a/w.gif ,把参数带到请求后面,打点单独布个服务器,然后解析 access log ,保存到分布式存储,然后离线计算。。如果量小的话,直接存数据库
    diggzhang
        9
    diggzhang  
    OP
       2016-03-18 18:17:22 +08:00
    @toposort 啊哈! GA 就是这样做的,解析 img 里的 src
    @practicer 我把这个办法分享给同事了,感谢你。送铜币。

    最终目标:前端埋点爽,后端数据爽。
    iyaozhen
        10
    iyaozhen  
       2016-03-18 18:56:25 +08:00 via Android
    两个方面做改进:
    1 、前端收集要做个库,基础数据(浏览器型号等)能自动收集,并提供接口给业务端写数据,然后通过 1x1px 图片 url get 传参数,通过 nginx 在服务端形成日志。
    2 、服务端 elk 处理日志
    fishioon
        11
    fishioon  
       2016-03-18 19:04:39 +08:00
    百度统计可以吗?
    mywaiting
        12
    mywaiting  
       2016-03-18 19:44:16 +08:00   1
    @practicer 好久没在 V2 这里看到这么有意思的回答了,感谢分享
    diggzhang
        13
    diggzhang  
    OP
       2016-03-20 15:43:34 +08:00
    @iyaozhen 同意!愈发肯定这是最佳实践了。
    @fishioon 主要是有一些高度耦合产品逻辑的行为,统计平台没法做到。
    practicer
        14
    practicer  
       2016-03-21 16:09:18 +08:00
    @diggzhang 现在进展怎么样了?还有有其他的想法吗?
    diggzhang
        15
    diggzhang  
    OP
       2016-03-22 10:24:13 +08:00
    @practicer 正在摸索 ELK ,安装有些坑,费劲了。版本变动貌似蛮大的,去年的 blog ,今年这才三月份就不管用了。可以进一步交流一下吗,如何联系到您?
    diggzhang
        16
    diggzhang  
    OP
       2016-03-22 10:28:35 +08:00
    practicer
        17
    practicer  
       2016-03-23 08:34:57 +08:00
    @diggzhang 加我的微信 nickysher
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5659 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:05 PVG 10:05 LAX 18:05 JFK 21:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86