Skip to content

Instantly share code, notes, and snippets.

@raphaelcosta
Last active August 28, 2019 19:30
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 raphaelcosta/84e5de7d4ed9fcc5f614308d122addbd to your computer and use it in GitHub Desktop.
Save raphaelcosta/84e5de7d4ed9fcc5f614308d122addbd to your computer and use it in GitHub Desktop.
Wordpress utm_tracking
/** sourcebuster v1.1.1 **/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;"undefined"!=typeof window?r=window:"undefined"!=typeof global?r=global:"undefined"!=typeof self&&(r=self),r.sbjs=e()}}(function(){return function e(r,t,s){function n(a,i){if(!t[a]){if(!r[a]){var c="function"==typeof require&&require;if(!i&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var p=t[a]={exports:{}};r[a][0].call(p.exports,function(e){var t=r[a][1][e];return n(t?t:e)},p,p.exports,e,r,t,s)}return t[a].exports}for(var o="function"==typeof require&&require,a=0;a<s.length;a++)n(s[a]);return n}({1:[function(e,r,t){"use strict";var s=e("./init"),n={init:function(e){this.get=s(e),e&&e.callback&&"function"==typeof e.callback&&e.callback(this.get)}};r.exports=n},{"./init":6}],2:[function(e,r,t){"use strict";var s=e("./terms"),n=e("./helpers/utils"),o={containers:{current:"sbjs_current",current_extra:"sbjs_current_add",first:"sbjs_first",first_extra:"sbjs_first_add",session:"sbjs_session",udata:"sbjs_udata",promocode:"sbjs_promo"},service:{migrations:"sbjs_migrations"},delimiter:"|||",aliases:{main:{type:"typ",source:"src",medium:"mdm",campaign:"cmp",content:"cnt",term:"trm"},extra:{fire_date:"fd",entrance_point:"ep",referer:"rf"},session:{pages_seen:"pgs",current_page:"cpg"},udata:{visits:"vst",ip:"uip",agent:"uag"},promo:"code"},pack:{main:function(e){return o.aliases.main.type+"="+e.type+o.delimiter+o.aliases.main.source+"="+e.source+o.delimiter+o.aliases.main.medium+"="+e.medium+o.delimiter+o.aliases.main.campaign+"="+e.campaign+o.delimiter+o.aliases.main.content+"="+e.content+o.delimiter+o.aliases.main.term+"="+e.term},extra:function(e){return o.aliases.extra.fire_date+"="+n.setDate(new Date,e)+o.delimiter+o.aliases.extra.entrance_point+"="+document.location.href+o.delimiter+o.aliases.extra.referer+"="+(document.referrer||s.none)},user:function(e,r){return o.aliases.udata.visits+"="+e+o.delimiter+o.aliases.udata.ip+"="+r+o.delimiter+o.aliases.udata.agent+"="+navigator.userAgent},session:function(e){return o.aliases.session.pages_seen+"="+e+o.delimiter+o.aliases.session.current_page+"="+document.location.href},promo:function(e){return o.aliases.promo+"="+n.setLeadingZeroToInt(n.randomInt(e.min,e.max),e.max.toString().length)}}};r.exports=o},{"./helpers/utils":5,"./terms":9}],3:[function(e,r,t){"use strict";var s=e("../data").delimiter;r.exports={encodeData:function(e){return encodeURIComponent(e).replace(/\!/g,"%21").replace(/\~/g,"%7E").replace(/\*/g,"%2A").replace(/\'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")},decodeData:function(e){try{return decodeURIComponent(e).replace(/\%21/g,"!").replace(/\%7E/g,"~").replace(/\%2A/g,"*").replace(/\%27/g,"'").replace(/\%28/g,"(").replace(/\%29/g,")")}catch(r){try{return unescape(e)}catch(t){return""}}},set:function(e,r,t,s,n){var o,a;if(t){var i=new Date;i.setTime(i.getTime()+60*t*1e3),o="; expires="+i.toGMTString()}else o="";a=s&&!n?";domain=."+s:"",document.cookie=this.encodeData(e)+"="+this.encodeData(r)+o+a+"; path=/"},get:function(e){for(var r=this.encodeData(e)+"=",t=document.cookie.split(";"),s=0;s<t.length;s++){for(var n=t[s];" "===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(r))return this.decodeData(n.substring(r.length,n.length))}return null},destroy:function(e,r,t){this.set(e,"",-1,r,t)},parse:function(e){var r=[],t={};if("string"==typeof e)r.push(e);else for(var n in e)e.hasOwnProperty(n)&&r.push(e[n]);for(var o=0;o<r.length;o++){var a;t[this.unsbjs(r[o])]={},a=this.get(r[o])?this.get(r[o]).split(s):[];for(var i=0;i<a.length;i++){var c=a[i].split("="),u=c.splice(0,1);u.push(c.join("=")),t[this.unsbjs(r[o])][u[0]]=this.decodeData(u[1])}}return t},unsbjs:function(e){return e.replace("sbjs_","")}}},{"../data":2}],4:[function(e,r,t){"use strict";r.exports={parse:function(e){for(var r=this.parseOptions,t=r.parser[r.strictMode?"strict":"loose"].exec(e),s={},n=14;n--;)s[r.key[n]]=t[n]||"";return s[r.q.name]={},s[r.key[12]].replace(r.q.parser,function(e,t,n){t&&(s[r.q.name][t]=n)}),s},parseOptions:{strictMode:!1,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},getParam:function(e){for(var r={},t=e?e:window.location.search.substring(1),s=t.split("&"),n=0;n<s.length;n++){var o=s[n].split("=");if("undefined"==typeof r[o[0]])r[o[0]]=o[1];else if("string"==typeof r[o[0]]){var a=[r[o[0]],o[1]];r[o[0]]=a}else r[o[0]].push(o[1])}return r},getHost:function(e){return this.parse(e).host.replace("www.","")}}},{}],5:[function(e,r,t){"use strict";r.exports={escapeRegexp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},setDate:function(e,r){var t=e.getTimezoneOffset()/60,s=e.getHours(),n=r||0===r?r:-t;e.setHours(s+t+n);var o=e.getFullYear(),a=this.setLeadingZeroToInt(e.getMonth()+1,2),i=this.setLeadingZeroToInt(e.getDate(),2),c=this.setLeadingZeroToInt(e.getHours(),2),u=this.setLeadingZeroToInt(e.getMinutes(),2),p=this.setLeadingZeroToInt(e.getSeconds(),2);return o+"-"+a+"-"+i+" "+c+":"+u+":"+p},setLeadingZeroToInt:function(e,r){for(var t=e+"";t.length<r;)t="0"+t;return t},randomInt:function(e,r){return Math.floor(Math.random()*(r-e+1))+e}}},{}],6:[function(e,r,t){"use strict";var s=e("./data"),n=e("./terms"),o=e("./helpers/cookies"),a=e("./helpers/uri"),i=e("./helpers/utils"),c=e("./params"),u=e("./migrations");r.exports=function(e){function r(){var e;if("undefined"!=typeof y.utm_source||"undefined"!=typeof y.utm_medium||"undefined"!=typeof y.utm_campaign||"undefined"!=typeof y.utm_content||"undefined"!=typeof y.utm_term||"undefined"!=typeof y.gclid||"undefined"!=typeof y.yclid||"undefined"!=typeof y[h.campaign_param]||"undefined"!=typeof y[h.term_param]||"undefined"!=typeof y[h.content_param])g(),e=t(n.traffic.utm);else if(f(n.traffic.organic))g(),e=t(n.traffic.organic);else if(!o.get(s.containers.session)&&f(n.traffic.referral))g(),e=t(n.traffic.referral);else{if(o.get(s.containers.first)||o.get(s.containers.current))return o.get(s.containers.current);g(),e=t(n.traffic.typein)}return e}function t(e){switch(e){case n.traffic.utm:v=n.traffic.utm,x="undefined"!=typeof y.utm_source?y.utm_source:"undefined"!=typeof y.gclid?"google":"undefined"!=typeof y.yclid?"yandex":n.none,D="undefined"!=typeof y.utm_medium?y.utm_medium:"undefined"!=typeof y.gclid?"cpc":"undefined"!=typeof y.yclid?"cpc":n.none,k="undefined"!=typeof y.utm_campaign?y.utm_campaign:"undefined"!=typeof y[h.campaign_param]?y[h.campaign_param]:"undefined"!=typeof y.gclid?"google_cpc":"undefined"!=typeof y.yclid?"yandex_cpc":n.none,w="undefined"!=typeof y.utm_content?y.utm_content:"undefined"!=typeof y[h.content_param]?y[h.content_param]:n.none,C="undefined"!=typeof y.utm_term?y.utm_term:"undefined"!=typeof y[h.term_param]?y[h.term_param]:p()||n.none;break;case n.traffic.organic:v=n.traffic.organic,x=x||a.getHost(document.referrer),D=n.referer.organic,k=n.none,w=n.none,C=n.none;break;case n.traffic.referral:v=n.traffic.referral,x=x||a.getHost(document.referrer),D=D||n.referer.referral,k=n.none,w=a.parse(document.referrer).path,C=n.none;break;case n.traffic.typein:v=n.traffic.typein,x=h.typein_attributes.source,D=h.typein_attributes.medium,k=n.none,w=n.none,C=n.none;break;default:v=n.oops,x=n.oops,D=n.oops,k=n.oops,w=n.oops,C=n.oops}var r={type:v,source:x,medium:D,campaign:k,content:w,term:C};return s.pack.main(r)}function p(){var e=document.referrer;if(y.utm_term)return y.utm_term;if(!(e&&a.parse(e).host&&a.parse(e).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)))return!1;try{return a.getParam(a.parse(document.referrer).query).text}catch(r){return!1}}function f(e){var r=document.referrer;switch(e){case n.traffic.organic:return!!r&&m(r)&&d(r);case n.traffic.referral:return!!r&&m(r)&&l(r);default:return!1}}function m(e){if(h.domain){if(_)return a.getHost(e)!==a.getHost(j);var r=new RegExp("^(?:.*\\.)?"+i.escapeRegexp(j)+"$","i");return!a.getHost(e).match(r)}return a.getHost(e)!==a.getHost(document.location.href)}function d(e){var r="yandex",t="text",s="google",n=new RegExp("^(?:.*\\.)?"+i.escapeRegexp(r)+"\\..{2,9}$"),o=new RegExp(".*"+i.escapeRegexp(t)+"=.*"),c=new RegExp("^(?:www\\.)?"+i.escapeRegexp(s)+"\\..{2,9}$");if(a.parse(e).query&&a.parse(e).host.match(n)&&a.parse(e).query.match(o))return x=r,!0;if(a.parse(e).host.match(c))return x=s,!0;if(!a.parse(e).query)return!1;for(var u=0;u<h.organics.length;u++){if(a.parse(e).host.match(new RegExp("^(?:.*\\.)?"+i.escapeRegexp(h.organics[u].host)+"$","i"))&&a.parse(e).query.match(new RegExp(".*"+i.escapeRegexp(h.organics[u].param)+"=.*","i")))return x=h.organics[u].display||h.organics[u].host,!0;if(u+1===h.organics.length)return!1}}function l(e){if(!(h.referrals.length>0))return x=a.getHost(e),!0;for(var r=0;r<h.referrals.length;r++){if(a.parse(e).host.match(new RegExp("^(?:.*\\.)?"+i.escapeRegexp(h.referrals[r].host)+"$","i")))return x=h.referrals[r].display||h.referrals[r].host,D=h.referrals[r].medium||n.referer.referral,!0;if(r+1===h.referrals.length)return x=a.getHost(e),!0}}function g(){o.set(s.containers.current_extra,s.pack.extra(h.timezone_offset),b,j,_),o.get(s.containers.first_extra)||o.set(s.containers.first_extra,s.pack.extra(h.timezone_offset),b,j,_)}var h=c.fetch(e),y=a.getParam(),j=h.domain.host,_=h.domain.isolate,b=h.lifetime;u.go(b,j,_);var v,x,D,k,w,C;return function(){o.set(s.containers.current,r(),b,j,_),o.get(s.containers.first)||o.set(s.containers.first,o.get(s.containers.current),b,j,_);var e,t;o.get(s.containers.udata)?(e=parseInt(o.parse(s.containers.udata)[o.unsbjs(s.containers.udata)][s.aliases.udata.visits])||1,e=o.get(s.containers.session)?e:e+1,t=s.pack.user(e,h.user_ip)):(e=1,t=s.pack.user(e,h.user_ip)),o.set(s.containers.udata,t,b,j,_);var n;o.get(s.containers.session)?(n=parseInt(o.parse(s.containers.session)[o.unsbjs(s.containers.session)][s.aliases.session.pages_seen])||1,n+=1):n=1,o.set(s.containers.session,s.pack.session(n),h.session_length,j,_),h.promocode&&!o.get(s.containers.promocode)&&o.set(s.containers.promocode,s.pack.promo(h.promocode),b,j,_)}(),o.parse(s.containers)}},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(e,r,t){"use strict";var s=e("./data"),n=e("./helpers/cookies");r.exports={go:function(e,r,t){var o,a=this.migrations,i={l:e,d:r,i:t};if(n.get(s.containers.first)||n.get(s.service.migrations)){if(!n.get(s.service.migrations))for(o=0;o<a.length;o++)a[o].go(a[o].id,i)}else{var c=[];for(o=0;o<a.length;o++)c.push(a[o].id);var u="";for(o=0;o<c.length;o++)u+=c[o]+"=1",o<c.length-1&&(u+=s.delimiter);n.set(s.service.migrations,u,i.l,i.d,i.i)}},migrations:[{id:"1418474375998",version:"1.0.0-beta",go:function(e,r){var t=e+"=1",o=e+"=0",a=function(e,r,t){return r||t?e:s.delimiter};try{var i=[];for(var c in s.containers)s.containers.hasOwnProperty(c)&&i.push(s.containers[c]);for(var u=0;u<i.length;u++)if(n.get(i[u])){var p=n.get(i[u]).replace(/(\|)?\|(\|)?/g,a);n.destroy(i[u],r.d,r.i),n.destroy(i[u],r.d,!r.i),n.set(i[u],p,r.l,r.d,r.i)}n.get(s.containers.session)&&n.set(s.containers.session,s.pack.session(0),r.l,r.d,r.i),n.set(s.service.migrations,t,r.l,r.d,r.i)}catch(f){n.set(s.service.migrations,o,r.l,r.d,r.i)}}}]}},{"./data":2,"./helpers/cookies":3}],8:[function(e,r,t){"use strict";var s=e("./terms"),n=e("./helpers/uri");r.exports={fetch:function(e){var r=e||{},t={};if(t.lifetime=this.validate.checkFloat(r.lifetime)||6,t.lifetime=parseInt(30*t.lifetime*24*60),t.session_length=this.validate.checkInt(r.session_length)||30,t.timezone_offset=this.validate.checkInt(r.timezone_offset),t.campaign_param=r.campaign_param||!1,t.term_param=r.term_param||!1,t.content_param=r.content_param||!1,t.user_ip=r.user_ip||s.none,r.promocode?(t.promocode={},t.promocode.min=parseInt(r.promocode.min)||1e5,t.promocode.max=parseInt(r.promocode.max)||999999):t.promocode=!1,r.typein_attributes&&r.typein_attributes.source&&r.typein_attributes.medium?(t.typein_attributes={},t.typein_attributes.source=r.typein_attributes.source,t.typein_attributes.medium=r.typein_attributes.medium):t.typein_attributes={source:"(direct)",medium:"(none)"},r.domain&&this.validate.isString(r.domain)?t.domain={host:r.domain,isolate:!1}:r.domain&&r.domain.host?t.domain=r.domain:t.domain={host:n.getHost(document.location.hostname),isolate:!1},t.referrals=[],r.referrals&&r.referrals.length>0)for(var o=0;o<r.referrals.length;o++)r.referrals[o].host&&t.referrals.push(r.referrals[o]);if(t.organics=[],r.organics&&r.organics.length>0)for(var a=0;a<r.organics.length;a++)r.organics[a].host&&r.organics[a].param&&t.organics.push(r.organics[a]);return t.organics.push({host:"bing.com",param:"q",display:"bing"}),t.organics.push({host:"yahoo.com",param:"p",display:"yahoo"}),t.organics.push({host:"about.com",param:"q",display:"about"}),t.organics.push({host:"aol.com",param:"q",display:"aol"}),t.organics.push({host:"ask.com",param:"q",display:"ask"}),t.organics.push({host:"globososo.com",param:"q",display:"globo"}),t.organics.push({host:"go.mail.ru",param:"q",display:"go.mail.ru"}),t.organics.push({host:"rambler.ru",param:"query",display:"rambler"}),t.organics.push({host:"tut.by",param:"query",display:"tut.by"}),t.referrals.push({host:"t.co",display:"twitter.com"}),t.referrals.push({host:"plus.url.google.com",display:"plus.google.com"}),t},validate:{checkFloat:function(e){return!(!e||!this.isNumeric(parseFloat(e)))&&parseFloat(e)},checkInt:function(e){return!(!e||!this.isNumeric(parseInt(e)))&&parseInt(e)},isNumeric:function(e){return!isNaN(e)},isString:function(e){return"[object String]"===Object.prototype.toString.call(e)}}}},{"./helpers/uri":4,"./terms":9}],9:[function(e,r,t){"use strict";r.exports={traffic:{utm:"utm",organic:"organic",referral:"referral",typein:"typein"},referer:{referral:"referral",organic:"organic",social:"social"},none:"(none)",oops:"(Houston, we have a problem)"}},{}]},{},[1])(1)});
sbjs.init({
domain: "pipefy.com",
lifetime: 1,
typein_attributes: {
source: 'direct',
medium: 'none',
}
});
var queryObj = (function() {
// This function is anonymous, is executed immediately and
// the return value is assigned to QueryString!
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
// If first entry with this name
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = pair[1];
// If second entry with this name
} else if (typeof query_string[pair[0]] === "string") {
var arr = [query_string[pair[0]], pair[1]];
query_string[pair[0]] = arr;
// If third or later entry with this name
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
})();
var setCookie = function(cname, cvalue, exdays, domainName) {
var d = new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
var expires = "expires=" + d.toUTCString();
var domain = "domain=" + domainName;
document.cookie =
cname + "=" + cvalue + "; " + expires + ";" + domain + ";path=/";
};
var getCookie = function(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == " ") c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
};
var notEmpty = function() {
var cookies = {
utm_source: getCookie("utm_source"),
utm_medium: getCookie("utm_medium"),
utm_term: getCookie("utm_term"),
utm_content: getCookie("utm_content"),
utm_campaign: getCookie("utm_campaign"),
ref: getCookie("ref")
};
var cookiesValues = Object.keys(cookies).map(function(e) {
return cookies[e];
});
return cookiesValues.filter(function(el) {
return el != "";
});
};
var setPipefyCookie = function(name) {
if (name in queryObj) {
setCookie(name, queryObj[name], 60, ".pipefy.com");
}
};
if (notEmpty().length === 0) {
setPipefyCookie("utm_source");
setPipefyCookie("utm_content");
setPipefyCookie("utm_medium");
setPipefyCookie("utm_term");
setPipefyCookie("utm_campaign");
setPipefyCookie("ref");
}
var currentVisit = sbjs.get.current;
if (notEmpty().length === 0) {
if (currentVisit.typ === "organic") {
setCookie("utm_source", currentVisit.src, 60, ".pipefy.com");
setCookie("utm_medium", currentVisit.mdm, 60, ".pipefy.com");
if (currentVisit.trm !== "(none)") {
setCookie("utm_term", currentVisit.trm, 60, ".pipefy.com");
}
}
if (currentVisit.typ === "referral") {
setCookie("utm_source", currentVisit.src, 60, ".pipefy.com");
setCookie("utm_medium", currentVisit.mdm, 60, ".pipefy.com");
setCookie("utm_content", currentVisit.cnt, 60, ".pipefy.com");
}
if (currentVisit.typ === "typein") {
setCookie("utm_source", "direct", 60, ".pipefy.com");
}
}
if (getCookie("utm_source").length === 0) {
setCookie("utm_source", "direct", 60, ".pipefy.com");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment