Is there a supported way in Google Analytics to track a campaign without having to use query string parameters.
In Analytics you can tag a link to your site with que
Below is an updated way to do this using the Google Analytics Universal method of Event tracking rather than GA Standard Event tracking.
The entire UTM string can be extracted from the queryString (when there) or pulled from the Google cookie (__utmz) and then passed into Google Analytics using the below code.
ga('send', 'event', 'queryString', 'getQueryString', googleString );
Then, upon execution of whatever trigger you want to create (I use a function named "widgetTracker"), you can execute the GA event tracker.
Here's the entire code:
/* JavaScript Document */
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxxxx-xx', 'xx.xxx');
ga('send', 'pageview');
var googleString;
var stringArray = [];
var queryStringObject = makeQueryStringObject();
var QUOT = "'";
var EQ = '=';
var AMP = '&';
for ( var v in queryStringObject ) {
var str = v + EQ + queryStringObject[v] ;
stringArray.push(str);
googleString = stringArray.join(AMP);
}
function makeQueryStringObject() {
var obj = [];
var pageURL = window.location.href;
var URLArray = pageURL.split('?');
if( URLArray[1] ) {
var argsArray = URLArray[1].split('&');
var l = argsArray.length;
for( i=0; i -1) {
var dropHashArray = individualArg[1].split('#');
individualArg[1] = dropHashArray[0];
}
obj[ individualArg[0] ] = individualArg[1];
console.log("value of queryStringObject: " + individualArg[0] + " :: " + obj[ individualArg[0] ]);
}
} else { /* from http://stackoverflow.com/a/14984832/1013405 */
ga1 = parseGACookie();
if(ga1['utmcsr']) {
var utm_source = ga1['utmcsr'];
}
if(ga1['utmccn']) {
var utm_campaign = ga1['utmccn'];
} if(ga1['utmcmd']) {
var utm_medium = ga1['utmcmd'];
}
if(ga1['utmctr']) {
var utm_term = ga1['utmctr'];
}
if(ga1['utmcct']) {
var utm_content = ga1['utmcct'];
}
}
var googleString2 = "utm_campaign=" + utm_campaign + '&' + "utm_medium=" + utm_medium + '&' + "utm_term=" + utm_term + '&' + "utm_content=" + utm_content;
return obj;
}
function parseGACookie() {
var values = {};
var cookie = readCookie("__utmz");
if (cookie) {
var z = cookie.split('.');
if (z.length >= 4) {
var y = z[4].split('|');
for (i=0; i