埋点 订阅
埋点分析,是网站分析的一种常用的数据采集方法。数据埋点分为初级、中级、高级三种方式。数据埋点是一种良好的私有化部署数据采集方式。 展开全文
埋点分析,是网站分析的一种常用的数据采集方法。数据埋点分为初级、中级、高级三种方式。数据埋点是一种良好的私有化部署数据采集方式。
信息
外文名
event tracking
中文名
埋点
图像分类分类方法
埋点技术如何采集数据,有何优缺点?数据埋点分为初级、中级、高级三种方式,分别为:初级:在产品、服务转化关键点植入统计代码,据其独立ID确保数据采集不重复(如购买按钮点击率);中级:植入多段代码,追踪用户在平台每个界面上的系列行为,事件之间相互独立(如打开商品详情页——选择商品型号——加入购物车——下订单——购买完成);高级:联合公司工程、ETL采集分析用户全量行为,建立用户画像,还原用户行为模型,作为产品分析、优化的基础。无疑,数据埋点是一种良好的私有化部署数据采集方式。数据采集准确,满足了企业去粗取精,实现产品、服务快速优化迭代的需求。但,因手动埋点工程量极大,且一不小心容易出错,成为很多工程师的痛。且其开发周期长,耗时费力,很多规模较小的公司并不具备自己埋点的能力。无埋点成为市场新宠。最后埋点、无埋点两种技术谁能成为最后赢家,我们拭目以待。
收起全文
精华内容
参与话题
问答
  • 埋点

    千次阅读 2019-01-02 17:19:31
    1.埋点 埋点分析,是网站分析的一种常用的数据采集方法,简单来说,就是在应用中添加监控点。 2.目的 获取目标数据 二、埋点数据分类 埋点主要应用在电商方面,根据用户的行为进行数据统计,再分析数据,为企业...

    一、概念

    1.埋点

    埋点分析,是网站分析的一种常用的数据采集方法,简单来说,就是在应用中添加监控点。

    2.目的

    获取目标数据

    二、埋点数据分类

    埋点主要应用在电商方面,根据用户的行为进行数据统计,再分析数据,为企业的决策提供数据支撑。主要分为以下几类:

    1.行为数据

    时间、地点、人物、交互、交互的内容

    2.质量数据

    浏览器加载情况、错误异常

    3.环境数据

    浏览器相关的元数据以及地理、运营商

    4.运营数据

    PV,UV,转化率,留存率

    三、埋点的做法

    主要看可以在哪儿采集到数据,既可在前端,也可在后端

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

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

    3.Web 日志进行统计分析

    四、统计数据名词含义

    1.平台数据

    从上图可知,平台数据一般会统计“用户数据”,“流量数据”,“渠道数据”,“商家概况”,“商家数据”。

    2.用户数据

    作为平台方,我们关心的用户数据如上图所示,一边是来自社交平台的粉丝,一边是来自平台自身的用户。

    关注数:指用户对(平台的)社交平台关注数,包括对微信,微博等的关注;

    净增长粉丝数:指新增的粉丝量与流失的量之间的差额;

    流失粉丝数:指流失的粉丝数;

    环比增长率:同比上期,增长粉丝数的比例,公式算法:((这期-上期)/上期)*100%;

    注册用户数:指已注册了平台账户的用户数;

    会员数:指成为平台会员的用户数(各个平台规则不同,例京东会员则¥198/年);

    非会员数:指未成为平台会员的用户数;

    新注册用户:筛选期间内,同比此前新增的注册用户数;

    日活跃用户:(一般对APP而言)以设备ID为依据,1天(00:00-24:00)之内,访问App的不重复用户数;

    月活跃用户:(一般对APP而言)以设备ID为依据,指1月之内至少访问一次APP的独立用户数;

    用户性别:用户性别,一般分为男,女,未知;

    用户年龄:用户年龄;

    用户地域:指用户的设备定位区域;

    消费水平:指用户在平台消费后平台给与的等级划分(基础建设可先不计算这一数据);

    渠道用户:指来自不同渠道的用户(例网红直播从快手引流至淘宝,则该部分用户为淘宝的渠道用户);

    访问时段:指用户访问的平台的时间段分布;

    3.流量数据

    独立访客(UV):(一般针对H5/PC)指访问平台的一台电脑或客户端算为一个访客。00:00-24:00内相同的客户端只被计算一次;

    页面浏览量(PV):(一般针对H5/PC)指页面访问量,每打开一次页面PV计数+1,刷新页面也是

    访问次数:指用户从开始访问平台到最终离开平台,计为1次访问。若用户连续30分钟没有访问新页面和刷新页面,或者用户直接退出(关闭浏览器等),则定义为本次访问结束;

    跳出率:指用户只访问了首页就离开的访问量与所产生总访问量的百分比:

    访客地域:指用户访问平台时设备/客户端定位的区域;

    访问页面:指用户访问的页面;

    访问品类:指用户访问的商品品类;

    访客年龄:指访问平台的用户的年龄;

    访客支付转化:指用户在每一个页面的访问量的占比率(例访问首页100人,详情页50人,购物车30人,支付页10人,支付成功9人)

    4.渠道数据

    广告投放数据:指平台投放广告数据(指广告曝光量,曝光人数,点击量等,此处不细化);

    渠道分布数据:指平台各个渠道的分布情况;

    渠道数量:指平台的渠道数量;

    点击量:指从渠道导入的用户点击平台次数的累计;

    导入UV:指从渠道导入流量的UV数据;

    导入PV:指从渠道导入流量的PV数据;

    导入访问次数:指从渠道导入流量的访问次数;

    平均访问时长:指从渠道导入的用户的平均访问时长;

    订单笔数:指从渠道导入的用户的总下单笔数;

    付款笔数:指从渠道导入的用户的总付款笔数;

    订单金额:指从渠道导入的用户的总下单金额;

    付款金额:指从渠道导入的用户的总付款金额;

    转化率:指从渠道导入的用户付款订单数与下单数的比率,订单转化率(计算公式:付款笔数/订单笔数);

    跳出率:指从渠道导入的用户的跳出率;

    5.商家概况

    商家数量:指平台的商家总数量;

    地域分布:指平台的商家区域分布(根据入驻时填写的地址统计);

    品类分布:指平台的商家的品类分布概况(例家电数码100家,服装服饰5000家等分布情况);

    商家类型:指平台的商家类型分布情况(例品牌店1000家,厂家200家,经销商300家);

    投放模块:指商家在平台投放流量的模块;

    投放金额分布:指商家在平台投放流量的金额分布;

    投放占比:指投放流量的商家占比平台总商家数量;

    6.商家数据

    上面我们逐个介绍了平台统计数据的要点,我们接着讲商家统计数据的要点。

    交易数据

    下单笔数:指商家的下单笔数(可按某个商家筛选,不筛选则指整7个平台商家的下单笔数);

    付款笔数:指商家的付款笔数(可按某个商家筛选,不筛选则指整个平台商家的下单笔数);

    下单金额:指商家的下单金额(可按某个商家筛选,不筛选则指整个平台商家的下单笔数);

    付款金额:指商家的付款金额(可按某个商家筛选,不筛选则指整个平台商家的下单笔数);

    复购人数:指不小于1次在商家购买商品的用户累计总数;

    订单状态分布:指订单状态的分布情况(例待支付50单,待发货60单等);

    订单金额分布:指订单金额在多个区间范围内的分布情况(例订单均额在300-500的500单,500-1000的200单等);

    订单渠道分布:指订单来源于不同渠道的分布情况;

    订单地域分布:指订单的收货地址区域总体分布情况;

    转化率:指用户付款订单数与下单数的比率,订单转化率(计算公式:付款笔数/订单笔数);

    复购率:指用户购买次数大于1次的次数占比总用户购买次数(还有另一种算法,此处不细说);

    支付率:指付款用户数占比下单用户数,订单支付率(计算公式:付款人数/下单人数);

    支付金额:指用户在商家支付的金额总和;

    支付方式:指用户在商家支付的方式总和(例支付宝,微信支付,信用卡支付等);

    币种类型:指用户在商家消费支付的币种类型(例现金,积分,消费券等);

    支付结果:指用户在商家消费支付的结果分布情况;

    商品数据

    SKU数量:指商家SKU的数量;

    SKU销量:指商家SKU的销量;

    SPU数量:指商家SPU的数量;

    一级类目数量:指商家一级类目的数量;

    二级类目数量:指商家二级类目的数量;

    三级类目数量:指商家三级类目的数量;

    品牌数据:指商品所属品牌的数据情况;

    用户数据

    下单用户:指在商家下单的用户数;

    付款用户:指在商家付款的用户数;

    会员数据:指商家的会员数据(会员数,会员画像等);

    客户留存率:用户在某段时间内访问商家,经过一段时间后,仍然访问商家店铺的用户,被认作是留存用户。而留存率则是该部分用户占比此前的某段时间访问商家的用户数;

    店铺收藏用户数:指收藏过商家店铺的用户数总和;

    流量数据

    访客数(UV):指访问商家的一台电脑或客户端算为一个访客。00:00-24:00内相同的客户端只被计算一次;

    浏览量(PV):指商家页面访问量,每打开一次页面PV计数+1,刷新页面也是;

    浏览次数:指用户从开始访问商家到最终离开商家,计为1次访问。若用户连续30分钟没有访问新页面和刷新页面,或者用户直接退出(关闭浏览器等),则定义为本次访问结束;

    浏览时长:指用户浏览商家店铺的平均时长;

    访问时段:指用户访问商家店铺的时间段分布情况;

    访问品类:指用户访问商家店铺的商品品类分布情况;

    分享次数:指用户分享商家店铺或商家商品的次数总和;

    营收数据

    总营业额:指商家的总营业额;

    待结算金额:指商家等待结算的金额(有些平台会将资金控制在平台内,等待结算后才到账);

    待退款金额:指商家店铺下待退款的金额;

    已退款金额:指商家店铺下已成功退款的金额;

    已到账金额:指商家已到账金额(一般用于提现,属于商家真实收入);

    退款率:指商家收到退款的订单笔数与同期成功交易(付款)的订单笔数的比率;

    物流数据

    待发货数:指商家还未发货的订单数;

    已发货数:指商家已经发货的订单数;

    已收货数:指用户已经签收的订单数;

    平均发货时长:指所有商家的平均发货速度(计算公式=所有商家发货时长/商家总数);

    快递公司分布:指所有商家所使用的快递公司的分布情况;

    未签收:指用户未签收的包裹数;

    已签收:指用户已签收的包裹数;

    已拒签:指用户拒签的包裹数;

    待退回:指用户已申请退款,但包裹还未退回的包裹数;

    已退回:指用户已经完成退货的包裹数;

    签收时长统计:指所有用户的平均签收时长;

    展开全文
  • 埋点测试

    千次阅读 2020-01-13 19:22:59
    什么是 埋点测试? 埋点的目的:实现app的数据收集和分析。 而数据收集和分析的意义是什么呢? 不同的人对于埋点有不同的目标。 比如对于版本的某个功能,产品可能只是想埋点以了解: 新功能是否得到用户的认可...

    什么是 埋点测试?

    埋点的目的:实现app的数据收集和分析。

    而数据收集和分析的意义是什么呢?

    不同的人对于埋点有不同的目标。

    比如对于版本的某个功能,产品可能只是想埋点以了解:

    新功能是否得到用户的认可和使用?

    用户使用的场景和路径是怎样的?顺畅吗?

    是否需要针对反馈回来的数据,进行分析改进功能?

    而对于某个广告和运营活动的投放,关注的可能是:

    广告的展示率、用户的点击率、转化率、甚至是商业盈利等

    总而言之,埋点本身其实是对于自己所设计的产品的有一个可视化健康检查,通过逻辑和数据,贯穿产品的整个生命周期,使产品逐步达到最佳状态从而实现硅谷最近所谓的“Growth Hacker”的效果。

     

    另外,一般的app都会有一些核心指标和一般性指标,核心指标诸如下载量、用户数、活跃用户数、留存等等,一般性指标比如用户访问频率、停留时长、页面数等。

     

    于是就衍生出了各种各样的埋点工具。市面上常见的埋点工具,谷歌的Google Analytics,国内比较普遍的第三方统计工具是友盟和talking data,现在小米,腾讯和百度也有开放的统计sdk。

    埋点的逻辑是:界面——事件——事件参数

    每一个界面的每个事件都有唯一的标示ID

    此外,每个界面中都会有公共参数统计,比如:userId、timestamp、taskId等

    讲了这么多,那么埋点是怎么测试的呢?

    通用的一种方式是直接第三方统计平台去定时查看自己的appid对应的数据。之前有测过Google和友盟的统计。

    优点是,第三方平台的数据往往是经过分析汇总的,展示非常直观。但缺点,是这些平台数据往往不是时时更新的。

    再加上第三方统计平台自己的稳定性也有待考量。所以没办法及时确认数据的准确性。

    于是另一种方式是从客户端下手,查看开发的埋点日志。

    展开全文
  • 自定义埋点问题

    2020-11-28 10:39:02
    <div><p>尝试使用了自定义埋点功能,会出现一下错误,请问是什么原因呢? 微信截图_20200628181522" src="https://img-blog.csdnimg.cn/img_convert/4ade1753b0e2fa23f987cbc96357034d.png" /> ...
  • 荐序:为了实现对数据的采集,可以使用三种方式:代码埋点、工具导入和全埋点。这三种方式都是手段,并且各有优缺点,选择需要完全基于实际的业务需求和现状来设计。埋点方式多种多样,按照埋点位置不同,可以分为...
  • Runtime(统计埋点

    2019-03-28 16:33:29
    埋点统计的方案 第一步:创建一个Manager来管理埋点 1)里面实现UMSAgent的注册(startWithAppKey:) 2)实现一些业务逻辑的方法(比如,发送事件,页面的统计,h5的统计,等等) 第二步:把eventId用 Config 来进行...
  • 本书系统讲解了Android全埋点的解决方案,特别是控件点击事件的全埋点采集,总结并归纳了如下8种解决方案,并且都提供了完整的项目源码。$AppStart、$AppEnd全埋点方案:T $AppClick全埋点方案1:代理View....
  • 请教数据源埋点问题

    2020-11-22 11:16:58
    <div><p>之前看opentracing的埋点机制基本上基于AOP以及BeanPostProcessor,今天有幸看到了Sofa-tracer的DataSource埋点方式是基于BeanFactoryPostProcessor,我想请问一下Sofa-tracer的这种埋点方式有...
  • 埋点治理&埋点自动化-埋点日志对比

    千次阅读 2019-01-11 15:52:08
    =======================================================================================...经过产品评估后决定需要重构部分埋点字段的参数,所以搜索的iOS端和Android端开始了一段全部埋点的测试之路。 0225版...

     

    ===============================================================================================

    搜索埋点背景

    由于搜索埋点数据过于老化,导致统计方面的一些工作的不方便。经过产品评估后决定需要重构部分埋点字段的参数,所以搜索的iOS端和Android端开始了一段全部埋点的测试之路。

    0225版本新架构yksearch背景

    ❎ 流量分散、老sdk中包含大量且复杂的版本控制逻辑、埋点由客户端下发,容错率和迭代效率较低

    ✅ 埋点改为服务端下发。两端保持一致,新增统计字段时不需要重新发版

    面临的困难

    ❎ 每次测试任务量巨大,要求QA覆盖全部46个类型卡片,100+种状态

    ❎ 单靠人肉diff工作量大且效率低

    ❎ 埋点日志字段较多。曝光埋点每个日志多达300+key value

    ❎ 埋点测试为S2季度客户端重点需求,不允许出错

    解决办法

    ✅ Mock数据,构造全部产品形态,避免节目下线、节目类型难以查找等情况,辅助测试埋点

    ✅ 部分QA手工测试,文本在线diff

    ✅ 结合埋点治理平台UT(usertrack),抓取埋点日志

    ✅ 接入PLATO,正则表达式判断部分key value

    ✅ 设计埋点日志数据对比脚本,提升测试效率

     

    ===============================================================================================

     

    ===============================================================================================

    设计思想:

    1.定义数据data(单个json,校验track_info外的字段在track_info都要存在)、data1_old(老版本上报的埋点)、 
    data2_new(新版本上报的埋点)
    
    2.定义第一个类DataPathTag,老版本path1、新版本path2、同一个数据内path,以上埋点数据文件存放的绝对路径
    
    3.定义第二个类DataUtils是工具类:将文件流放到内存中,BufferedReader按行读取, 
    3.1 分离内外数据 3.1.1 内层与外层的区别标识为{},{为开始,}为结束,将内层与外层数据生成2个字符串track_info_outer、
    track_info_inner, 找到track_info_inner第一个"="的下标,截取字符串,可强转为json
    
    3.1.2 外层判断是否包含}
    
    3.2 内层、外层数据转换 3.2.1 track_info_inner的格式本来就为json,所以直接处理json即可, 截取track_info_inner字符串,
    json格式{}里所有内容,从{开始截取,直到}的位置,最后一位为"," { "searchtab":"0", "pageName":"page_searchresults", "group_num":38, }
    
    3.2.2 track_info_outer的格式为A=1 外层数据处理,字符串转数组,数组先以","分隔,再以"="分隔,数组再转json,
    如"A=1,B=2,C=3"-->[A=1,B=2,C=3]-->{"A":"1","B":"2","C":"1"}, object_id=dbb0ecb3786549098484, object_title=一出好戏, srid=1,
    
    4. 第三个类JSONdifferent是新老数据的比较。调用DataUtils类,内层、外层分开判断,先判断key,再判断value 
    老版本的所有key必须在新版本中存在,如果不存在打印key,value。如果存在判断value是否相同,不相同打印
    
    5. 第四个类SingleCompare是单个版本上报的数据校验,判断track_info内是否包含track_info外所有的key 
    如果不存在,打印key,value。如果存在判断value是否相同,不相同打印
    
    6. 第五个类NewArchitecture是新老架构埋点数据的对比
    内层判断:
    校验老版本内层层必须不存在{"newArch"};
    校验新版本内层层必须存在{"newArch"};
    
    外层判断:
    校验老版本外层必须存在{"spm_new","scm_new"};
    新版本外层必须存在{"spm","scm"};
    新版本外层必须不存在{"spm_new","scm_new"};
    且新版本spm scm的value与老版本的spm_new scm_new的value必须一致
    
    
    
    1.value中存在两个==,取第一个
    2.value中存在:的情况,如曝光埋点_KG卡片(即UGC大词)"tagvalue":"2:0;1:0",json解析的时候出错

     

     

     

    1. 工具类DataUtilsSingle:单个json格式日志解析

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    public class DataUtilsSingle {
        public   JSONObject innerJSON;
        public   JSONObject outerJSON;
    
        //读取path路径的txt文件
        public void txt2String(String path){
            //StringBuilder为拼接字符串,减少对象的创建
            StringBuilder track_info_outer = new StringBuilder();
            StringBuilder track_info_inner = new StringBuilder();
    
            //文件读取必须得用try catch,文件按行读取
            try{
                File file = new File(path);
                BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
                String s;
                boolean isInner = false;
                while((s = br.readLine())!=null){//使用readLine方法,一次读一行
                    String result = s.trim();//去空白,末尾或者开头。去空格
                    //内外层数据分离,用{}区分
                    if (result.contains("{")){
                        isInner = true;
                    }else if (result.contains("}")){
                        isInner = false;
                        //"A=1,B=2,C=3..."
                        track_info_inner.append(result);
                    }
                    boolean con = result.contains("}");
                    if (!con){
                        if (isInner){
                            track_info_inner.append(result);
                        }else {
                            track_info_outer.append(result);
                        }
    
                    }
    
                }
                br.close();
                //track_info_inner中等号(=)第一次出现的位置
                int firstIndex = track_info_inner.indexOf("=");
                //截取inner字符串,json格式{}里所有内容,从{开始截取,直到}的位置,最后一位为","
                String innerStr = track_info_inner.substring(firstIndex+1);
                if (innerStr.endsWith(",")){
                    innerStr = innerStr.substring(0,innerStr.length()-1);
                }
                String[] outer = track_info_outer.toString().split(",");
                innerJSON = JSON.parseObject(innerStr);
                outerJSON = new JSONObject();
                for (int i=0;i<outer.length;i++){
                    String[] array = outer[i].split("=");
                    outerJSON.put(array[0].trim(),array[1].trim());
                }
    
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
    }
    

     

    2. 工具类DataUtilsMulti:多个json即jsonlist格式日志解析

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.util.ArrayList;
    import java.util.List;
    
    public class DataUtilsMulti {
        private JSONObject innerJSON;
        public List<JSONObject> innerList = new ArrayList<>();
        public JSONObject outerJSON;
    
        //读取文件data.txt内容
        public void txt2String(String path){
            File file = new File(path);
    
            StringBuilder track_info_outer = new StringBuilder();
            StringBuilder track_info_inner = new StringBuilder();
    
            try{
                BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
                String s = null;
                boolean isInner = false;
                while((s = br.readLine())!=null){//使用readLine方法,一次读一行
                    String result = s.trim();
                    if (result.contains("{")){
                        isInner = true;
                    }else if (result.contains("}") && !result.contains("{")){
                        isInner = false;
                        track_info_inner.append(result);
                        continue;
                    }
                    if (isInner){
                        track_info_inner.append(result);
                    }else {
                        track_info_outer.append(result);
                    }
    
                }
                br.close();
    
                //0311新增代码44 45 59,根据新架构pv日志格式调整,判断无track_info字段或者track_info为空的情况
                String info_inner = track_info_inner.toString();
                    if (info_inner != null && info_inner.trim().length()!= 0) {
                    //track_info_inner中等号(=)第一次出现的位置
                    int firstIndex = track_info_inner.indexOf("=");
                    //从=算index,index+1为{。取出的字符串为{};{};{};{},
                    String inner = track_info_inner.substring(firstIndex + 1);
                    String innerStr = inner.substring(0, inner.length() - 1);
                    String[] innerArray = innerStr.split(";");
                    for (int i = 0; i < innerArray.length; i++) {
                        if (innerArray[i].trim().length() != 0) {
                            //{}   {}   {}
                            innerJSON = JSON.parseObject(innerArray[i]);
                            innerList.add(innerJSON);
                        }
                    }
                }
    
                String[] outer = track_info_outer.toString().split(",");
                outerJSON = new JSONObject();
                for (int i=0;i<outer.length;i++){
                    int index = outer[i].indexOf("=");
                    String[] array = outer[i].split("=",index+1);
                    outerJSON.put(array[0].trim(),array[1].trim());
                }
    
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
    }

     

    3. 单个文件对比SingleCompare:对比单个json埋点日志track_info外层的key必须在内层存在,且值相等。判断内外层必须存在的MustExistKey的校验

     

     

    新老版本对比:

     

    新老架构对比:

     

    点击埋点:

    scm_new=20140669.search.rnovel.novel_shuqiyk://openapp?params=%7B%22pageName%22%3A%22bookDetail%22%2C%22params%22%3A%7B%22bookId%22%3A%227507742%22%7D%7D&back=1&from=s_7507742_c_7507742,
    object_num=1,
    pid=64b6847e992c4c45,
    cate_id=109,
    search_from=1,
    searchtab=0,
    track_info={
      "source_from":"home",
      "cate_id":109,
      "group_num":1,
      "engine":"expid~req.ugc119.sort1004.rank119.qa1$eid~0b8b380b15474577070643133ed057$bts~soku_qp#1@soku_engine_master#119@soku_irank#204@soku_ogc#301@soku_ugc#403@soku_ai#B@show_filter#B@image_search#A@search_discover#B@soku_resultpage_lessshow#B@soku_resultpage_newcard_58#B$r_p_n~31",
      "aaid":"1e72ac097f6cbf359f7876122e999d0c",
      "k":"天坑鹰猎",
      "object_num":1,
      "searchtab":"0",
      "search_from":1,
      "click_id":"1e72ac097f6cbf359f7876122e999d0c1547458217234",
      "object_title":"天坑鹰猎(平装版)",
      "object_id":"shuqiyk:\/\/openapp?params=%7B%22pageName%22%3A%22bookDetail%22%2C%22params%22%3A%7B%22bookId%22%3A%227507742%22%7D%7D&back=1&from=s_7507742_c_7507742",
      "srid":1,
      "view_type":1032
    },
    object_id=shuqiyk://openapp?params=%7B%22pageName%22%3A%22bookDetail%22%2C%22params%22%3A%7B%22bookId%22%3A%227507742%22%7D%7D&back=1&from=s_7507742_c_7507742,
    object_title=天坑鹰猎(平装版),
    srid=1,
    group_num=1,
    spm=a2h0c.8166622.rnovel.screenshot,
    k=天坑鹰猎,
    spm_new=a2h0c.8166622.PhoneSokuPromote_1.screenshot,
    source_from=home,
    scm=20140669.search.rnovel.novel_shuqiyk://openapp?params=%7B%22pageName%22%3A%22bookDetail%22%2C%22params%22%3A%7B%22bookId%22%3A%227507742%22%7D%7D&back=1&from=s_7507742_c_7507742,
    aaid=1e72ac097f6cbf359f7876122e999d0c,
    engine=expid~req.ugc119.sort1004.rank119.qa1$eid~0b8b380b15474577070643133ed057$bts~soku_qp#1@soku_engine_master#119@soku_irank#204@soku_ogc#301@soku_ugc#403@soku_ai#B@show_filter#B@image_search#A@search_discover#B@soku_resultpage_lessshow#B@soku_resultpage_newcard_58#B$r_p_n~31,
    view_type=1032

     

    曝光埋点:

    spm_new=a2h0c.8166622.PhoneSokuUgc_4.screenshot;a2h0c.8166622.PhoneSokuUgc_5.screenshot,
    scm=20140669.search.rugc.video_XMzgzODM5ODM2NA==;20140669.search.rugc.video_XMzg1OTM0MDEzNg==,
    source_from=home,
    spm=a2h0c.8166622.rugc.screenshot;a2h0c.8166622.rugc.screenshot,
    scm_new=20140669.search.rugc.video_XMzgzODM5ODM2NA==;20140669.search.rugc.video_XMzg1OTM0MDEzNg==,
    track_info={
      "srid":1,
      "item_log":"doc_source~2$eng_source~6$sp_id~3458764514780140519",
      "source_from":"home",
      "group_num":4,
      "engine":"expid~req.ugc119.sort1004.rank119.qa1$eid~0b8b380b15474587002515969ed05c$bts~soku_qp#1@soku_engine_master#119@soku_irank#204@soku_ogc#301@soku_ugc#403@soku_ai#B@show_filter#B@image_search#A@search_discover#B@soku_resultpage_lessshow#B@soku_resultpage_newcard_58#B$r_p_n~31",
      "aaid":"c869247b685afb310e227b16a7943a1e",
      "k":"天坑鹰猎",
      "object_num":1,
      "object_type":1,
      "group_id":"XMzgzODM5ODM2NA==",
      "isplay":11,
      "searchtab":"0",
      "object_id":"XMzgzODM5ODM2NA==",
      "object_title":"《天坑鹰猎》王俊凯误认为小姑娘喜欢她,
      呆萌的模样反被嘲笑",
      "search_from":3,
      "click_id":"c869247b685afb310e227b16a7943a1e1547458702726",
      "view_type":1005,
      "cate_id":-21
    };{
      "srid":1,
      "item_log":"doc_source~2$eng_source~6$sp_id~3458764514785375962",
      "source_from":"home",
      "group_num":5,
      "engine":"expid~req.ugc119.sort1004.rank119.qa1$eid~0b8b380b15474587002515969ed05c$bts~soku_qp#1@soku_engine_master#119@soku_irank#204@soku_ogc#301@soku_ugc#403@soku_ai#B@show_filter#B@image_search#A@search_discover#B@soku_resultpage_lessshow#B@soku_resultpage_newcard_58#B$r_p_n~31",
      "aaid":"c869247b685afb310e227b16a7943a1e",
      "k":"天坑鹰猎",
      "object_num":1,
      "object_type":1,
      "group_id":"XMzg1OTM0MDEzNg==",
      "isplay":11,
      "searchtab":"0",
      "object_id":"XMzg1OTM0MDEzNg==",
      "object_title":"天坑鹰猎:大结局终于看透张保庆的心思了,最不舍得的还是菜瓜!",
      "search_from":3,
      "click_id":"c869247b685afb310e227b16a7943a1e1547458702727",
      "view_type":1005,
      "cate_id":-21
    },
    search_from=3,
    engine=expid~req.ugc119.sort1004.rank119.qa1$eid~0b8b380b15474587002515969ed05c$bts~soku_qp#1@soku_engine_master#119@soku_irank#204@soku_ogc#301@soku_ugc#403@soku_ai#B@show_filter#B@image_search#A@search_discover#B@soku_resultpage_lessshow#B@soku_resultpage_newcard_58#B$r_p_n~31,
    pid=64b6847e992c4c45

    展开全文
  • <div><h3>DataSource埋点接入,测试发现只有xml方式配置数据源才能生效 在尝试使用DataSource埋点时,发现插件只能处理使用xml配置数据源的方式,如果使用Spring Boot原生的方式,也就是在...

空空如也

1 2 3 4 5 ... 20
收藏数 3,606
精华内容 1,442
关键字:

埋点