Google Analytics Tracking Code

General Analytics INterceptor How-To.

Semantic data

Semantic data describe pages using much more granular way. You can explicitly define attributes to describe pages.

Simple example: Inflatable Balloon e-shop

There are three types of pages: info, list and product detail pages

For homepage we can have following semantic data:

var sdata = "type=info&desc=homepage";

For contact we can have following semantic data:

var sdata = "type=info&desc=contact";

For product list we can have following semantic data:

var sdata = "type=list&category=baby&filter=top";

For product detail we can have following semantic data:

var sdata = "type=product&category=baby&color=blue&size=3&price=1.3";

For product detail we can have following semantic data (multi line string):

var sdata = "type=product" +
        "&category=baby" +
        "&color=blue"+
        "&size=3"+
        "&price=1.3";

Asynchronous Tracking Code

Standard version

<script type="text/javascript">

var _gaq = _gaq || [];    
_gaq.push(['_setAccount', 'UA-XXXXXXX-Y']); // your account ID
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>

GAIN Modification

<script type="text/javascript">

// additional functions
(function(){var hidden,visibilityChange;if(typeof document.hidden!=="undefined"){hidden="hidden";visibilityChange="visibilitychange"}else if(typeof document.mozHidden!=="undefined"){hidden="mozHidden";visibilityChange="mozvisibilitychange"}else if(typeof document.msHidden!=="undefined"){hidden="msHidden";visibilityChange="msvisibilitychange"}else if(typeof document.webkitHidden!=="undefined"){hidden="webkitHidden";visibilityChange="webkitvisibilitychange"}function handleVisibilityChange(){if(document[hidden]){_gaq.push(['_trackEvent','GAIN-Page-Visibility','Hidden'])}else{_gaq.push(['_trackEvent','GAIN-Page-Visibility','Visible'])}}if(typeof document.addEventListener!=="undefined"&&typeof hidden!=="undefined"){document.addEventListener(visibilityChange,handleVisibilityChange,false)}})();
function gain_b64e(a){if(typeof btoa==="function")return btoa(a);var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=b.split(""),d,e,f,g,h,i,j,k,l=0,m=0,n="",o=[];do{d=a.charCodeAt(l++);e=a.charCodeAt(l++);f=a.charCodeAt(l++);k=d<<16|e<<8|f;g=k>>18&63;h=k>>12&63;i=k>>6&63;j=k&63;o[m++]=c[g]+c[h]+c[i]+c[j]}while(l<a.length);n=o.join("");var p=a.length%3;return(p?n.slice(0,p-3):n)+"===".slice(p||3)}
function gain_rc(a){if(!document.cookie){return new Array}var b=document.cookie.match(new RegExp("(?:^|;)*"+a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")+"=([^;]*)","g"));for(var c=0;c<b.length;c++){var d=b[c].split(a+'=');b[c]=d[1]}return b}

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-Y']); // your account ID

// 
_gaq.push(function() {
    var pageTracker = _gat._getTrackerByName();
    var visitorCustomVar1Value = pageTracker._getVisitorCustomVar(1);

    // semantic data in url encoded key=value format
    // var sdata = ''; 
    var sdata = 'type=product&category=camera&price=10000'; 

    // set listener
    _gaq.push(['_setLocalGifPath',document.location.protocol+'//wa.vse.cz/listener?'+'gaindata='+gain_b64e('utmac='+(pageTracker._getAccount())+'&utma='+gain_rc('__utma')+'&utmz='+gain_rc('__utmz'))+'&gainSdata='+gain_b64e(encodeURI(sdata))+'&']);
});    

// send to GA and GAIN
_gaq.push(['_setLocalRemoteServerMode']);
// send only to GAIN
//_gaq.push(['_setLocalServerMode']);    

_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})(); 

</script>

Traditional Tracking Code

Standard version

<script type="text/javascript">

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

</script>
<script type="text/javascript">

try{
    var pageTracker = _gat._getTracker("UA-XXXXXXX-Y"); // your account ID
    pageTracker._trackPageview();
} catch(err) {}              

</script>

GAIN Modification

<script type="text/javascript">

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

</script>
<script type="text/javascript">

// additional functions
(function(){var hidden,visibilityChange;if(typeof document.hidden!=="undefined"){hidden="hidden";visibilityChange="visibilitychange"}else if(typeof document.mozHidden!=="undefined"){hidden="mozHidden";visibilityChange="mozvisibilitychange"}else if(typeof document.msHidden!=="undefined"){hidden="msHidden";visibilityChange="msvisibilitychange"}else if(typeof document.webkitHidden!=="undefined"){hidden="webkitHidden";visibilityChange="webkitvisibilitychange"}function handleVisibilityChange(){if(document[hidden]){_gaq.push(['_trackEvent','GAIN-Page-Visibility','Hidden'])}else{_gaq.push(['_trackEvent','GAIN-Page-Visibility','Visible'])}}if(typeof document.addEventListener!=="undefined"&&typeof hidden!=="undefined"){document.addEventListener(visibilityChange,handleVisibilityChange,false)}})();
function gain_b64e(a){if(typeof btoa==="function")return btoa(a);var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=b.split(""),d,e,f,g,h,i,j,k,l=0,m=0,n="",o=[];do{d=a.charCodeAt(l++);e=a.charCodeAt(l++);f=a.charCodeAt(l++);k=d<<16|e<<8|f;g=k>>18&63;h=k>>12&63;i=k>>6&63;j=k&63;o[m++]=c[g]+c[h]+c[i]+c[j]}while(l<a.length);n=o.join("");var p=a.length%3;return(p?n.slice(0,p-3):n)+"===".slice(p||3)}
function gain_rc(a){if(!document.cookie){return new Array}var b=document.cookie.match(new RegExp("(?:^|;)*"+a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")+"=([^;]*)","g"));for(var c=0;c<b.length;c++){var d=b[c].split(a+'=');b[c]=d[1]}return b}

try{
    var pageTracker = _gat._getTracker("UA-XXXXXXX-Y"); // your account ID
    pageTracker._getVisitorCustomVar(1);

    // semantic data in url encoded key=value format
    // var sdata = ''; 
    var sdata = 'type=product&category=camera&price=10000';     

    // set listener
    pageTracker._setLocalGifPath(document.location.protocol+'//wa.vse.cz/listener?'+'gaindata='+gain_b64e('utmac='+(pageTracker._getAccount())+'&utma='+gain_rc('__utma')+'&utmz='+gain_rc('__utmz'))+'&gainSdata='+gain_b64e(encodeURI(sdata))+'&');

    // send to GA and GAIN
    pageTracker._setLocalRemoteServerMode();
    // send only to GAIN
    //pageTracker._setLocalServerMode();

    pageTracker._trackPageview();

} catch(err) {}          

</script>