本文主要是介绍网站用户行为数据统计与分析—埋点统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景:现如今,销售预测在提高企业经济效益及决策支持水平的方面占有重要的地位。随着企业信息化技术水平的提高,企业销售数据日益丰富,管理者对其中隐藏的销售预测信息的渴求愈来愈强烈。用传统的方法来分析这些海量数据中的销售信息相当困难,已不适应时代需求。此文目的正在此处,即如何寻找更好的方法去挖掘销售数据中隐藏的销售预测信息。
应用:目前习惯了这样一种称谓:前端行为数据和后端商业数据。前段数据指访问量、浏览量、点击流及站内搜索等反应用户行为的数据,而后端数据更侧重商业数据,比如交易量、ROI(转化率)、LTV(Life time Value终身价值)。目前有些人关心行为数据,也有些人关心商业数据,但较少人把行为数据和商业数据联系起来看。大家往往只单纯看某一端数据。国内小有名气的网站CEO,每天也只看一个结果数据:网站今天的成交量是多少,卖了多少件产品。但是看数据走火入魔的人会明白,每个数据,就像散布在黑夜里的星星,它们彼此之间布满了关系网,只要轻轻按一下其中一个数据,就会驱动另外一些数据的变化。
实现流程图:
设计实现图:
js埋点代码,此部分代码借鉴谷歌分析的思路设计,相信不难理解:
01 | <!-- 获取用户行为数据(js文件外部引用) 五味子--> |
02 | <script type= "text/javascript" > |
03 | var _uid = "${sessionScope.memberId}" ; |
04 | var _oid = "${orderId}" ; |
07 | var ga = document.createElement( 'script' ); |
08 | ga.type = 'text/javascript' ; |
12 | var s = document.getElementsByTagName( 'script' )[0]; |
13 | s.parentNode.insertBefore(ga, s); |
大家可能注意到了此段代码块中引入了一个ana.js文件,这个文件就是收集行为数据的核心代码文件:
007 | var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' .split( '' ); |
009 | Math.uuid = function (len, radix) { |
010 | var chars = CHARS, uuid = [], i; |
011 | radix = radix || chars.length; |
014 | for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix]; |
017 | uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-' ; |
019 | for (i = 0; i < 36; i++) { |
021 | r = 0 | Math.random()*16; |
022 | uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; |
026 | return uuid.join( '' ); |
028 | Math.uuidFast = function () { |
029 | var chars = CHARS, uuid = new Array(36), rnd=0, r; |
030 | for ( var i = 0; i < 36; i++) { |
031 | if (i==8 || i==13 || i==18 || i==23) { |
036 | if (rnd <= 0x02) rnd = 0x2000000 + (Math.random()*0x1000000)|0; |
039 | uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; |
042 | return uuid.join( '' ); |
045 | Math.uuidCompact = function () { |
046 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' .replace(/[xy]/g, function (c) { |
047 | var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); |
048 | return v.toString(16); |
055 | var url=window.location.href; |
057 | var url_arr=url.split( "." ); |
059 | var id=url_arr[url_arr.length-2]; |
062 | var _memberId = _uid || '' ; |
065 | var _orderId = _oid || '' ; |
068 | var _utmb = $.cookie( '_utmb' ) || '' ; |
071 | if (_utmb== null ||_utmb== 'undefined' ||_utmb== '' ){ |
073 | _utmb = Math.uuidFast(); |
075 | $.cookie( '_utmb' , _utmb); |
080 | var _ref = document.referrer || '' ; |
082 | var _param = _ref.substring(_ref.indexOf( "?" ), _ref.length); |
084 | var strs =_param.split( '&' ); |
088 | for ( var i = 0; i < strs.length; i++) { |
090 | if (strs[i].indexOf( 'utm_source' )!=-1) { |
092 | utm_source = strs[i].substring(strs[i].indexOf( '=' )+1,strs[i].length); |
099 | if (utm_source!= null &&utm_source!= '' &&utm_source!= 'undefined' ) { |
105 | var _currentURL=document.URL || '' ; |
107 | alert($.cookie( '_utmc' +id)); |
109 | if ($.cookie( '_utmc' +id)) { |
114 | _utmc = $.cookie( '_utmc' +id, true , {expires: 1/24/60/60}); |
116 | var img = new Image(); |
118 | img.src = 'http://localhost:18080/ec-ga/behavior.img?_utmb=' +_utmb+ "&_memberId=" +_memberId+ "&_orderId=" +_orderId+ "&_ref=" +_ref+ "&_currentURL=" +_currentURL; |
120 | document.body.appendChild(img); |
代码分析:
此段代码也不难理解,有几个地方我捎带讲解一下:
uuid,在这里我把它定为用户访问唯一标识符,更多有关uuid的资料,大家上网查。
_utmc,用来标识一段时间内,如果用户不断刷新,我们算一次页面请求,所以在这里我们设置了cookie的有效期
img,这里我们摒弃了传统的ajax发送请求,那是因为ajax不能跨域发送请求,所以我们这里采用了以图片的形式把数据发送过去。
最后,别忘了添加两个js文件,一个jquery.js,一个jquery.cookie.js
转载:http://www.12333sh.gov.cn/sbsjb/wzb/226.jsp
这篇关于网站用户行为数据统计与分析—埋点统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!