diff --git a/js/piwik.js b/js/piwik.js index 971bd7b6006..3c7b989f87c 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -401,7 +401,7 @@ if (!this.JSON2) { exec, res, width, height, devicePixelRatio, pdf, qt, realp, wma, dir, fla, java, gears, ag, - hook, getHook, getVisitorId, getVisitorInfo, setTrackerUrl, setSiteId, + hook, getHook, getVisitorId, getVisitorInfo, setTrackerUrl, appendToTrackingUrl, setSiteId, getAttributionInfo, getAttributionCampaignName, getAttributionCampaignKeyword, getAttributionReferrerTimestamp, getAttributionReferrerUrl, setCustomData, getCustomData, @@ -1064,6 +1064,9 @@ var // Tracker URL configTrackerUrl = trackerUrl || '', + // This string is appended to the Tracker URL Request (eg. to send data that is not handled by the existin setters/getters) + configAppendToTrackingUrl = '', + // Site ID configTrackerSiteId = siteId || '', @@ -1725,6 +1728,9 @@ var // tracker plugin hook request += executePluginMethod(pluginMethod); + if (configAppendToTrackingUrl.length) { + request += '&' + configAppendToTrackingUrl; + } return request; } @@ -2321,8 +2327,17 @@ var }, /** - * Get custom data + * Appends the specified query string to the piwik.php?... Tracking API URL * + * @param queryString eg. 'lat=140&long=100' + */ + appendToTrackingUrl: function (queryString) { + configAppendToTrackingUrl = queryString; + }, + + /** + * Get custom data + *skk * @return mixed */ getCustomData: function () { diff --git a/piwik.js b/piwik.js index 1226432226b..1584ab67728 100644 --- a/piwik.js +++ b/piwik.js @@ -14,17 +14,17 @@ return typeof f==="function"?m({"":n},""):n}throw new SyntaxError("JSON.parse")} }}return true}function k(){var N;if(o.addEventListener){L(o,"DOMContentLoaded",function i(){o.removeEventListener("DOMContentLoaded",i,false);H()})}else{if(o.attachEvent){o.attachEvent("onreadystatechange",function i(){if(o.readyState==="complete"){o.detachEvent("onreadystatechange",i);H()}});if(o.documentElement.doScroll&&y===y.top){(function i(){if(!l){try{o.documentElement.doScroll("left")}catch(O){setTimeout(i,0);return}H()}}())}}}if((new RegExp("WebKit")).test(c.userAgent)){N=setInterval(function(){if(l||/loaded|complete/.test(o.readyState)){clearInterval(N);H()}},10)}L(y,"load",H,false)}function e(O,N){var i=o.createElement("script");i.type="text/javascript";i.src=O;if(i.readyState){i.onreadystatechange=function(){var P=this.readyState;if(P==="loaded"||P==="complete"){i.onreadystatechange=null;N()}}}else{i.onload=N}o.getElementsByTagName("head")[0].appendChild(i)}function r(){var i="";try{i=y.top.document.referrer}catch(O){if(y.parent){try{i=y.parent.document.referrer}catch(N){i="" }}}if(i===""){i=o.referrer}return i}function g(i){var O=new RegExp("^([a-z]+):"),N=O.exec(i);return N?N[1]:null}function b(i){var O=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),N=O.exec(i);return N?N[1]:i}function z(O,N){var R=new RegExp("^(?:https?|ftp)(?::/*(?:[^?]+)[?])([^#]+)"),Q=R.exec(O),P=new RegExp("(?:^|&)"+N+"=([^&]*)"),i=Q?P.exec(Q[1]):0;return i?w(i[1]):""}function n(i){return d(h(i))}function K(ad){var P=function(W,i){return(W<>>(32-i))},ae=function(ak){var aj="",ai,W;for(ai=7;ai>=0;ai--){W=(ak>>>(ai*4))&15;aj+=W.toString(16)}return aj},S,ag,af,O=[],X=1732584193,U=4023233417,T=2562383102,R=271733878,Q=3285377520,ac,ab,aa,Z,Y,ah,N,V=[];ad=n(ad);N=ad.length;for(ag=0;ag>>29);V.push((N<<3)&4294967295);for(S=0;S=0){bh=bh.slice(0,bg)}if((bg=bh.lastIndexOf("/"))!==bh.length-1){bh=bh.slice(0,bg+1)}return bh+bf}function aI(bi){var bg,bf,bh;for(bg=0;bg0)&&(bi.slice(bh)===bf)){return true}}}return false}function be(bf){var bg=new Image(1,1);bg.onload=function(){};bg.src=P+(P.indexOf("?")<0?"?":"&")+bf -}function aU(bf){try{var bh=y.XMLHttpRequest?new y.XMLHttpRequest():y.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;bh.open("POST",P,true);bh.onreadystatechange=function(){if(this.readyState===4&&this.status!==200){be(bf)}};bh.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");bh.send(bf)}catch(bg){be(bf)}}function ar(bh,bg){var bf=new Date();if(!a5){if(aJ==="POST"){aU(bh)}else{be(bh)}f=bf.getTime()+bg}}function aS(bf){return ba+bf+"."+a2+"."+aN}function R(){if(X){return"0"}if(!q(c.cookieEnabled)){var bf=aS("testcookie");aT(bf,"1");return ac(bf)==="1"?"1":"0"}return c.cookieEnabled?"1":"0"}function aD(){aN=ap((Z||aY)+(bb||"/")).slice(0,4)}function ab(){var bg=aS("cvar"),bf=ac(bg);if(bf.length){bf=JSON2.parse(bf);if(A(bf)){return bf}}return{}}function O(){if(S===false){S=ab()}}function a1(){var bf=new Date();aK=bf.getTime()}function Y(bj,bg,bf,bi,bh,bk){aT(aS("id"),bj+"."+bg+"."+bf+"."+bi+"."+bh+"."+bk,ad,bb,Z)}function N(){var bg=new Date(),bf=Math.round(bg.getTime()/1000),bi=ac(aS("id")),bh; -if(bi){bh=bi.split(".");bh.unshift("0")}else{if(!au){au=ap((c.userAgent||"")+(c.platform||"")+JSON2.stringify(a3)+bf).slice(0,16)}bh=["1",au,bf,0,bf,"",""]}return bh}function i(){var bf=ac(aS("ref"));if(bf.length){try{bf=JSON2.parse(bf);if(A(bf)){return bf}}catch(bg){}}return["","",0,""]}function an(bh,bG,bH,bj){var bE,bg=new Date(),bp=Math.round(bg.getTime()/1000),bJ,bF,bl,bx,bB,bo,bz,bm,bD,bk=1024,bK,bs,bA=S,bv=aS("id"),bq=aS("ses"),br=aS("ref"),bL=aS("cvar"),by=N(),bu=ac(bq),bC=i(),bI=aw||bc,bn,bf;if(X){X=false;aT(bv,"",-86400,bb,Z);aT(bq,"",-86400,bb,Z);aT(bL,"",-86400,bb,Z);aT(br,"",-86400,bb,Z);X=true}if(a5){return""}bJ=by[0];bF=by[1];bx=by[2];bl=by[3];bB=by[4];bo=by[5];if(!q(by[6])){by[6]=""}bz=by[6];if(!q(bj)){bj=""}var bt=o.characterSet||o.charset;if(!bt||bt.toLowerCase()==="utf-8"){bt=null}bn=bC[0];bf=bC[1];bm=bC[2];bD=bC[3];if(!bu){bl++;bo=bB;if(!av||!bn.length){for(bE in aq){if(Object.prototype.hasOwnProperty.call(aq,bE)){bn=z(bI,aq[bE]);if(bn.length){break}}}for(bE in al){if(Object.prototype.hasOwnProperty.call(al,bE)){bf=z(bI,al[bE]); -if(bf.length){break}}}}bK=b(aL);bs=bD.length?b(bD):"";if(bK.length&&!aI(bK)&&(!av||!bs.length||aI(bs))){bD=aL}if(bD.length||bn.length){bm=bp;bC=[bn,bf,bm,a7(bD.slice(0,bk))];aT(br,JSON2.stringify(bC),ax,bb,Z)}}bh+="&idsite="+a2+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+bg.getHours()+"&m="+bg.getMinutes()+"&s="+bg.getSeconds()+"&url="+h(a7(bI))+(aL.length?"&urlref="+h(a7(aL)):"")+"&_id="+bF+"&_idts="+bx+"&_idvc="+bl+"&_idn="+bJ+(bn.length?"&_rcn="+h(bn):"")+(bf.length?"&_rck="+h(bf):"")+"&_refts="+bm+"&_viewts="+bo+(String(bz).length?"&_ects="+bz:"")+(String(bD).length?"&_ref="+h(a7(bD.slice(0,bk))):"")+(bt?"&cs="+h(bt):"");var bi=JSON2.stringify(aB);if(bi.length>2){bh+="&cvar="+h(bi)}for(bE in a3){if(Object.prototype.hasOwnProperty.call(a3,bE)){bh+="&"+bE+"="+a3[bE]}}if(bG){bh+="&data="+h(JSON2.stringify(bG))}else{if(W){bh+="&data="+h(JSON2.stringify(W))}}if(S){var bw=JSON2.stringify(S);if(bw.length>2){bh+="&_cvar="+h(bw)}for(bE in bA){if(Object.prototype.hasOwnProperty.call(bA,bE)){if(S[bE][0]===""||S[bE][1]===""){delete S[bE] -}}}aT(bL,JSON2.stringify(S),ae,bb,Z)}Y(bF,bx,bl,bp,bo,q(bj)&&String(bj).length?bj:bz);aT(bq,"*",ae,bb,Z);bh+=G(bH);return bh}function aW(bi,bh,bm,bj,bf,bp){var bk="idgoal=0",bl,bg=new Date(),bn=[],bo;if(String(bi).length){bk+="&ec_id="+h(bi);bl=Math.round(bg.getTime()/1000)}bk+="&revenue="+bh;if(String(bm).length){bk+="&ec_st="+bm}if(String(bj).length){bk+="&ec_tx="+bj}if(String(bf).length){bk+="&ec_sh="+bf}if(String(bp).length){bk+="&ec_dt="+bp}if(aR){for(bo in aR){if(Object.prototype.hasOwnProperty.call(aR,bo)){if(!q(aR[bo][1])){aR[bo][1]=""}if(!q(aR[bo][2])){aR[bo][2]=""}if(!q(aR[bo][3])||String(aR[bo][3]).length===0){aR[bo][3]=0}if(!q(aR[bo][4])||String(aR[bo][4]).length===0){aR[bo][4]=1}bn.push(aR[bo])}}bk+="&ec_items="+h(JSON2.stringify(bn))}bk=an(bk,W,"ecommerce",bl);ar(bk,aG)}function aV(bf,bj,bi,bh,bg,bk){if(String(bf).length&&q(bj)){aW(bf,bj,bi,bh,bg,bk)}}function a9(bf){if(q(bf)){aW("",bf,"","","","")}}function az(bi,bj){var bf=new Date(),bh=an("action_name="+h(M(bi||am)),bj,"log"); -ar(bh,aG);if(U&&ah&&!aM){aM=true;L(o,"click",a1);L(o,"mouseup",a1);L(o,"mousedown",a1);L(o,"mousemove",a1);L(o,"mousewheel",a1);L(y,"DOMMouseScroll",a1);L(y,"scroll",a1);L(o,"keypress",a1);L(o,"keydown",a1);L(o,"keyup",a1);L(y,"resize",a1);L(y,"focus",a1);L(y,"blur",a1);aK=bf.getTime();setTimeout(function bg(){var bk=new Date(),bl;if((aK+ah)>bk.getTime()){if(U0){bf=q(bf)&&!j(bf)?String(bf):bf;bj=q(bj)&&!j(bj)?String(bj):bj;bi=[bf.slice(0,a6),bj.slice(0,a6)];if(bh==="visit"||bh===2){O();S[bg]=bi}else{if(bh==="page"||bh===3){aB[bg]=bi}}}},getCustomVariable:function(bg,bh){var bf;if(!q(bh)){bh="visit"}if(bh==="page"||bh===3){bf=aB[bg]}else{if(bh==="visit"||bh===2){O();bf=S[bg] -}}if(!q(bf)||(bf&&bf[0]==="")){return false}return bf},deleteCustomVariable:function(bf,bg){if(this.getCustomVariable(bf,bg)){this.setCustomVariable(bf,"","",bg)}},setLinkTrackingTimer:function(bf){aG=bf},setDownloadExtensions:function(bf){ao=bf},addDownloadExtensions:function(bf){ao+="|"+bf},setDomains:function(bf){aH=j(bf)?[bf]:bf;aH.push(aY)},setIgnoreClasses:function(bf){T=j(bf)?[bf]:bf},setRequestMethod:function(bf){aJ=bf||"GET"},setReferrerUrl:function(bf){aL=bf},setCustomUrl:function(bf){aw=aX(bc,bf)},setDocumentTitle:function(bf){am=bf},setDownloadClasses:function(bf){aA=j(bf)?[bf]:bf},setLinkClasses:function(bf){af=j(bf)?[bf]:bf},setCampaignNameKey:function(bf){aq=j(bf)?[bf]:bf},setCampaignKeywordKey:function(bf){al=j(bf)?[bf]:bf},discardHashTag:function(bf){V=bf},setCookieNamePrefix:function(bf){ba=bf;S=ab()},setCookieDomain:function(bf){Z=s(bf);aD()},setCookiePath:function(bf){bb=bf;aD()},setVisitorCookieTimeout:function(bf){ad=bf*1000},setSessionCookieTimeout:function(bf){ae=bf*1000 -},setReferralCookieTimeout:function(bf){ax=bf*1000},setConversionAttributionFirstReferrer:function(bf){av=bf},disableCookies:function(){X=true;a3.cookie="0"},setDoNotTrack:function(bg){var bf=c.doNotTrack||c.msDoNotTrack;a5=bg&&(bf==="yes"||bf==="1");if(a5){this.disableCookies()}},addListener:function(bg,bf){aP(bg,bf)},enableLinkTracking:function(bf){if(l){ay(bf)}else{v.push(function(){ay(bf)})}},setHeartBeatTimer:function(bh,bg){var bf=new Date();U=bf.getTime()+bh*1000;ah=bg*1000},killFrame:function(){if(y.location!==y.top.location){y.top.location=y.location}},redirectFile:function(bf){if(y.location.protocol==="file:"){y.location=bf}},setCountPreRendered:function(bf){at=bf},trackGoal:function(bf,bh,bg){aj(function(){aE(bf,bh,bg)})},trackLink:function(bg,bf,bh){aj(function(){a0(bg,bf,bh)})},trackPageView:function(bf,bg){if(t(P,a2)){aj(function(){D(P,a2)})}else{aj(function(){az(bf,bg)})}},trackSiteSearch:function(bf,bh,bg){aj(function(){ak(bf,bh,bg)})},setEcommerceView:function(bi,bf,bh,bg){if(!q(bh)||!bh.length){bh="" -}else{if(bh instanceof Array){bh=JSON2.stringify(bh)}}aB[5]=["_pkc",bh];if(q(bg)&&String(bg).length){aB[2]=["_pkp",bg]}if((!q(bi)||!bi.length)&&(!q(bf)||!bf.length)){return}if(q(bi)&&bi.length){aB[3]=["_pks",bi]}if(!q(bf)||!bf.length){bf=""}aB[4]=["_pkn",bf]},addEcommerceItem:function(bj,bf,bh,bg,bi){if(bj.length){aR[bj]=[bj,bf,bh,bg,bi]}},trackEcommerceOrder:function(bf,bj,bi,bh,bg,bk){aV(bf,bj,bi,bh,bg,bk)},trackEcommerceCartUpdate:function(bf){a9(bf)}}}function p(){return{push:I}}L(y,"beforeunload",J,false);k();Date.prototype.getTimeAlias=Date.prototype.getTime;C=new u();for(F=0;F<_paq.length;F++){if(_paq[F][0]==="setTrackerUrl"||_paq[F][0]==="setSiteId"){I(_paq[F]);delete _paq[F]}}for(F=0;F<_paq.length;F++){if(_paq[F]){I(_paq[F])}}_paq=new p();return{addPlugin:function(i,N){a[i]=N},getTracker:function(i,N){return new u(i,N)},getAsyncTracker:function(){return C}}}()),piwik_track,piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h)}catch(i){}return}var c,e=Piwik.getTracker(d,f); -e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; \ No newline at end of file +O=b(i)}}return[O,i,N]}function s(N){var i=N.length;if(N.charAt(--i)==="."){N=N.slice(0,i)}if(N.slice(0,2)==="*."){N=N.slice(1)}return N}function M(N){if(!j(N)){N=N.text||"";var i=o.getElementsByTagName("title");if(i&&q(i[0])){N=i[0].text}}return N}function x(i){if(i.slice(-9)==="piwik.php"){i=i.slice(0,i.length-9)}return i}function t(Q,U){var W="Piwik_Overlay",T=o.referrer,i=x(Q);i.slice(i.slice(0,7)==="http://"?7:8,i.length);T.slice(T.slice(0,7)==="http://"?7:8,T.length);if(T.slice(0,i.length)===i){var O=new RegExp("^"+i+"index\\.php\\?module=Overlay&action=startOverlaySession&idsite=([0-9]+)&period=([^&]+)&date=([^&]+)$");var P=O.exec(T);if(P){var R=P[1];if(R!==String(U)){return false}var S=P[2],N=P[3];y.name=W+"###"+S+"###"+N}}var V=y.name.split("###");return V.length===3&&V[0]===W}function D(O,P){var R=y.name.split("###"),Q=R[1],N=R[2],i=x(O);e(i+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(i,P,Q,N)})}function u(ag,aF){var Q=E(o.domain,y.location.href,r()),aZ=s(Q[0]),bd=Q[1],aM=Q[2],aK="GET",P=ag||"",aH="",a3=aF||"",aw,am=o.title,ao="7z|aac|ar[cj]|as[fx]|avi|bin|csv|deb|dmg|docx?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|ms[ip]|od[bfgpst]|og[gv]|pdf|phps|png|pptx?|qtm?|ra[mr]?|rpm|sea|sit|tar|t?bz2?|tgz|torrent|txt|wav|wm[av]|wpd||xlsx?|xml|z|zip",aI=[aZ],T=[],aA=[],af=[],aG=500,U,ah,V,W,aq=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],al=["pk_kwd","piwik_kwd","utm_term"],bb="_pk_",Z,bc,X=false,a6,at,av,ad=63072000000,ae=1800000,ax=15768000000,S=false,aB={},a7=200,aS={},a4={},aP=false,aN=false,aL,aC,aa,ap=K,aO,au; +function aU(bm,bj,bi,bl,bh,bk){if(X){return}var bg;if(bi){bg=new Date();bg.setTime(bg.getTime()+bi)}o.cookie=bm+"="+h(bj)+(bi?";expires="+bg.toGMTString():"")+";path="+(bl||"/")+(bh?";domain="+bh:"")+(bk?";secure":"")}function ac(bi){if(X){return 0}var bg=new RegExp("(^|;)[ ]*"+bi+"=([^;]*)"),bh=bg.exec(o.cookie);return bh?w(bh[2]):0}function a8(bg){var bh;if(V){bh=new RegExp("#.*");return bg.replace(bh,"")}return bg}function aY(bi,bg){var bj=g(bg),bh;if(bj){return bg}if(bg.slice(0,1)==="/"){return g(bi)+"://"+b(bi)+bg}bi=a8(bi);if((bh=bi.indexOf("?"))>=0){bi=bi.slice(0,bh)}if((bh=bi.lastIndexOf("/"))!==bi.length-1){bi=bi.slice(0,bh+1)}return bi+bg}function aJ(bj){var bh,bg,bi;for(bh=0;bh0)&&(bj.slice(bi)===bg)){return true}}}return false}function bf(bg){var bh=new Image(1,1);bh.onload=function(){};bh.src=P+(P.indexOf("?")<0?"?":"&")+bg +}function aV(bg){try{var bi=y.XMLHttpRequest?new y.XMLHttpRequest():y.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;bi.open("POST",P,true);bi.onreadystatechange=function(){if(this.readyState===4&&this.status!==200){bf(bg)}};bi.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");bi.send(bg)}catch(bh){bf(bg)}}function ar(bi,bh){var bg=new Date();if(!a6){if(aK==="POST"){aV(bi)}else{bf(bi)}f=bg.getTime()+bh}}function aT(bg){return bb+bg+"."+a3+"."+aO}function R(){if(X){return"0"}if(!q(c.cookieEnabled)){var bg=aT("testcookie");aU(bg,"1");return ac(bg)==="1"?"1":"0"}return c.cookieEnabled?"1":"0"}function aD(){aO=ap((Z||aZ)+(bc||"/")).slice(0,4)}function ab(){var bh=aT("cvar"),bg=ac(bh);if(bg.length){bg=JSON2.parse(bg);if(A(bg)){return bg}}return{}}function O(){if(S===false){S=ab()}}function a2(){var bg=new Date();aL=bg.getTime()}function Y(bk,bh,bg,bj,bi,bl){aU(aT("id"),bk+"."+bh+"."+bg+"."+bj+"."+bi+"."+bl,ad,bc,Z)}function N(){var bh=new Date(),bg=Math.round(bh.getTime()/1000),bj=ac(aT("id")),bi; +if(bj){bi=bj.split(".");bi.unshift("0")}else{if(!au){au=ap((c.userAgent||"")+(c.platform||"")+JSON2.stringify(a4)+bg).slice(0,16)}bi=["1",au,bg,0,bg,"",""]}return bi}function i(){var bg=ac(aT("ref"));if(bg.length){try{bg=JSON2.parse(bg);if(A(bg)){return bg}}catch(bh){}}return["","",0,""]}function an(bi,bH,bI,bk){var bF,bh=new Date(),bq=Math.round(bh.getTime()/1000),bK,bG,bm,by,bC,bp,bA,bn,bE,bl=1024,bL,bt,bB=S,bw=aT("id"),br=aT("ses"),bs=aT("ref"),bM=aT("cvar"),bz=N(),bv=ac(br),bD=i(),bJ=aw||bd,bo,bg;if(X){X=false;aU(bw,"",-86400,bc,Z);aU(br,"",-86400,bc,Z);aU(bM,"",-86400,bc,Z);aU(bs,"",-86400,bc,Z);X=true}if(a6){return""}bK=bz[0];bG=bz[1];by=bz[2];bm=bz[3];bC=bz[4];bp=bz[5];if(!q(bz[6])){bz[6]=""}bA=bz[6];if(!q(bk)){bk=""}var bu=o.characterSet||o.charset;if(!bu||bu.toLowerCase()==="utf-8"){bu=null}bo=bD[0];bg=bD[1];bn=bD[2];bE=bD[3];if(!bv){bm++;bp=bC;if(!av||!bo.length){for(bF in aq){if(Object.prototype.hasOwnProperty.call(aq,bF)){bo=z(bJ,aq[bF]);if(bo.length){break}}}for(bF in al){if(Object.prototype.hasOwnProperty.call(al,bF)){bg=z(bJ,al[bF]); +if(bg.length){break}}}}bL=b(aM);bt=bE.length?b(bE):"";if(bL.length&&!aJ(bL)&&(!av||!bt.length||aJ(bt))){bE=aM}if(bE.length||bo.length){bn=bq;bD=[bo,bg,bn,a8(bE.slice(0,bl))];aU(bs,JSON2.stringify(bD),ax,bc,Z)}}bi+="&idsite="+a3+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+bh.getHours()+"&m="+bh.getMinutes()+"&s="+bh.getSeconds()+"&url="+h(a8(bJ))+(aM.length?"&urlref="+h(a8(aM)):"")+"&_id="+bG+"&_idts="+by+"&_idvc="+bm+"&_idn="+bK+(bo.length?"&_rcn="+h(bo):"")+(bg.length?"&_rck="+h(bg):"")+"&_refts="+bn+"&_viewts="+bp+(String(bA).length?"&_ects="+bA:"")+(String(bE).length?"&_ref="+h(a8(bE.slice(0,bl))):"")+(bu?"&cs="+h(bu):"");var bj=JSON2.stringify(aB);if(bj.length>2){bi+="&cvar="+h(bj)}for(bF in a4){if(Object.prototype.hasOwnProperty.call(a4,bF)){bi+="&"+bF+"="+a4[bF]}}if(bH){bi+="&data="+h(JSON2.stringify(bH))}else{if(W){bi+="&data="+h(JSON2.stringify(W))}}if(S){var bx=JSON2.stringify(S);if(bx.length>2){bi+="&_cvar="+h(bx)}for(bF in bB){if(Object.prototype.hasOwnProperty.call(bB,bF)){if(S[bF][0]===""||S[bF][1]===""){delete S[bF] +}}}aU(bM,JSON2.stringify(S),ae,bc,Z)}Y(bG,by,bm,bq,bp,q(bk)&&String(bk).length?bk:bA);aU(br,"*",ae,bc,Z);bi+=G(bI);if(aH.length){bi+="&"+aH}return bi}function aX(bj,bi,bn,bk,bg,bq){var bl="idgoal=0",bm,bh=new Date(),bo=[],bp;if(String(bj).length){bl+="&ec_id="+h(bj);bm=Math.round(bh.getTime()/1000)}bl+="&revenue="+bi;if(String(bn).length){bl+="&ec_st="+bn}if(String(bk).length){bl+="&ec_tx="+bk}if(String(bg).length){bl+="&ec_sh="+bg}if(String(bq).length){bl+="&ec_dt="+bq}if(aS){for(bp in aS){if(Object.prototype.hasOwnProperty.call(aS,bp)){if(!q(aS[bp][1])){aS[bp][1]=""}if(!q(aS[bp][2])){aS[bp][2]=""}if(!q(aS[bp][3])||String(aS[bp][3]).length===0){aS[bp][3]=0}if(!q(aS[bp][4])||String(aS[bp][4]).length===0){aS[bp][4]=1}bo.push(aS[bp])}}bl+="&ec_items="+h(JSON2.stringify(bo))}bl=an(bl,W,"ecommerce",bm);ar(bl,aG)}function aW(bg,bk,bj,bi,bh,bl){if(String(bg).length&&q(bk)){aX(bg,bk,bj,bi,bh,bl)}}function ba(bg){if(q(bg)){aX("",bg,"","","","")}}function az(bj,bk){var bg=new Date(),bi=an("action_name="+h(M(bj||am)),bk,"log"); +ar(bi,aG);if(U&&ah&&!aN){aN=true;L(o,"click",a2);L(o,"mouseup",a2);L(o,"mousedown",a2);L(o,"mousemove",a2);L(o,"mousewheel",a2);L(y,"DOMMouseScroll",a2);L(y,"scroll",a2);L(o,"keypress",a2);L(o,"keydown",a2);L(o,"keyup",a2);L(y,"resize",a2);L(y,"focus",a2);L(y,"blur",a2);aL=bg.getTime();setTimeout(function bh(){var bl=new Date(),bm;if((aL+ah)>bl.getTime()){if(U0){bg=q(bg)&&!j(bg)?String(bg):bg;bk=q(bk)&&!j(bk)?String(bk):bk;bj=[bg.slice(0,a7),bk.slice(0,a7)];if(bi==="visit"||bi===2){O();S[bh]=bj}else{if(bi==="page"||bi===3){aB[bh]=bj}}}},getCustomVariable:function(bh,bi){var bg;if(!q(bi)){bi="visit"}if(bi==="page"||bi===3){bg=aB[bh] +}else{if(bi==="visit"||bi===2){O();bg=S[bh]}}if(!q(bg)||(bg&&bg[0]==="")){return false}return bg},deleteCustomVariable:function(bg,bh){if(this.getCustomVariable(bg,bh)){this.setCustomVariable(bg,"","",bh)}},setLinkTrackingTimer:function(bg){aG=bg},setDownloadExtensions:function(bg){ao=bg},addDownloadExtensions:function(bg){ao+="|"+bg},setDomains:function(bg){aI=j(bg)?[bg]:bg;aI.push(aZ)},setIgnoreClasses:function(bg){T=j(bg)?[bg]:bg},setRequestMethod:function(bg){aK=bg||"GET"},setReferrerUrl:function(bg){aM=bg},setCustomUrl:function(bg){aw=aY(bd,bg)},setDocumentTitle:function(bg){am=bg},setDownloadClasses:function(bg){aA=j(bg)?[bg]:bg},setLinkClasses:function(bg){af=j(bg)?[bg]:bg},setCampaignNameKey:function(bg){aq=j(bg)?[bg]:bg},setCampaignKeywordKey:function(bg){al=j(bg)?[bg]:bg},discardHashTag:function(bg){V=bg},setCookieNamePrefix:function(bg){bb=bg;S=ab()},setCookieDomain:function(bg){Z=s(bg);aD()},setCookiePath:function(bg){bc=bg;aD()},setVisitorCookieTimeout:function(bg){ad=bg*1000 +},setSessionCookieTimeout:function(bg){ae=bg*1000},setReferralCookieTimeout:function(bg){ax=bg*1000},setConversionAttributionFirstReferrer:function(bg){av=bg},disableCookies:function(){X=true;a4.cookie="0"},setDoNotTrack:function(bh){var bg=c.doNotTrack||c.msDoNotTrack;a6=bh&&(bg==="yes"||bg==="1");if(a6){this.disableCookies()}},addListener:function(bh,bg){aQ(bh,bg)},enableLinkTracking:function(bg){if(l){ay(bg)}else{v.push(function(){ay(bg)})}},setHeartBeatTimer:function(bi,bh){var bg=new Date();U=bg.getTime()+bi*1000;ah=bh*1000},killFrame:function(){if(y.location!==y.top.location){y.top.location=y.location}},redirectFile:function(bg){if(y.location.protocol==="file:"){y.location=bg}},setCountPreRendered:function(bg){at=bg},trackGoal:function(bg,bi,bh){aj(function(){aE(bg,bi,bh)})},trackLink:function(bh,bg,bi){aj(function(){a1(bh,bg,bi)})},trackPageView:function(bg,bh){if(t(P,a3)){aj(function(){D(P,a3)})}else{aj(function(){az(bg,bh)})}},trackSiteSearch:function(bg,bi,bh){aj(function(){ak(bg,bi,bh) +})},setEcommerceView:function(bj,bg,bi,bh){if(!q(bi)||!bi.length){bi=""}else{if(bi instanceof Array){bi=JSON2.stringify(bi)}}aB[5]=["_pkc",bi];if(q(bh)&&String(bh).length){aB[2]=["_pkp",bh]}if((!q(bj)||!bj.length)&&(!q(bg)||!bg.length)){return}if(q(bj)&&bj.length){aB[3]=["_pks",bj]}if(!q(bg)||!bg.length){bg=""}aB[4]=["_pkn",bg]},addEcommerceItem:function(bk,bg,bi,bh,bj){if(bk.length){aS[bk]=[bk,bg,bi,bh,bj]}},trackEcommerceOrder:function(bg,bk,bj,bi,bh,bl){aW(bg,bk,bj,bi,bh,bl)},trackEcommerceCartUpdate:function(bg){ba(bg)}}}function p(){return{push:I}}L(y,"beforeunload",J,false);k();Date.prototype.getTimeAlias=Date.prototype.getTime;C=new u();for(F=0;F<_paq.length;F++){if(_paq[F][0]==="setTrackerUrl"||_paq[F][0]==="setSiteId"){I(_paq[F]);delete _paq[F]}}for(F=0;F<_paq.length;F++){if(_paq[F]){I(_paq[F])}}_paq=new p();return{addPlugin:function(i,N){a[i]=N},getTracker:function(i,N){return new u(i,N)},getAsyncTracker:function(){return C}}}()),piwik_track,piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h) +}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; \ No newline at end of file diff --git a/tests/javascript/index.php b/tests/javascript/index.php index 86031914500..1164072f2d6 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -828,7 +828,7 @@ function PiwikTest() { }); test("tracking", function() { - expect(80); + expect(81); /* * Prevent Opera and HtmlUnit from performing the default action (i.e., load the href URL) @@ -1047,6 +1047,11 @@ function wait(msecs) // do not track tracker3.setDoNotTrack(false); + + // Append tracking url parameter + tracker3.appendToTrackingUrl("appended=1&appended2=value"); + + // Track pageview tracker3.trackPageView("DoTrack"); // Firefox 9: navigator.doNotTrack is read-only @@ -1128,6 +1133,9 @@ function wait(msecs) ok( /testlink/.test( results ), "plugin hook link" ); ok( /testgoal/.test( results ), "plugin hook goal" ); + // Testing the Tracking URL append + ok( /&appended=1&appended2=value/.test( results ), "appendToTrackingUrl(query) function"); + start(); }, 4500); });