Last active
January 31, 2018 03:52
-
-
Save dyroffk/bfee9b73ad86c15ca3f18efca7e43fc0 to your computer and use it in GitHub Desktop.
Eloqua Tracking Script deconstructed / unminified (from https://img.en25.com/i/elqCfg.min.js)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
// b - site id | |
var b = "", | |
_SITE_ID = b, | |
N = new Date(20020101), | |
O = new Date, | |
g = O.getMilliseconds(), | |
_MS = g, | |
r = N.getTimezoneOffset(), | |
_TIMEZONE = r, | |
l = window, | |
q = document, | |
z = 0, | |
_OPTIN_DISABLED = z, | |
m = 1, | |
_OPTIN_ALL = m, | |
f = 2, | |
_OPTIN_BY_COUNTRY = f, | |
// c - eloqua visitor GUID | |
c = "", | |
_VISITOR_GUID = c, | |
// n - BKUT cookie value -- used w/ first party cookie tracking | |
n = "", | |
_BKUT = n, | |
// B - Eloqua visitor endpoint | |
B = "/visitor/v200/svrGP", | |
_VISITOR_ENDPOINT = B, | |
// k - tracking domain | |
k = "eloqua.com", | |
_TRACKING_DOMAIN = k, | |
// d - tracking url | |
d = "", | |
_TRACKING_URL = d, | |
// e - extra query params? | |
e = "", | |
_FIRST_PARTY_QUERY_PARAMS = e; | |
// objectUndefined? | |
function a(a) { | |
return typeof a === "undefined" || null === a || a === "" | |
} | |
var _IS_BLANK = a; | |
function J(a) { | |
try { | |
return typeof a === "string" && decodeURI(a) !== a | |
} catch (b) { | |
return false | |
} | |
} | |
var _IS_ENCODED = J; | |
// Get document referer | |
function p(b) { | |
if (_IS_BLANK(_SITE_ID)) | |
if (document.referrer) b = encodeURI(document.referrer); | |
else b = "elqNone"; | |
return b | |
} | |
var _GET_REFERER = p; | |
function K(j, i) { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID)) { | |
var h = _TRACKING_URL + "?pps=50&siteid=" + b + "&DLKey=" + encodeURIComponent(j) + "&DLLookup=" + encodeURIComponent(i) + "&ms=" + g + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_VISITOR_GUID)) h += "&elqGUID=" + _VISITOR_GUID; | |
// Inject PPS50 request into DOM | |
console.log("ELOQUA - PPS50"); | |
var f = document.createElement("script"); | |
f.type = "text/javascript"; | |
f.src = h; | |
document.getElementsByTagName("head")[0].appendChild(f) | |
} | |
} | |
var _INJECT_PPS50_REQUEST = K; | |
var _ELQ_DATA_LOOKUP = K; | |
// elqGetCustomerGUID | |
function H() { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID)) { | |
var h = _TRACKING_URL + "?pps=70&siteid=" + _SITE_ID + "&ref=" + encodeURI(document.referrer) + "&ms=" + g + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_VISITOR_GUID)) h += "&elqGUID=" + _VISITOR_GUID; | |
// Inject PPS70 request into DOM | |
var f = document.createElement("script"); | |
f.type = "text/javascript"; | |
f.src = h; | |
document.getElementsByTagName("head")[0].appendChild(f) | |
} | |
} | |
var _ElqGetCustomerGUID = H; | |
// Track page view | |
function j(s, k, optin_flag) { | |
var i = ""; | |
if (!a(d) && !a(b)) { | |
if (_FIRST_PARTY_QUERY_PARAMS != "") { | |
var q = h("OPTIN"); | |
if (q != null) | |
if (q == "0") return; | |
else if (q == "1") i += "&isOptedIn=1" | |
} | |
referer = _GET_REFERER(k); | |
if (!_IS_BLANK(optin_flag)) | |
if (optin_flag === _OPTIN_BY_COUNTRY) i += "&optin=country"; | |
else if (optin_flag === _OPTIN_ALL) i += "&optin=all"; | |
else if (optin_flag === _OPTIN_DISABLED) i += "optin=disabled"; | |
var t = new Image(1, 1); | |
if (!_IS_BLANK(s)) { | |
var j = _TRACKING_URL + "?pps=3&siteid=" + _SITE_ID + "&ref=" + encodeURI(s) + "&ref2=" + referer + "&tzo=" + r + "&ms=" + g + i + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_VISITOR_GUID)) j += "&elqGUID=" + _VISITOR_GUID; | |
j += _SET_BKUUIDSWAP(_BKUT); | |
t.src = j | |
} else { | |
var j = _TRACKING_URL + "?pps=3&siteid=" + _SITE_ID + "&ref2=" + referer + "&tzo=" + r + "&ms=" + g + i + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_VISITOR_GUID)) j += "&elqGUID=" + _VISITOR_GUID; | |
j += _SET_BKUUIDSWAP(_BKUT); | |
t.src = j | |
} | |
} | |
} | |
var _TRACK_PAGE_VIEW = j; | |
// TrackPageView | |
function I(b, optional_page) { | |
_TRACK_PAGE_VIEW(b, optional_page, _OPTIN_DISABLED) | |
} | |
var _TRACK_PAGE_OPTIN_DISABLED = I; | |
function u(b, a) { | |
_TRACK_PAGE_VIEW(b, a, f) | |
} | |
var _TRACK_PAGE_OPTIN_BY_COUNTRY = u; | |
function v(b, a) { | |
_TRACK_PAGE_VIEW(b, a, m) | |
} | |
var _TRACK_PAGE_OPTIN_ALL = v; | |
function i(pps_num) { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID) && !_IS_BLANK(pps_num)) { | |
if (pps_num == 40 && _FIRST_PARTY_QUERY_PARAMS != "") { | |
var optin_cookie = _GET_COOKIE_VAL("OPTIN"); | |
if (optin_cookie != null) | |
if (optin_cookie == "0") return _INJECT_SCRIPT("function elqGetOptOutStatus(){ return 0; }"); | |
else if (optin_cookie == "1") return _INJECT_SCRIPT("function elqGetOptOutStatus(){ return 1; }") | |
} | |
if ( pps_num != 43 && pps_num != 44 || _FIRST_PARTY_QUERY_PARAMS == "") { | |
elqOptActionSrc = _TRACKING_URL + "?pps=" + encodeURIComponent(pps_num) + "&siteid=" + _SITE_ID + "&ref=" + encodeURI(location.href) + "&ms=" + _MS + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_VISITOR_GUID)) elqOptActionSrc += "&elqGUID=" + _VISITOR_GUID; | |
var j = document.createElement("script"); | |
j.type = "text/javascript"; | |
j.src = elqOptActionSrc; | |
document.getElementsByTagName("head")[0].appendChild(j) | |
} | |
} | |
} | |
var _SET_OPTIN = i; | |
function y(b) { | |
var a = document.createElement("script"); | |
a.type = "text/javascript"; | |
a.appendChild(document.createTextNode(b)); | |
document.getElementsByTagName("head")[0].appendChild(a) | |
} | |
var _INJECT_SCRIPT = y; | |
// Set ELQSITEVISITED & send PPS45 | |
function t(optin_flag, _this, c) { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID)) | |
if (_IS_NEW_VISITOR()) { | |
// ELQSITEVISITED cookie used to prevent strict-mode opt-in banner from displaying more than once | |
_SET_COOKIE("ELQSITEVISITED", "YES"); | |
_INJECT_PPS45_REQUEST(optin_flag, _this, c) | |
} else if (optin_flag == _OPTIN_BY_COUNTRY) _TRACK_PAGE_OPTIN_BY_COUNTRY(_this, c); // If Opt-in by country (g=2) | |
else _TRACK_PAGE_OPTIN_ALL(_this, c) | |
} | |
var _TRACK_THIRD_PARTY_PAGE_VIEW = t; | |
function s(optin_flag, _this, e) { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID)) { | |
var optin_cookie = _GET_COOKIE_VAL("OPTIN"); | |
if (optin_cookie != null) | |
if (optin_cookie == "0") return; | |
else optin_cookie == "1" && _TRACK_PAGE_VIEW(_this, e, optin_flag); | |
else if (_IS_NEW_VISITOR()) { | |
// ELQSITEVISITED cookie used to prevent strict-mode opt-in banner from displaying more than once | |
_SET_COOKIE("ELQSITEVISITED", "YES"); | |
if (optin_flag == _OPTIN_BY_COUNTRY) _INJECT_PPS45_REQUEST(optin_flag, _this, e); // If display banner by country | |
else elqCreateOptInBanner() | |
} else optin_flag == _OPTIN_BY_COUNTRY && _TRACK_PAGE_VIEW(_this, e, optin_flag) // If display banner by country | |
} | |
} | |
var _TRACK_FIRST_PARTY_PAGE_VIEW = s; | |
// Inject script request to check optin status? | |
function w(optin_flag, k, i) { | |
i = _GET_REFERER(i); | |
var h = _TRACKING_URL + "?pps=45&siteid=" + _SITE_ID + _FIRST_PARTY_QUERY_PARAMS; | |
if (!_IS_BLANK(_TRACKING_DOMAIN)) h += "&ref=" + encodeURI(_TRACKING_DOMAIN); | |
h += "&ref2=" + i + "&tzo=" + _TIMEZONE + "&ms=" + _MS; | |
if (optin_flag == _OPTIN_BY_COUNTRY) h += "&optin=country"; | |
else h += "&optin=all"; | |
if (!_IS_BLANK(_VISITOR_GUID)) h += "&elqGUID=" + _VISITOR_GUID; | |
var j = document.createElement("script"); | |
j.type = "text/javascript"; | |
j.src = h; | |
document.getElementsByTagName("head")[0].appendChild(j) | |
} | |
var _INJECT_PPS45_REQUEST = w; | |
// elqTrackPageViewDisplayOptInBannerByCountry | |
// a - likely empty array since no args required | |
function E(_this, a) { | |
// f = 2 | |
if (_FIRST_PARTY_QUERY_PARAMS != "") _TRACK_FIRST_PARTY_PAGE_VIEW(_OPTIN_BY_COUNTRY, _this, a); | |
else _TRACK_THIRD_PARTY_PAGE_VIEW(_OPTIN_BY_COUNTRY, _this, a) | |
} | |
var _TRACK_PAGE_VIEW_DISPLAY_OPTIN_BY_COUNTRY = E; | |
// elqTrackPageViewDisplayOptInBannerForAll | |
function F(_this, a) { | |
// m = 1 | |
if (_FIRST_PARTY_QUERY_PARAMS != "") _TRACK_FIRST_PARTY_PAGE_VIEW(_OPTIN_ALL, _this, a); | |
else _TRACK_THIRD_PARTY_PAGE_VIEW(_OPTIN_ALL, _this, a) | |
} | |
var _TRACK_PAGE_VIEW_DISPLAY_OPTIN_ALL = F; | |
// Set cookie on document | |
function A(b, a) { | |
document.cookie = b + "=" + a; | |
document.cookie += ";path=/; secure; HttpOnly; " | |
} | |
var _SET_COOKIE = A; | |
// Return cookie subvalue | |
function C(full_cookie, cookie_name) { | |
if (full_cookie == "") return null; | |
var b = full_cookie.indexOf("="); | |
if (b > 0) { | |
var d = full_cookie.substr(0, b); | |
if (d.trim() == cookie_name) return full_cookie.substr(b + 1) | |
} | |
return null | |
} | |
var _GET_COOKIE_SUBVAL = C; | |
// Get Eloqua Cookie value | |
function h(cookie_name) { | |
for (var b = document.cookie.split(";"), a = 0; a < b.length; a++) { | |
elqCookieValue = _GET_COOKIE_SUBVAL(b[a], cookie_name); | |
if (elqCookieValue != null) return unescape(elqCookieValue) | |
} | |
return null | |
} | |
var _GET_COOKIE_VAL = h; | |
// Get cookie value? | |
function G(cookie_name, subcookie_name) { | |
var cookie = _GET_COOKIE_VAL(cookie_name); | |
if (cookie != null) | |
for (var c = cookie.split("&"), b = 0; b < c.length; b++) { | |
cookie = _GET_COOKIE_SUBVAL(c[b], subcookie_name); | |
if (cookie != null) return cookie | |
} | |
return null | |
} | |
var _GET_SUBCOOKIE_VALUE = G; | |
// Check ELQSITEVISITED cookie for whether visitor has been here before? | |
function x() { | |
var a = _GET_COOKIE_VAL("ELQSITEVISITED"); | |
return a == null || a != "YES" | |
} | |
var _IS_NEW_VISITOR = x; | |
// Create bkuuidSwapTime query param | |
function o(b) { | |
var c = ""; | |
if (!_IS_BLANK(b)) c += "&bkuuidSwapTime=" + encodeURIComponent(b); | |
return c | |
} | |
var _SET_BKUUIDSWAP = o; | |
// Check if a is an integer | |
function P(a) { | |
return !isNaN(a) && parseInt(Number(a)) == a && !isNaN(parseInt(a, 10)) | |
} | |
var _IS_INT = P; | |
var M = function() { | |
this.push = function() { | |
for (var a = 0; a < arguments.length; a++) try { | |
if (typeof arguments[a] === "function") arguments[a](); | |
else switch (arguments[a][0]) { | |
case "elqSetRootDomain": | |
_TRACKING_DOMAIN = encodeURIComponent(arguments[a][1]); | |
var port; | |
if (arguments[a][2] != undefined && _IS_INT(arguments[a][2])) { | |
port = arguments[a][2]; | |
_TRACKING_DOMAIN = _TRACKING_DOMAIN + ":" + port | |
} | |
_TRACKING_URL = "https://s" + _SITE_ID + ".t." + _TRACKING_DOMAIN + _VISITOR_ENDPOINT; | |
break; | |
case "elqSetSiteId": | |
_SITE_ID = encodeURIComponent(arguments[a][1]); | |
_TRACKING_URL = "https://s" + _SITE_ID + ".t." + _TRACKING_DOMAIN + _VISITOR_ENDPOINT; | |
break; | |
case "elqTrackPageView": | |
_TRACK_PAGE_OPTIN_DISABLED.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqVisitorGuid": | |
_VISITOR_GUID = encodeURIComponent(arguments[a][1]); | |
break; | |
case "elqTrackPageViewOptinByCountry": | |
_TRACK_PAGE_OPTIN_BY_COUNTRY.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqTrackPageViewOptinAll": | |
_TRACK_PAGE_OPTIN_ALL.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqTrackPageViewDisplayOptInBannerByCountry": | |
_TRACK_PAGE_VIEW_DISPLAY_OPTIN_BY_COUNTRY.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqTrackPageViewDisplayOptInBannerForAll": | |
_TRACK_PAGE_VIEW_DISPLAY_OPTIN_ALL.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqDataLookup": | |
_ELQ_DATA_LOOKUP.apply(this, arguments[a].slice(1)); | |
break; | |
case "elqGetCustomerGUID": | |
_ElqGetCustomerGUID.apply(this); | |
break; | |
case "elqOptStatus": | |
// Sets global elqGetOptOutStatus function | |
_SET_OPTIN(40); | |
break; | |
case "elqOptIn": | |
_SET_OPTIN(41); | |
break; | |
case "elqOptOut": | |
_SET_OPTIN(42); | |
break; | |
case "elqGlobalOptIn": | |
// This appears to be a NOOP? | |
_SET_OPTIN(43); | |
break; | |
case "elqGlobalOptOut": | |
// This appears to be a NOOP? | |
_SET_OPTIN(44); | |
break; | |
case "elqUseFirstPartyCookie": | |
_FIRST_PARTY_QUERY_PARAMS = "&firstPartyCookieDomain=" + encodeURIComponent(arguments[a][1]); | |
var f = _GET_SUBCOOKIE_VALUE("ELOQUA", "GUID"); | |
if (f != null) _VISITOR_GUID = encodeURIComponent(f); | |
_BKUT = _GET_COOKIE_VAL("BKUT") | |
} | |
} catch (j) {} | |
} | |
}, | |
L = window._elqQ; | |
window._elqQ = new M; | |
window._elqQ.push.apply(window._elqQ, L); | |
function D(i, j, h) { | |
if (!_IS_BLANK(_TRACKING_URL) && !_IS_BLANK(_SITE_ID) && !_IS_BLANK(i)) { | |
h = p(h); | |
var f = d + "?pps=17&siteid=" + b + "&elq=" + encodeURIComponent(j || "") + "&ref=" + encodeURI(i) + "&ref2=" + h + "&ms=" + g; | |
if (!_IS_BLANK(_VISITOR_GUID)) f += "&elqGUID=" + _VISITOR_GUID; | |
f += _SET_BKUUIDSWAP(_BKUT); | |
if (f.length <= 2036) { | |
var k = new Image(1, 1); | |
k.src = f | |
} else { | |
try { | |
var e = q.createElement("iframe") | |
} catch (l) { | |
e = "<iframe src='" + f + "' width='0' height='0' style='display:none;visibility:hidden;'></iframe>"; | |
q.body.innerHTML += e; | |
return | |
} | |
e.height = "0"; | |
e.width = "0"; | |
e.style.display = "none"; | |
e.style.visibility = "hidden"; | |
q.body.appendChild(e); | |
e.src = f | |
} | |
} | |
} | |
var _TRACK_EVENT = D; | |
window._elq = { | |
trackEvent: function(a, b, c) { | |
_TRACK_EVENT(a, b, c) | |
}, | |
trackOutboundLink: function(b, f, g) { | |
_TRACK_EVENT(b.href, f, g); | |
var d = _IS_ENCODED(b.href) ? b.href : encodeURI(b.href), | |
c, e = b.getAttribute("target"); | |
if (_IS_BLANK(e)) c = 'document.location = "' + d + '"'; | |
else c = 'window.open("' + d + '", "' + encodeURIComponent(e) + '")'; | |
setTimeout(c, 1e3) | |
} | |
} | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment