Skip to content
Snippets Groups Projects
Select Git revision
  • 06a5d19cc7978b045c2fa7395e3998184df12a90
  • master default protected
  • optimize-images
  • 5.0
  • 4.1
5 results

analytics.js

Blame
  • Forked from Digital Experience Group / UNL_Search
    105 commits behind the upstream repository.
    analytics.js 3.01 KiB
    /* global define: false */
    define(['jquery'], function($) {
    	"use strict";
    	var wdnProp = 'UA-3203435-1';
    	var unlDomain = '.unl.edu';
    	var Plugin;
    	var thisURL = String(window.location);
    
    	var gaWdnName = 'wdn';
    	var gaWdn = gaWdnName + '.';
    
    	// ga.js method for getting default tracker (with set account)
    	var getDefaultGATracker = function() {
    		var tracker = _gat._getTrackerByName();
    		if (tracker._getAccount() !== 'UA-XXXXX-X') {
    			return tracker;
    		}
    
    		return undefined;
    	};
    
    	// analytics.js method for getting default tracker
    	var getDefaultAnalyticsTracker = function() {
    		return ga.getByName('t0');
    	};
    
    	Plugin = {
    		initialize : function() {
    			ga('create', wdnProp, {
    				name: gaWdnName,
    				cookieDomain: unlDomain,
    				allowLinker: true
    			});
    			Plugin.callTrackPageview();
    		},
    
    		callTrackPageview: function(thePage, trackInWDNAccount){
    			var action = 'pageview', method = 'send', legacyMethod = '_trackPageview';
    
    			if (!thePage) {
    				ga(gaWdn+method, action);
    				return;
    			}
    
    			if (trackInWDNAccount !== false) {
    				trackInWDNAccount = true;
    			}
    
    			// First, track in the wdn analytics
    			if (trackInWDNAccount) {
    				ga(gaWdn+method, action, thePage);
    			}
    
    			// Second, track in local site analytics
    			try {
    				_gaq.push(function() {
    					var tracker = getDefaultGATracker();
    					if (tracker) {
    						tracker[legacyMethod](thePage);
    					}
    				});
    
    				ga(function() {
    					var tracker = getDefaultAnalyticsTracker();
    					if (tracker) {
    						tracker[method](action, thePage);
    					}
    				});
    			} catch(e) {}
    		},
    
    		callTrackEvent: function(category, evtaction, label, value, noninteraction) {
    			var action = 'event', method = 'send', legacyMethod = '_trackEvent', evtOpt;
    
    			if (noninteraction !== true) {
    				noninteraction = false;
    			}
    
    			evtOpt = {
    				eventCategory: category,
    				eventAction: evtaction,
    				eventLabel: label,
    				eventValue: value,
    				nonInteraction: noninteraction
    			};
    
    			ga(gaWdn+method, action, evtOpt);
    
    			try {
    				_gaq.push(function() {
    					var tracker = getDefaultGATracker(), legacyValue = value;
    					if (tracker) {
    						if (typeof value !== "undefined") {
    							legacyValue = Math.floor(value);
    						}
    
    						tracker[legacyMethod](category, evtaction, label, legacyValue, noninteraction);
    					}
    				});
    
    				ga(function() {
    					var tracker = getDefaultAnalyticsTracker();
    					if (tracker) {
    						tracker[method](action, evtOpt);
    					}
    				});
    			} catch(e) {}
    		},
    
    		callTrackTiming: function(category, variable, value, label, sampleRate) {
    			var action = 'timing', method = 'send', legacyMethod = '_trackTiming';
    
    			ga(gaWdn+method, action, category, variable, value, label);
    
    			try {
    				_gaq.push(function() {
    					var tracker = getDefaultGATracker();
    					if (tracker) {
    						tracker[legacyMethod](category, variable, value, label, sampleRate);
    					}
    				});
    
    				ga(function() {
    					var tracker = getDefaultAnalyticsTracker();
    					if (tracker) {
    						tracker[method](action, category, variable, value, label);
    					}
    				});
    
    			} catch (e) {}
    		}
    	};
    
    	return Plugin;
    });