Track campaigns with Google Analytics without query string parameters?

后端 未结 9 1209
忘掉有多难
忘掉有多难 2020-11-30 18:52

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

9条回答
  •  [愿得一人]
    2020-11-30 19:28

    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
                                                            
提交回复
热议问题