网站用户行为数据统计与分析之一:埋点代码设计

原文:http://www.aiuxian.com/article/p-1442657.html

 1 <!-- 获取用户行为数据(js文件外部引用) 五味子-->
 2 <script type="text/javascript">
 3 var _uid = "${sessionScope.memberId}";//获取用户会员ID
 4 var _oid = "${orderId}";//获取用户订单ID
 5    (function() {          //(function(){})是一个闭包的用法,闭包必定会被调用。
 6
 7 var ga = document.createElement(‘script‘);
 8 ga.type = ‘text/javascript‘;
 9 ga.charset=‘gbk‘;
10 ga.async = true;//ga.async = true 异步调用外部js文件,即不阻塞浏览器的解析
11 ga.src = ‘js/ana.js‘;
12 var s = document.getElementsByTagName(‘script‘)[0];    //取得第一个tag名为script的元素
13 s.parentNode.insertBefore(ga, s);             //在s前添加元素ga
14  })();
15  </script>
  1 /*
  2  *生成UUID,用户唯一访问标识
  3  */
  4 (function() {
  5   alert("asdf");
  6   // Private array of chars to use
  7   var CHARS = ‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‘.split(‘‘);
  8
  9   Math.uuid = function (len, radix) {
 10     var chars = CHARS, uuid = [], i;
 11     radix = radix || chars.length;
 12
 13     if (len) {
 14       for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
 15     } else {
 16       var r;
 17       uuid[8] = uuid[13] = uuid[18] = uuid[23] = ‘-‘;
 18       uuid[14] = ‘4‘;
 19       for (i = 0; i < 36; i++) {
 20         if (!uuid[i]) {
 21           r = 0 | Math.random()*16;
 22           uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
 23         }
 24       }
 25     }
 26     return uuid.join(‘‘);
 27   };
 28   Math.uuidFast = function() {
 29     var chars = CHARS, uuid = new Array(36), rnd=0, r;
 30     for (var i = 0; i < 36; i++) {
 31       if (i==8 || i==13 ||  i==18 || i==23) {
 32         uuid[i] = ‘-‘;
 33       } else if (i==14) {
 34         uuid[i] = ‘4‘;
 35       } else {
 36         if (rnd <= 0x02) rnd = 0x2000000 + (Math.random()*0x1000000)|0;
 37         r = rnd & 0xf;
 38         rnd = rnd >> 4;
 39         uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
 40       }
 41     }
 42     return uuid.join(‘‘);
 43   };
 44
 45   Math.uuidCompact = function() {
 46     return ‘xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx‘.replace(/[xy]/g, function(c) {
 47       var r = Math.random()*16|0, v = c == ‘x‘ ? r : (r&0x3|0x8);
 48       return v.toString(16);
 49     });
 50   };
 51 })();
 52
 53 //======================================UUID=============================end
 54     //页面id,标识唯一一个页面
 55     var url=window.location.href;
 56
 57     var url_arr=url.split(".");
 58
 59     var id=url_arr[url_arr.length-2];
 60
 61     //获取会员ID
 62     var _memberId = _uid || ‘‘;
 63
 64     //获取订单ID
 65     var _orderId = _oid || ‘‘;
 66
 67     //用户标识UUID
 68     var _utmb = $.cookie(‘_utmb‘) || ‘‘;
 69
 70     //_utmb值为空时,调用Math.uuidFast
 71     if(_utmb==null||_utmb==‘undefined‘||_utmb==‘‘){
 72
 73             _utmb = Math.uuidFast();
 74
 75             $.cookie(‘_utmb‘, _utmb);
 76
 77     }
 78
 79     //从哪个路径跳转过来
 80     var _ref = document.referrer || ‘‘;
 81
 82     var _param = _ref.substring(_ref.indexOf("?"), _ref.length);
 83
 84     var strs =_param.split(‘&‘);
 85
 86     var utm_source=‘‘;
 87
 88     for ( var i = 0; i < strs.length; i++) {
 89
 90         if (strs[i].indexOf(‘utm_source‘)!=-1) {
 91
 92             utm_source = strs[i].substring(strs[i].indexOf(‘=‘)+1,strs[i].length);
 93
 94         }
 95
 96     }
 97
 98     //判断,如果utm_source的值不为空,则路径来源取值utm_source,否则取值_ref
 99     if (utm_source!=null&&utm_source!=‘‘&&utm_source!=‘undefined‘) {
100
101         _ref=utm_source;
102
103     }
104     //获取当前访问的页面
105     var  _currentURL=document.URL || ‘‘;
106
107     alert($.cookie(‘_utmc‘+id));
108     //一秒内连续刷新算一次请求
109     if ($.cookie(‘_utmc‘+id)) {
110
111     }
112     else{
113
114         _utmc = $.cookie(‘_utmc‘+id, true, {expires: 1/24/60/60});//expires以天为单位,cookie有效时间1秒钟
115         //写入,传到后台
116         var img = new Image();// 创建一个image对象
117
118         img.src = ‘http://localhost:18080/ec-ga/behavior.img?_utmb=‘+_utmb+"&_memberId="+_memberId+"&_orderId="+_orderId+"&_ref="+_ref+"&_currentURL="+_currentURL;
119
120         document.body.appendChild(img);
121     }

代码分析:

此段代码也不难理解,有几个地方我捎带讲解一下:

uuid,在这里我把它定为用户访问唯一标识符,更多有关uuid的资料,大家上网查。

_utmc,用来标识一段时间内,如果用户不断刷新,我们算一次页面请求,所以在这里我们设置了cookie的有效期

img,这里我们摒弃了传统的ajax发送请求,那是因为ajax不能跨域发送请求,所以我们这里采用了以图片的形式把数据发送过去。

最后,别忘了添加两个js文件,一个jquery.js,一个jquery.cookie.js

时间: 2024-10-13 03:06:26

网站用户行为数据统计与分析之一:埋点代码设计的相关文章

【收集和分析】网站用户行为数据收集和分析方法

为改善网站的可用性, 一般采用可用性工程方法, 其核心是以用户为中心的设计方法论(UCD).综合介绍了目前国内外对于用户行为数据收集和分析方法所进行的研究, 各种方法的特点, 并介绍一些利用相应方法所开发出的工具实例, 使得建设的网站更加符合用户的需要, 以保障用户与网站之间沟通的顺畅. 随着In ternet 的不断发展, 各种各样的网站如雨后春笋般成倍增长, 各个商业网站之间的竞争越来越激烈, 随之而来的是, 网站的建设不可避免的出现了很多问题.从最近一次国外对15 个大型网站进行统计分析表

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics凭借其强大的功能和超强的稳定性.快速的反应能力.广泛的数据应用功能,受到了广大站长的追捧. 使用Google Analytics的站长们应该不在少数吧,每天登录Google Analytics免费网站上查看网站的流量也是我们这些站长们必须做的事情,认真分析Google Analytics当中的数据信

记,开发用户行为数据统计平台的前端,有感

1. 一开始想各种抽象,菜单栏,头部抽象成组件:甚至业务逻辑也抽象成组件. 后来发现,业务逻辑过早抽象成组件,反而增加开发成本. 不如,先弄清楚业务逻辑,用最普通的写法实现,然后再考虑抽象. 2. MVVM的理解, Model就是最初始的数据,从服务器端获取来的数据,未修饰. View-Model,把Model处理了,处理成JS组件接受的数据格式. View,就是最后输出的HTML代码. 3. 目录组织结构, 越上级的CSS和JS,越公用. 每个独立的子页面,都有属于它自己的CSS和JS. 4.

Excel数据统计与分析

原文地址:https://www.cnblogs.com/1208499954qzone/p/12003171.html

大数据技术之_18_大数据离线平台_01_项目开发流程+大数据常用应用/分析平台/业务处理方式+数据分析平台的数据来源+数据处理的流程+项目集群的规模+需求分析+技术架构/选型

一.项目开发流程1.1.项目调研1.2.项目需求分析1.3.方案设计1.3.1.概要设计1.3.2.详细设计1.4.编码实现1.4.1.单元测试1.4.2.集成测试1.4.3.压力测试1.4.4.用户测试二.大数据常用应用2.1.数据出售2.2.数据分析2.2.1.百度统计2.2.2.友盟2.2.3.其他统计分析组织2.3.搜索引擎2.3.1.solr2.3.2.luence2.3.3.luence & solr 对比2.4.推荐系统(高数)2.4.1.技术2.4.2.算法2.5.精准营销2.5

锤死虚假流量,还得从数据统计开始!

前段时间,一篇控诉微博大V虚假流量的公众号文章,刷爆了互联网人的朋友圈,在文中,作者说她选择了微博领域流量的头部机构进行广告投放,这个机构手持多个微博大号,一条微博投放的价格就有几十万,当事人提出先选择一个拥有380万粉丝博主,发布内含广告内容的原创VLOG视频,测试一下看看效果怎么样.而满怀等待的看着微博发出后,但是却惊诧愤怒地发现,视频的浏览量为353万,但是他们店铺的流量和成交数几乎为0! 沟通过后,对方推诿,于是就写文开骂,作者文中最后说因为合同问题,告不了对方,但是也要曝光出上一口气.

微服务统计,分析,图表,监控一体化的HttpReports项目在.Net Core 中的使用

简单介绍 HttpReports 是 .Net Core 下的一个Web项目, 适用于WebAPI,Ocelot网关应用,MVC项目,非常适合针对微服务应用使用,通过中间件的形式集成到您的项目中,可以让开发人员快速的搭建出一个 数据统计,分析,图表,监控 一体化的 Web站点. 主要模块 主要包含HttpReports 中间件 和 HttpReports.Web 的MVC项目; HttpReports: https://github.com/SpringLeee/HttpReports Http

网站日志统计案例分析与实现

1.概要 到这一步,若是按照前面到文章一步走来,不出意外,我想hadoop平台环境应该搭建OK了.下面我以自己工作中实际的案例来梳理一下整个流程.同时参考一些其他的文章来分析,由于很多网站的日志KPI都大同小异,故有些指标直接在文中赘述了. 2.流程 背景 前言 目录 日志分析概述 需求分析 源码 2.1 背景 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,无一不向Hadoop靠拢.Hadoop也从小规模的

hadoop实例-网站用户行为分析

一.数据集 网站用户购物行为数据集2030万条,包括raw_user.csv(2000万条)和small_user.csv(30万条,适合新手) 字段说明: user_id 用户编号,item_id 商品编号,behavior_type 用户操作类型:1(浏览).2(收藏).3(加入购物车).4(购买) user_geohash 用户地理位置哈希值,在预处理中将其转化为province省份.item_category商品分类,time 用户操作时间 二.实验任务 安装Linux操作系统 安装关系