zoukankan      html  css  js  c++  java
  • 埋点的三种方式

    1、第三方SDK(又可称前端数据采集)

    通过这种 SDK 只能够采集到一些基本的用户行为数据,比如设备的基本信息,用户执行的基本操作等。但是服务端、数据库中的数据并没有采集

    客户端 SDK 还有一个问题就是经常觉得统计的不准,和自己的业务数据库数据对不上,出现丢数据的情况。这是前端数据采集的先天缺陷,因为网络异常,或者统计口径不一致,都会导致数据对不上

    2、使用业务数据库做统计分析

    一般的互联网的产品,后端都是有业务数据库,里面存储了订单、用户注册信息等数据


    3、Web 日志进行统计分析

    建议:推荐尽量从后端进行埋点,这样就不用多个客户端埋了。当然,如果有行为只在客户端发生,还是要在客户端进行的

    可视化埋点:

    一是事先在产品上埋一个 SDK,二是通过可视化的方式,生成配置信息,也就是事件名称之类的定义,三是将采集的数据按照配置重命名

    例如点击事件——埋点

    index.js:

    ;(function ($) {
        $("a").click(function () {
            var good_info = $(this).attr("lang") //获得用户点击的商品信息
            var user_time = func_time() //获取用户当前系统时间s
            var brower_info = JSON.stringify($.support) //获取用户浏览器信息
            var ui = window.sessionStorage.getItem("user")
            var user_info=ui==null ? "10000" : ui //获取用户的密钥信息
    
            $.ajax({
                url:"http://localhost:8080/useract",
                data:{useract:"BROWSER "+user_time+" "+user_info+" "+good_info+" "+brower_info},
                type:"POST"
            })
        })
        function func_time() {
            var date = new Date()
            return date.getFullYear()+"-"+time_format(date.getMonth()+1)+"-"+time_format(date.getDate())+"T"
            +time_format(date.getHours())
        }
        function time_format(time) {
            if ((time+"").length<=1){
                return "0"+time;
            }else {
                return  time;
            }
    
        }
    })(jQuery);

    利用随机流读取生成文件:

    @RestController
    public class UserLogCtrl {
    
        @RequestMapping("/useract")
        public void useract(String useract){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            String fileName = "C:\Users\Administrator\Desktop\cc\user_"
                    +sdf.format(new Date())+".log";
            File file = new File(fileName);
            try {
                if (!file.exists())  file.createNewFile();
                RandomAccessFile raf = new RandomAccessFile(file,"rw");
                raf.seek(file.length());
                raf.writeBytes(useract+"
    ");
                raf.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    web之用FileUpload上传文件
    利用LinQ技术和lambd表达式进行增删改查
    weibform中Application、ViewState对象和分页
    webform中Session和Cookies对象的用法、登录保持
    点击input框弹出输入法 ,底部footer内容就会被顶上去的问题
    实现input密码框显示/隐藏的功能
    Elasticsearch 入门
    svn 提示错误 :Failed to run the WC DB work queue associated with 解决办法
    provider:命名管道提供程序,error:40
    ECMAScript (Javascript)位运算符
  • 原文地址:https://www.cnblogs.com/afeiiii/p/13809077.html
Copyright © 2011-2022 走看看