ga.js line55-62

ここらへんで、判定した配列を配列にsetしてますね。

a.responseEnd-a.responseStart,a.fetchStart-b,a.domInteractive-b,a.domContentLoadedEventStart-b]}},$e=function(){
if(W.top==W){
var a=W.external,b=a&&a.onloadT;
a&&!a.isValidLoadTime&&(b=void 0);
2147483648b.length)){for(var c=[],d=0;d

ga.js line49-54

なんか出てきた。
https://www.google.com/analytics/web/inpage/pub/inpage.js

jf=/^https?:\/\/(r\.)?search\.yahoo\.com?(\.jp)?\/?[^?]*$/i,rf=/^https?:\/\/(www\.)?bing\.com\/?$/i,Nd=function(a){a=Pa(a.get(Jb),a.get(P));try{if(Td.test(a))return H(136),a+”?q=”;if(jf.test(a))return H(150),a+”?p=(not provided)”;if(rf.test(a))return a+”?q=(not provided)”}catch(b){H(145)}return a};var Ud,Vd,Wd=function(a){Ud=a.c(S,””);Vd=a.c(kc,””)},Xd=function(a){var b=a.c(S,””),c=a.c(kc,””);b!=Ud&&(-1e?b+”#”+d:b+”&”+d;
c=””;
0b.indexOf(“?”)?b+”?”+d+c:b+”&”+d+c},$d=function(a,b,c,d){for(var e=0;3>e;e++){for(var f=
0;3>f;f++){if(d==Yc(a+b+c))return H(127),[b,c];
var Be=b.replace(/ /g,”%20″),k=c.replace(/ /g,”%20″);
if(d==Yc(a+Be+k))return H(128),[Be,k];Be=Be.replace(/\+/g,”%20″);
k=k.replace(/\+/g,”%20″);
if(d==Yc(a+Be+k))return H(129),[Be,k];
try{var Ja=b.match(“utmctr=(.*?)(?:\\|utm|$)”);
if(Ja&&2==Ja.length&&(Be=b.replace(Ja[1],G(I(Ja[1]))),d==Yc(a+Be+c)))
return H(139),[Be,c]}catch(t){}b=I(b)}c=I(c)}};
var de=”|”,fe=function(a,b,c,d,e,f,Be,k,Ja){var t=ee(a,b);
t||(t={},a.get(Cb).push(t));t.id_=b;t.affiliation_=c;t.total_=d;t.tax_=e;t.shipping_=f;t.city_=Be;t.state_=k;t.country_=Ja;t.items_=t.items_||[];return t},ge=function(a,b,c,d,e,f,Be){a=ee(a,b)||fe(a,b,””,0,0,0,””,””,””);
a:{if(a&&a.items_){var k=a.items_;for(var Ja=0;Jab.length||!/^\d+$/.test(b[0])||(b[0]=””+c,Fd(a,”__utmx”,b.join(“.”),void 0))},be=function(a,b){a=$c(a.get(O),pd(“__utmx”));
“-“==a&&(a=””);
return b?G(a):a},Ye=function(a){try{var b=La(J.location.href,!1),c=decodeURIComponent(L(b.R.get(“utm_referrer”)))||””;
c&&a.set(Jb,c);
var d=decodeURIComponent(K(b.R.get(“utm_expid”)))||””;
d&&(d=d.split(“.”)[0],a.set(Oc,””+d))}catch(e){H(146)}},l=function(a){var b=W.gaData&&W.gaData.expId;b&&a.set(Oc,
“”+b)};
var ke=function(a,b){var c=Math.min(a.b(Dc,0),100);
if(a.b(Q,0)%100>=c)return!1;
c=Ze()||$e();
if(void 0==c)return!1;var d=c[0];
if(void 0==d||Infinity==d||isNaN(d))return!1;
0a[b])return!1;
return!0},le=function(a){return isNaN(a)||0>a?0:5E3>a?10*Math.floor(a/10):5E4>a?100*Math.floor(a/100):41E5>a?1E3*Math.floor(a/1E3):41E5},je=function(a){
for(var b=new yd,c=0;c

ga.js line44-48

なるほど、get parameterを配列に入れて保存してるんだ。

Sd=function(a){
if(a.get(kb)&&!a.get(Mc)){var b=!F(a.get(ic))||!F(a.get(nc))||!F(a.get(S))||!F(a.get(lc));
for(var c={},d=0;d

gs.js line35-43

これ、凄すぎ

(c.port||k)==(Ja[b][1]||k)&&0==c.path.indexOf(Ja[b][2])){f=!0;break a}}f=!1}f&&!ld()&&(a.Pa=Ia(c.url))}return!0}}
else a.l&&(b=b.plugins_.get(a.l)),b[a.h].apply(b,a.Xa)}}
catch(t){}};
E.Sa=function(a,b){return M.hb(a,b||””)};
E.Ta=function(a){return M.u(a)};
var yd=function(){
function a(a,b,c,d){
void 0==f[a]&&(f[a]={});
void 0==f[a][b]&&(f[a][b]=[]);
f[a][b]=d}function b(a,b,c){
if(void 0!=f[a]&&void 0!=f[a][b])return f[a][b]}
function c(a,b){
if(void 0!=f[a]&&void 0!=f[a][b]){f[a][b]=void 0;
b=!0;var c;
for(c=0;c

ga.js line30-34

配列多すぎるな。。

0>=b[0]||0>=b[1]?””:b.join(“x”);
a.Wa=Be}catch(k){H(135)}qd=a}},td=function(){sd();
var a=qd,b=W.navigator;
a=b.appName+b.version+a.language+b.platform+b.userAgent+a.javaEnabled+a.jb+a.P+(J.cookie?J.cookie:””)+(J.referrer?J.referrer:””);
b=a.length;
for(var c=W.history.length;0d?(this.i=b.substring(0,d),this.l=b.substring(d+1,c),this.h=b.substring(c+1)):(this.i=b.substring(0,d),this.h=b.substring(d+1));
this.Xa=a.slice(1);
this.Ma=!this.l&&”_require”==this.h;
this.J=!this.i&&!this.l&&”_provide”==this.h}},Y=function(){T(Y.prototype,
“push”,Y.prototype.push,5);
T(Y.prototype,”_getPlugin”,Pc,121);
T(Y.prototype,”_createAsyncTracker”,Y.prototype.Sa,33);
T(Y.prototype,”_getAsyncTracker”,Y.prototype.Ta,34);
this.I=new nf;
this.eb=[]};
E=Y.prototype;
E.Na=function(a,b,c){var d=this.I.get(a);
if(!Ba(d))return!1;
b.plugins_=b.plugins_||new nf;
b.plugins_.set(a,new d(b,c||{}));
return!0};
E.push=function(a){var b=Z.Va.apply(this,arguments);
b=Z.eb.concat(b);
for(Z.eb=[];
0

ga.js line21-25

やべーな、しか出てこない。

var bd=function(a,b,c){
c=c?””:a.c(O,”1″);
b=b.split(“.”);if(6!==b.length||ad(b[0],c))return!1;
c=1*b[1];
var d=1*b[2],e=1*b[3],f=1*b[4];
b=1*b[5];if(!(0<=c&&0b.length||ad(b[0],c))
return!1;b=b.slice(1).join(“.”).split(“|”);
0=b.length)
return!0;b=b[1].split(-1==b[1].indexOf(“,”)?”^”:”,”);
for(c=0;cb.length||ad(b[0],c))return a.set(ec,void 0),a.set(fc,void 0),a.set(gc,void 0),a.set(ic,void 0),a.set(jc,void 0),a.set(nc,void 0),a.set(oc,void 0),a.set(pc,void 0),a.set(qc,void 0),a.set(S,void 0),a.set(kc,void 0),a.set(lc,void 0),a.set(mc,void 0),!1;a.set(ec,1*b[1]);
a.set(fc,1*b[2]);
a.set(gc,1*b[3]);
Ve(a,b.slice(4).join(“.”));
return!0},Ve=function(a,b){function c(a){
return(a=b.match(a+”=(.*?)(?:\\|utm|$)”))&&2==a.length?a[1]:void 0}
function d(b,c){c?(c=e?I(c):c.split(“%20″).join(” “),a.set(b,c)):a.set(b,void 0)}-1==b.indexOf(“=”)&&(b=I(b));
var e=”2″==c(“utmcvr”);d(ic,c(“utmcid”));
d(jc,c(“utmccn”));
d(nc,c(“utmcsr”));
d(oc,c(“utmcmd”));
d(pc,c(“utmctr”));
d(qc,c(“utmcct”));
d(S,c(“utmgclid”));
d(kc,c(“utmgclsrc”));
d(lc,c(“utmdclid”));
d(mc,c(“utmdsid”))},ad=function(a,b){return b?a!=b:!/^\d+$/.test(a)};
var Uc=function(){this.filters=[]};
Uc.prototype.add=function(a,b){this.filters.push({name:a,s:b})};
Uc.prototype.cb=function(a){try{for(var b=0;b=100*a.get(vb)&&a.stopPropagation()}
function kd(a){ld(a.get(Wa))&&a.stopPropagation()}
function md(a){“file:”==J.location.protocol&&a.stopPropagation()}
function Ge(a){He()&&a.stopPropagation()}
function nd(a){a.get(Ib)||a.set(Ib,J.title,!0);
a.get(Hb)||a.set(Hb,J.location.pathname+J.location.search,!0)}
function lf(a){a.get(Wa)&&”UA-XXXXX-X”!=a.get(Wa)||a.stopPropagation()};
var od=new function(){var a=[];this.set=function(b){a[b]=!0};
this.encode=function(){for(var b=[],c=0;c

ga.js line19,20

doubleclick\.netってなんだ?

var T=function(a,b,c,d){a[b]=function(){try{return void 0!=d&&H(d),c.apply(this,arguments)}catch(e){throw Ra("exc",b,e&&e.name),e;
}}},Qc=function(a,b,c,d){U.prototype[a]=function(){try{return H(c),Aa(this.a.get(b),d)}catch(e){throw Ra("exc",a,e&&e.name),e;
}}},V=function(a,b,c,d,e){U.prototype[a]=function(f){try{H(c),void 0==e?this.a.set(b,Aa(f,d)):this.a.set(b,e)}catch(Be){throw Ra("exc",a,Be&&Be.name),Be;
}}},Te=function(a,b){return{type:b,target:a,stopPropagation:function(){throw"aborted";}}};
var Rc=new RegExp(/(^|\.)doubleclick\.net$/i),Sc=function(a,b){return Rc.test(J.location.hostname)?!0:"/"!==b?!1:0!=a.indexOf("www.google.")&&0!=a.indexOf(".google.")&&0!=a.indexOf("google.")||-1

ga.js line:13~18 取得している値群

gaよりいいものをつくろうとすると、これを凌ぐクオリティですか。。まじか~

var Mc=N(),Nc=N(),Yb=N(),Jc=N(),Kc=N(),Lc=Va("utmtCookieName"),Cd=Va("displayFeatures"),Oc=N(),of=Va("gtmid"),Oe=Va("uaName"),Pe=Va("uaDomain"),Qe=Va("uaPath"),pf=Va("linkid"),w=N(),x=N(),y=N(),z=N();
var Re=function(){function a(a,c,d){T(qf.prototype,a,c,d)}a("_createTracker",qf.prototype.hb,55);
a("_getTracker",qf.prototype.oa,0);
a("_getTrackerByName",qf.prototype.u,51);
a("_getTrackers",qf.prototype.pa,130);
a("_anonymizeIp",qf.prototype.aa,16);
a("_forceSSL",qf.prototype.la,125);
a("_getPlugin",Pc,120)},Se=function(){function a(a,c,d){T(U.prototype,a,c,d)}Qc("_getName",$a,58);
Qc("_getAccount",Wa,64);Qc("_visitCode",Q,54);
Qc("_getClientInfo",ib,53,1);
Qc("_getDetectTitle",lb,56,1);
Qc("_getDetectFlash",
tb,38);
V("_setCampIdKey",nb,39);
V("_setCampMediumKey",rb,40);
V("_setCampNOKey",ub,42);
V("_setCampSourceKey",qb,43);
V("_setCampTermKey",sb,44);
V("_setCampCIdKey",pb,37);
V("_setCookiePath",P,9,0);
V("_setMaxCustomVariables",yb,0,1);
V("_setVisitorCookieTimeout",cb,28,1);
V("_setSessionCookieTimeout",db,26,1);
V("_setCampaignCookieTimeout",eb,29,1);
V("_setReferrerOverride",Jb,49);
V("_setSiteSpeedSampleRate",Dc,132);
V("_storeGac",v,143);
a("_trackPageview",U.prototype.Fa,1);
a("_trackEvent",U.prototype.F,4);
a("_trackPageLoadTime",U.prototype.Ea,100);
a("_trackSocial",U.prototype.Ga,104);
a("_trackTrans",U.prototype.Ia,18);
a("_sendXEvent",U.prototype.ib,78);
a("_createEventTracker",U.prototype.ia,74);
a("_getVersion",U.prototype.qa,60);
a("_setDomainName",U.prototype.B,6);
a("_setAllowHash",U.prototype.va,8);
a("_getLinkerUrl",U.prototype.na,52);
a("_link",U.prototype.link,101);
a("_linkByPost",U.prototype.ua,102);
a("_setTrans",U.prototype.za,20);
a("_addTrans",U.prototype.$,21);
a("_addItem",U.prototype.Y,19);
a("_clearTrans",U.prototype.ea,105);
a("_setTransactionDelim",U.prototype.Aa,82);
a("_setCustomVar",U.prototype.wa,10);
a("_deleteCustomVar",U.prototype.ka,35);
a("_getVisitorCustomVar",U.prototype.ra,50);
a("_setXKey",U.prototype.Ca,83);
a("_setXValue",U.prototype.Da,84);
a("_getXKey",U.prototype.sa,76);
a("_getXValue",U.prototype.ta,77);
a("_clearXKey",U.prototype.fa,72);
a("_clearXValue",U.prototype.ga,73);
a("_createXObj",U.prototype.ja,75);
a("_addIgnoredOrganic",U.prototype.W,15);
a("_clearIgnoredOrganic",U.prototype.ba,97);
a("_addIgnoredRef",U.prototype.X,31);
a("_clearIgnoredRef",U.prototype.ca,32);
a("_addOrganic",U.prototype.Z,14);
a("_clearOrganic",U.prototype.da,70);
a("_cookiePathCopy",U.prototype.ha,30);
a("_get",U.prototype.ma,106);
a("_set",U.prototype.xa,107);
a("_addEventListener",U.prototype.addEventListener,108);
a("_removeEventListener",U.prototype.removeEventListener,109);
a("_addDevId",U.prototype.V);
a("_getPlugin",Pc,122);
a("_setPageGroup",U.prototype.ya,126);
a("_trackTiming",U.prototype.Ha,124);
a("_initData",U.prototype.initData,2);
a("_setVar",U.prototype.Ba,22);
V("_setSessionTimeout",db,27,3);
V("_setCookieTimeout",eb,25,3);
V("_setCookiePersistence",cb,24,1);
a("_setAutoTrackOutbound",Fa,79);
a("_setTrackOutboundSubdomains",Fa,81);
a("_setHrefExamineLimit",Fa,80)};
function Pc(a){
	var b=this.plugins_;
	if(b)return b.get(a)}

ga.js line8~11

“/”+a):a=Be+e[2]+(a||f);
b.href=a;
d=c(b);
return{protocol:(b.protocol||””).toLowerCase(),host:d[0],port:d[1],path:d[2],query:b.search||””,url:a||””}}
function Na(a,b){
function c(b,c){
a.contains(b)||a.set(b,[]);
a.get(b).push(c)}b=Da(b).split(“&”);
for(var d=0;de?c(b[d],”1″):c(b[d].substring(0,e),b[d].substring(e+1))}}
function Pa(a,b){
return F(a)||”[“==a.charAt(0)&&”]”==a.charAt(a.length-1)?”-“:a.indexOf(J.domain+(b&&”/”!=b?b:””))==(0==a.indexOf(“http://”)?7:0==a.indexOf(“https://”)?8:0)?”0″:a};
var Qa=0;
function Ra(a,b,c){1<=Qa||1<=100*Math.random()||ld()||(a=["utmt=error","utmerr="+a,"utmwv=5.7.1","utmn="+Ea(),"utmsp=1"],b&&a.push("api="+b),c&&a.push("msg="+G(c.substring(0,100))),M.w&&a.push("aip=1"),Sa(a.join("&")),Qa++)}; var Ta=0,Ua={};function N(a){return Va("x"+Ta++,a)}function Va(a,b){Ua[a]=!!b;return a} var Wa=N(),Xa=Va("anonymizeIp"),Ya=N(),$a=N(),ab=N(),bb=N(),O=N(),P=N(),cb=N(),db=N(),eb=N(),fb=N(),gb=N(),hb=N(),ib=N(),jb=N(),kb=N(),lb=N(),nb=N(),ob=N(),pb=N(),qb=N(),rb=N(),sb=N(),tb=N(),ub=N(),vb=N(),wb=N(),xb=N(),yb=N(),zb=N(),Ab=N(),Bb=N(),Cb=N(),Db=N(),Eb=N(),Fb=N(!0),Gb=Va("currencyCode"),v=Va("storeGac"),Hb=Va("page"),Ib=Va("title"),Jb=N(),Kb=N(),Lb=N(),Mb=N(),Nb=N(),Ob=N(),Pb=N(),Qb=N(),Rb=N(),Q=N(!0),Sb=N(!0),Tb=N(!0),Ub=N(!0),Vb=N(!0),Wb=N(!0),Zb=N(!0),$b=N(!0),ac=N(!0),bc=N(!0),cc=N(!0), [/code]

ga.js 5~7行目

line5

function La(a,b){
var c={url:a,protocol:”http”,host:””,path:””,R:new nf,anchor:””};
if(!a)return c;
var d=a.indexOf(“://”);
0<=d&&(c.protocol=a.substring(0,d),a=a.substring(d+3)); d=a.search("/|\\?|#"); if(0<=d)c.host=a.substring(0,d).toLowerCase(),a=a.substring(d); else return c.host=a.toLowerCase(),c;d=a.indexOf("#"); 0<=d&&(c.anchor=a.substring(d+1),a=a.substring(0,d));d=a.indexOf("?"); 0<=d&&(Na(c.R,a.substring(d+1)),a=a.substring(0,d)); c.anchor&&b&&Na(c.R,c.anchor);a&&"/"==a.charAt(0)&&(a=a.substring(1)); [/js] 取得したurl(a)のプロトコル、ホスト、アンカーなど分岐処理を行ってますね。 line7

function Oa(a,b){
	function c(a){
		var b=(a.hostname||””).split(“:”)[0].toLowerCase(),c=(a.protocol||””).toLowerCase();
		c=1*a.port||(“http:”==c?80:”https:”==c?443:””);
		a=a.pathname||””;0==a.indexOf(“/”)||(a=”/”+a);
		return[b,””+c,a]}b=b||J.createElement(“a”);
		b.href=J.location.href;
		var d=(b.protocol||””).toLowerCase(),e=c(b),f=b.search||””,Be=d+”//”+e[0]+(e[1]?”:”+e[1]:””);
		0==a.indexOf(“//”)?a=d+a:0==a.indexOf(“/”)?a=Be+a:a&&0!=a.indexOf(“?”)?0>a.split(“/”)[0].indexOf(“:”)&&(a=Be+e[2].substring(0,e[2].lastIndexOf(“/”))+

なるほど、これ、ポート、プロトコル、SSLの知識がかなり必要ですな。
吐き気がしてきた。