General Analytics INterceptor How-To.
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";
<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>
<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>
<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>
<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>