EnPulse
Pulse tracking JS
by Oliver Kelso
JavaScript
var pulse = {
config: {
dc: "//ens-activatesandbox.activate.ensighten.com/no-content", // pulse gif url
dl: window.hp_dataLayer, // datalayer object
},
params: {},
/**
* Encode string
*/
pEncode: function(string){
if(typeof encodeURIComponent == "function"){
return encodeURIComponent(string);
}else{
return escape(string);
}
},
/**
* Parse parameter string and encode values
*/
parseParams: function(string){
if(typeof string === 'string'){
string = (string.match("/;+$/")) ? string.replace(/;+$/, "") : string; // remove trailing semicolon
var parsed = string.split(";"); // split string on semicolon
var arrayLength = parsed.length;
for(var i = 0; i < arrayLength; i++){
if(parsed[i] !== "undefined"){
parsed[i] = this.pEncode(parsed[i]); // encode array values
}
}
return parsed.join(";"); // return string
}else{
return string;
}
},
/**
* Page data
*/
collect: function(){
this.params = {};
this.params.ti = document.title || ""; // page title
this.params.sr = screen.width + "x" + screen.height; // screen resolution
this.params.ref = document.referrer || ""; // referrer
this.params.ul = navigator.language || navigator.userLanguage || navigator.browserLanguage || "unknown"; // browser language
this.params.cd = screen.colorDepth || "unknown"; // browser color depth
this.params.bs = this.bScreen();
this.params.sip = document.location.hostname; // current host name
this.params.uri = document.location.pathname; // current path
this.params.bh = new Date().getHours(); // current hour of the day
this.params.tz = new Date().getTimezoneOffset() / 60 * -1; //...