js 追踪脚本
lk_t.js
var LK = {
version: "1.0",
host:"",
key: "LK",
expire_days:3600,
cmds:[],
tracker: function()
{
var that = this.tracker;
that.timestamp = this.getTimestamp();
that.prop = {};
//发送请求
that.log = function (param){
var img = new Image(1, 1);
img.onLoad = function (){};
img. LK.buildUrl(param);
};
},
//处理命令队列
submit: function()
{
this.tracker();
for( var i in this.cmds)
{
line = this.cmds[i];
//call和apply,它们的作用都是将函数绑定到另外一个对象上去运行
//Array.prototype.slice这句就是访问Array的内置方法
var args = Array.prototype.slice.call(line, 1);
if(!window[ this.key])
window[ this.key] = this;
window[ this.key][line[0]].apply( this.tracker, args);
}
},
setSiteId: function(siteid)
{
this.siteid = siteid;
},
//跟踪PV
trackPageView: function()
{
this.log('');
},
//订单数据
addTransaction: function (order_id, order_source, total, tax, shipping, gateway, city, state, country)
{
if(! this.prop.trans)
this.prop.trans = {};
var trans = {};
trans.order_id = order_id;
trans.order_source = encodeURIComponent(order_source);
trans.total = total;
trans.tax = tax;
trans.shipping = shipping;
trans.gateway = encodeURIComponent(gateway);
trans.city = encodeURIComponent(city);
trans.state = encodeURIComponent(state);
trans.country = encodeURIComponent(country);
trans.items = [];
this.prop.trans[order_id] = trans;
},
//产品数据
addTransactionLineItem: function (order_id, sku, product_name, category, unit_price, quantity)
{
var li = {};
li.li_order_id = order_id;
li.li_sku = encodeURIComponent(sku);
li.li_product_name = encodeURIComponent(product_name);
li.li_category = encodeURIComponent(category);
li.li_unit_price = encodeURIComponent(unit_price);
li.li_quantity = quantity;
var order = this.prop.trans[order_id];
var items = order['items'];
items.push(li);
order['items'] = items;
this.prop.trans[order_id] = order;
},
trackTransaction: function()
{
var param = "";
for( var o in this.prop.trans)
{
for( var k in this.prop.trans[o])
{
var v = this.prop.trans[o][k];
if( typeof v === 'object')
for( var t in v)
for(ta in v[t])
param += "&" + ta + "=" + v[t][ta];
else
param += "&" + k + "=" + v;
}
}
this.log(param);
},
//构建URL
buildUrl: function (param)
{
var that = this.tracker;
var url = "";
url += this.host;
url += "?siteid=" + that.siteid;
url += "&visitor_id=" + this.getVisitorId();
url += "&page_title=" + this.getPageTitle();
url += "&tourl=" + this.getUrl();
url += "&referrer=" + this.getReferrer();
url += param;
url += "&version=" + this.version;
return url;
},
setCookie: function (name, value, days, path, domain, secure)
{
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var domain_arr = location.hostname.split('.');
if(domain_arr.length == 2)
domain = location.hostname;
else
{
domain_arr.shift();
domain = "." + domain_arr.join('.');
}
document.cookie = name + "=" + escape(value) +
((days) ? "; expires=" + date.toGMTString() : "") +
"; path=/" +
"; domain=" + domain +
((secure) ? "; secure" : "");
},
readAllCookies : function ()
{
var jar = {};
var ca = document.cookie.split(';');
if (ca) {
for ( var i = 0; i < ca.length; i++) {
var cat = this.util.trim(ca[i]);
var pos = this.util.strpos(cat, '=');
var key = cat.substring(0, pos);
var value = cat.substring(pos + 1, cat.length);
if (!jar.hasOwnProperty(key)) {
jar[key] = [];
}
jar[key].push(value);
}
return jar;
}
},
getCookie : function (name)
{
var jar = this.readAllCookies();
if (jar) {
if (jar.hasOwnProperty(name)) {
return jar[name][0];
} else {
return "";
}
}
},
getTimestamp: function()
{
return Math.round( new Date().getTime() / 1000);
},
getVisitorId: function()
{
var visitorId = this.getCookie( "lk_vuid");
if(visitorId)
{
return visitorId;
}
else
{
var time = new Date().getTime();
var random = Math.round(Math.random() * 1000000);
visitorId = time + "" + random;
this.setVisitorId(visitorId);
return visitorId;
}
},
setVisitorId: function(visitorId)
{
this.setCookie('lk_vuid', visitorId, this.expire_days);
},
getPageTitle: function()
{
try {
var t = document.getElementsByTagName( "title");
return encodeURIComponent(t[0].text);
} catch (e) { return "";}
//var t = document.getElementsByTagName("title");
//return t == null ? encodeURIComponent(t[0].text) : '';
},
getUrl: function()
{
//访问 URL
var tourl = location.href;
return encodeURIComponent(tourl);
},
getReferrer: function()
{
//来源URL
var referrer = document.referrer;
return encodeURIComponent(referrer);
},
util:{
trim: function(str)
{
return str.replace(/(^\s+)|(\s+$)/, '');
},
strpos: function(haystack, needle, offset)
{
var i = (haystack + '').indexOf(needle, (offset || 0));
return i === -1 ? false : i;
}
}
};
( function(){
var lk = LK;
lk.host = "http://192.168.3.250/__lk.gif";
if(lk_cmds)
lk.cmds = lk_cmds;
lk.submit();
})();
其中
//处理命令队列
submit: function()
{
this.tracker();
for( var i in this.cmds)
{
line = this.cmds[i];
//Array.prototype.slice这句就是访问Array的内置方法
var args = Array.prototype.slice.call(line, 1);
if(!window[ this.key])
window[ this.key] = this;
window[ this.key][line[0]].apply( this.tracker, args);
}
Array.prototype.slice这句就是访问Array的内置方法
相关信息查看
JS 有趣的应用 : Array.prototype.slice.call(arguments,0)
基本统计代码:
<!-- Start LK Wise Attribution System Tracker -->
<script type= "text/javascript">
//<![CDATA[
var lk_cmds =[];
lk_cmds.push(['setSiteId', 'Y8CG26ZF']);
lk_cmds.push(['trackPageView']);
( function() {
var _lk = document.createElement('script'); _lk.type = 'text/javascript'; _lk.async = true;
_lk.src = 'http: //www.zikker.com/lk_t_compress.js';
var _lk_s = document.getElementsByTagName('script')[0]; _lk_s.parentNode.insertBefore(_lk, _lk_s);
}());
//]]>
</script>
<!-- End LK Wise Attribution System Code -->
订单统计代码
下面
红色标识部分是您需要针对自己的订单进行修改的部分,参数含义如下
订单数据addTransaction: order_id(订单号), order_source(订单来源), total(订单金额[总和]), tax(税), shipping(运费), gateway(途径), city(城市), state(省), country(国家)
产品数据addTransactionLineItem: order_id(订单号), sku(产品SKU[品牌]), product_name(产品名称), category(各类,类别), unit_price(单价), quantity(购买产品数量)
<script type= "text/javascript">
//<![CDATA[
var lk_cmds = lk_cmds || [];
lk_cmds.push(['setSiteId', 'Y8CG26ZF']);
lk_cmds.push(['addTransaction',' order_id', ' order_source', ' total', ' tax', ' shipping', ' gateway', ' city', ' state', ' country']);
lk_cmds.push(['addTransactionLineItem',' order_id', ' sku', ' product_name', ' category', ' unit_price', ' quantity']);
lk_cmds.push(['trackTransaction']);
( function() {
var _lk = document.createElement('script'); _lk.type = 'text/javascript'; _lk.async = true;
_lk.src = 'http: //192.168.3.250/lk_t_compress.js';
var _lk_s = document.getElementsByTagName('script')[0]; _lk_s.parentNode.insertBefore(_lk, _lk_s);
}());
//]]>
</script>
使用示例:
利用Javasctipt方式进行跟踪, 复制以下代码,粘贴到您的HTML页面中用来跟踪您的网站页面的流量。Javascript 跟踪API 跟踪您的网站和网页流量
<!-- Start LK Wise Attribution System Tracker -->
<script type= "text/javascript">
//<![CDATA[
var lk_cmds = lk_cmds || [];
lk_cmds.push(['setSiteId', 'Y8CG26ZF']);
lk_cmds.push(['trackPageView']);
( function() {
var _lk = document.createElement('script'); _lk.type = 'text/javascript'; _lk.async = true;
_lk.src = 'http: //192.168.3.250/lk_t.js';
var _lk_s = document.getElementsByTagName('script')[0]; _lk_s.parentNode.insertBefore(_lk, _lk_s);
}());
//]]>
</script>
<!-- End LK Wise Attribution System Code -->
<script type= "text/javascript">
//<![CDATA[
var lk_cmds = lk_cmds || [];
lk_cmds.push(['setSiteId', 'Y8CG26ZF']);
lk_cmds.push(['addTransaction','123', 'baidu.com', '222', '15', '10', '快递', '北京', '北京', '中国']);
lk_cmds.push(['addTransactionLineItem','123', '九阳', '压力锅', '压力锅', '222', '1']);
lk_cmds.push(['trackTransaction']);
( function() {
var _lk = document.createElement('script'); _lk.type = 'text/javascript'; _lk.async = true;
_lk.src = 'http: //192.168.3.250/lk_t.js';
var _lk_s = document.getElementsByTagName('script')[0]; _lk_s.parentNode.insertBefore(_lk, _lk_s);
}());
//]]>
</script>