Skip to content

Instantly share code, notes, and snippets.

@faforty
Created February 11, 2019 04:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save faforty/1ef26eb5a324f79381283e592ac9335a to your computer and use it in GitHub Desktop.
Save faforty/1ef26eb5a324f79381283e592ac9335a to your computer and use it in GitHub Desktop.
utm parse and add to links
function getRefQueryParam(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
let utmParamQueryString = '';
let utmParamQueryStringTrimmed = '';
(function () {
let utm_source = getRefQueryParam('utm_source');
let utm_medium = getRefQueryParam('utm_medium');
let utm_content = getRefQueryParam('utm_content');
let utm_campaign = getRefQueryParam('utm_campaign');
let utm_term = getRefQueryParam('utm_term');
let roistat = getRefQueryParam('roistat');
let roistat_referrer = getRefQueryParam('roistat_referrer');
let roistat_pos = getRefQueryParam('roistat_pos');
if (utm_source) {
utmParamQueryString += '&utm_source=' + utm_source;
}
if (utm_medium) {
utmParamQueryString += '&utm_medium=' + utm_medium;
}
if (utm_content) {
utmParamQueryString += '&utm_content=' + utm_content;
}
if (utm_campaign) {
utmParamQueryString += '&utm_campaign=' + utm_campaign;
}
if (utm_term) {
utmParamQueryString += '&utm_term=' + utm_term;
}
if (roistat) {
utmParamQueryString += '&roistat=' + roistat;
}
if (roistat_referrer) {
utmParamQueryString += '&roistat_referrer=' + roistat_referrer;
}
if (roistat_pos) {
utmParamQueryString += '&roistat_pos=' + roistat_pos;
}
if (utmParamQueryString.length > 0) {
utmParamQueryString = utmParamQueryString.substring(1);
utmParamQueryStringTrimmed = utmParamQueryString;
utmParamQueryString = '?' + utmParamQueryString;
}
})();
var navLinks = document.querySelectorAll('body a');
navLinks.forEach(function (item) {
item.href += utmParamQueryString;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment