标题:Google Analytics Urchin Module 源码 出处:BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 时间:Sat, 17 Nov 2007 15:40:15 +0000 作者:ArthurXF 地址:http://www.bizeway.net/read.php/263.htm 内容: 学习一下urchin.js的源代码: 引用 //-- Google Analytics Urchin Module //-- Copyright 2005 Google, All Rights Reserved. //-- Urchin On Demand Settings ONLY var _uacct=""; // set up the Urchin Account var _userv=1; // service mode (0=local,1=remote,2=both) //-- UTM User Settings var _ufsc=1; // set client info flag (1=on|0=off) var _udn="auto"; // (auto|none|domain) set the domain name for cookies var _uhash="on"; // (on|off) unique domain hash for cookies var _utimeout="1800"; // set the inactive session timeout in seconds var _ugifpath="/__utm.gif"; // set the web path to the __utm.gif file var _utsp="|"; // transaction field separator var _uflash=1; // set flash version detect option (1=on|0=off) var _utitle=1; // set the document title detect option (1=on|0=off) var _ulink=0; // enable linker functionality (1=on|0=off) //-- UTM Campaign Tracking Settings var _uctm=1; // set campaign tracking module (1=on|0=off) var _ucto="15768000"; // set timeout in seconds (6 month default) var _uccn="utm_campaign"; // name var _ucmd="utm_medium"; // medium (cpc|cpm|link|email|organic) var _ucsr="utm_source"; // source var _uctr="utm_term"; // term/keyword var _ucct="utm_content"; // content var _ucid="utm_id"; // id number var _ucno="utm_nooverride"; // don't override //-- Auto/Organic Sources and Keywords var _uOsr=new Array(); var _uOkw=new Array(); _uOsr[0]="google"; _uOkw[0]="q"; _uOsr[1]="yahoo"; _uOkw[1]="p"; _uOsr[2]="msn"; _uOkw[2]="q"; _uOsr[3]="aol"; _uOkw[3]="query"; _uOsr[4]="lycos"; _uOkw[4]="query"; _uOsr[5]="ask"; _uOkw[5]="q"; _uOsr[6]="altavista"; _uOkw[6]="q"; _uOsr[7]="search"; _uOkw[7]="q"; _uOsr[8]="netscape"; _uOkw[8]="query"; _uOsr[9]="earthlink"; _uOkw[9]="q"; _uOsr[10]="cnn"; _uOkw[10]="query"; _uOsr[11]="looksmart"; _uOkw[11]="key"; _uOsr[12]="about"; _uOkw[12]="terms"; _uOsr[13]="excite"; _uOkw[13]="qkw"; _uOsr[14]="mamma"; _uOkw[14]="query"; _uOsr[15]="alltheweb"; _uOkw[15]="q"; _uOsr[16]="gigablast"; _uOkw[16]="q"; _uOsr[17]="voila"; _uOkw[17]="kw"; _uOsr[18]="virgilio"; _uOkw[18]="qs"; _uOsr[19]="teoma"; _uOkw[19]="q"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Referral domains to Ignore var _uRno=new Array(); //_uRno[0]=".urchin.com"; //-- **** Don't modify below this point *** var _uff,_udh,_udt,_ubl=0,_udo="",_uu,_ufns=0,_uns=0,_ur="-",_ufno=0,_ust=0,_ubd=document,_udl=_ubd.location,_u tcp="/",_uwv="1"; var _ugifpath2="http://www.google-analytics.com/__utm.gif"; if (_udl.protocol=="https:") _ugifpath2="https://ssl.google-analytics.com/__utm.gif"; if (!_utcp || _utcp=="") _utcp="/"; function urchinTracker(page) { if (_udl.protocol=="file:") return; if (_uff && (!page || page=="")) return; var a,b,c,v,z,k,x="",s="",f=0; var nx=" expires=Sun, 18 Jan 2038 00:00:00 GMT;"; var dc=_ubd.cookie; _udh=_uDomain(); _uu=Math.round(Math.random()*2147483647); _udt=new Date(); _ust=Math.round(_udt.getTime()/1000); a=dc.indexOf("__utma="+_udh); b=dc.indexOf("__utmb="+_udh); c=dc.indexOf("__utmc="+_udh); if (_udn && _udn!="") { _udo=" domain="+_udn+";"; } if (_utimeout && _utimeout!="") { x=new Date(_udt.getTime()+(_utimeout*1000)); x=" expires="+x.toGMTString()+";"; } if (_ulink) { s=_udl.search; if(s && s!="" && s.indexOf("__utma=")>=0) { if (!(_uIN(a=_uGC(s,"__utma=","&")))) a="-"; if (!(_uIN(b=_uGC(s,"__utmb=","&")))) b="-"; if (!(_uIN(c=_uGC(s,"__utmc=","&")))) c="-"; v=_uGC(s,"__utmv=","&"); z=_uGC(s,"__utmz=","&"); k=_uGC(s,"__utmk=","&"); if ((k*1) != ((_uHash(a+b+c+z+v)*1)+(_udh*1))) {_ubl=1;a="-";b="-";c="-";z="-";v="-";} if (a!="-" && b!="-" && c!="-") f=1; else if(a!="-") f=2; } } if(f==1) { _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+c+"; path="+_utcp+";"+_udo; } else if (f==2) { a=_uFixA(s,"&",_ust); _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } else if (a>=0 && b>=0 && c>=0) { _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; } else { if (a>=0) a=_uFixA(_ubd.cookie,";",_ust); else a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1"; _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } if (_ulink && v && v!="" && v!="-") { v=unescape(v); if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo; } _uInfo(page); _ufns=0; _ufno=0; _uff=1; } function _uInfo(page) { var p,s="",pg=_udl.pathname+_udl.search; if (page && page!="") pg=escape(page); _ur=_ubd.referrer; if (!_ur || _ur=="") { _ur="-"; } else { p=_ur.indexOf(_ubd.domain); if ((p>=0) && (p-1) { z=_uGC(dc,"__utmz="+_udh,";"); } else { z="-"; } t=_uGC(s,_ucid+"=","&"); t2=_uGC(s,_ucsr+"=","&"); t3=_uGC(s,"gclid=","&"); if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) { if (t!="-" && t!="") c+="utmcid="+_uEC(t); if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); } if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); } t=_uGC(s,_uccn+"=","&"); if (t!="-" && t!="") c+="|utmccn="+_uEC(t); else c+="|utmccn=(not+set)"; t=_uGC(s,_ucmd+"=","&"); if (t!="-" && t!="") c+="|utmcmd="+_uEC(t); else c+="|utmcmd=(not+set)"; t=_uGC(s,_uctr+"=","&"); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); } t=_uGC(s,_ucct+"=","&"); if (t!="-" && t!="") c+="|utmcct="+_uEC(t); t=_uGC(s,_ucno+"=","&"); if (t=="1") o=1; if (z!="-" && o==1) return ""; } if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (_ufns==1) c=_uRef(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; } if (c=="-" || c=="") return ""; } if (z!="-") { i=z.indexOf("."); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); t=z.substring(i+1,z.length); if (t.toLowerCase()==c.toLowerCase()) cs=1; t=z.substring(0,i); if ((i=t.lastIndexOf(".")) > -1) { t=t.substring(i+1,t.length); cn=(t*1); } } if (cs==0 || _ufns==1) { t=_uGC(dc,"__utma="+_udh,";"); if ((i=t.lastIndexOf(".")) > 9) { _uns=t.substring(i+1,t.length); _uns=(_uns*1); } cn++; if (_uns==0) _uns=1; _ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo; } if (cs==0 || _ufns==1) return "&utmcn=1"; else return "&utmcr=1"; } function _uRef() { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k,n; if ((i=_ur.indexOf("://")) -1) { k=h.substring(h.indexOf("/"),h.length); if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?")); h=h.substring(0,h.indexOf("/")); } h=h.toLowerCase(); n=h; if ((i=n.indexOf(":")) > -1) n=n.substring(0,i); for (var ii=0;ii -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; } } if (h.indexOf("www.")==0) h=h.substring(4,h.length); return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral"; } function _uOrg(t) { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k; if ((i=_ur.indexOf("://")) < 0) return ""; h=_ur.substring(i+3,_ur.length); if (h.indexOf("/") > -1) { h=h.substring(0,h.indexOf("/")); } for (var ii=0;ii -1) { if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) { k=_ur.substring(i+_uOkw[ii].length+2,_ur.length); if ((i=k.indexOf("&")) > -1) k=k.substring(0,i); for (var yy=0;yy=2;ii--) { try { var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');"); if (fl) { f=ii + '.0'; break; } } catch(e) {} } } return f; } function __utmLinker(l) { if (!_ulink) return; var p,k,a="-",b="-",c="-",z="-",v="-"; var dc=_ubd.cookie; if (l && l!="") { if (dc) { a=escape(_uGC(dc,"__utma="+_udh,";")); b=escape(_uGC(dc,"__utmb="+_udh,";")); c=escape(_uGC(dc,"__utmc="+_udh,";")); z=escape(_uGC(dc,"__utmz="+_udh,";")); v=escape(_uGC(dc,"__utmv="+_udh,";")); k=(_uHash(a+b+c+z+v)*1)+(_udh*1); p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k; } if (p) { if (l.indexOf("?")=0;i--) { var c=parseInt(d.charCodeAt(i)); h=((h 21)); } return h; } function _uFixA(c,s,t) { if (!c || c=="" || !s || s=="" || !t || t=="") return "-"; var a=_uGC(c,"__utma="+_udh,s); var lt=0,i=0; if ((i=a.lastIndexOf(".")) > 9) { _uns=a.substring(i+1,a.length); _uns=(_uns*1)+1; a=a.substring(0,i); if ((i=a.lastIndexOf(".")) > 7) { lt=a.substring(i+1,a.length); a=a.substring(0,i); } if ((i=a.lastIndexOf(".")) > 5) { a=a.substring(0,i); } a+="."+lt+"."+t+"."+_uns; } return a; } function _uTrim(s) { if (!s || s=="") return ""; while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length); while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.subst ring(0,s.length-1); return s; } function _uEC(s) { var n=""; if (!s || s=="") return ""; for (var i=0;i return n; } function __utmVisitorCode() { var r=0,t=0,i=0,i2=0,m=31; var a=_uGC(_ubd.cookie,"__utma="+_udh,";"); if ((i=a.indexOf(".",0))0) r=a.substring(i+1,i2); else return ""; if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return ""; var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1 ','2','3','4','5','6','7','8','9'); return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)30&3)]+c[t>>25&m]+ c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m]; } function _uIN(n) { if (!n) return false; for (i=0;i var c=n.charAt(i); if ((c"9") && (c!=".")) return false; } return true; } Generated by Bo-blog 2.0.3 sp1