• 埋点的三种方式


    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();
            }
        }
    }
  • 相关阅读:
    可变长参数列表
    《Android深入透析》之广播(Broadcast)
    android设计模式资源集合
    Android内存性能优化
    Java 对象的生命周期
    Android 打印java堆栈的几种方法
    Android下打印调试堆栈方法
    UML类图几种关系的总结
    【转】Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
    查看Android设备的CPU架构信息
  • 原文地址:https://www.cnblogs.com/afeiiii/p/13809077.html
Copyright © 2020-2023  润新知