// Cookie length in days let iCookieLength = 30; // Name of the first party cookie to utilise for last click referrer de-duplication let sCookieName = 'source'; // The parameter used by networks and other marketing channels to tell you who drove the traffic let sSourceParameterName = 'utm_source'; let _getQueryStringValue = function (sParameterName) { let aQueryStringPairs = document.location.search.substring(1).split('&'); for (let i = 0; i < aQueryStringPairs.length; i++) { let aQueryStringParts = aQueryStringPairs[i].split('='); if (sParameterName.toLowerCase() === aQueryStringParts[0].toLowerCase()) { return aQueryStringParts[1]; } } }; let _setCookie = function (sCookieName, sCookieContents, iCookieLength) { let dCookieExpires = new Date(); dCookieExpires.setTime(dCookieExpires.getTime() + (iCookieLength * 24 * 60 * 60 * 1000)); document.cookie = sCookieName + '=' + sCookieContents + '; expires=' + dCookieExpires.toGMTString() + '; path=/;'; }; if (_getQueryStringValue(sSourceParameterName)) { _setCookie(sCookieName, _getQueryStringValue(sSourceParameterName), iCookieLength); } else if (_getQueryStringValue('gclid')) { _setCookie(sCookieName, 'googleAds', iCookieLength); } else if (_getQueryStringValue('fbclid')) { _setCookie(sCookieName, 'facebook', iCookieLength); } else if (_getQueryStringValue('msclid')) { _setCookie(sCookieName, 'bing', iCookieLength); } else if (_getQueryStringValue('insid')) { _setCookie(sCookieName, 'instagram_stories', iCookieLength); }