object.hasCookies = function(testCookieName) { var cookieName = testCookieName || 'testcookie'; if (lodash.isUndefined(navigatorAlias.cookieEnabled)) { cookie.cookie(cookieName, '1'); return cookie.cookie(cookieName) === '1' ? '1' : '0'; } return navigatorAlias.cookieEnabled ? '1' : '0'; };
/* * Attaches common web fields to every request * (resolution, url, referrer, etc.) * Also sets the required cookies. */ function addBrowserData(sb) { var nowTs = Math.round(new Date().getTime() / 1000), idname = getSnowplowCookieName('id'), sesname = getSnowplowCookieName('ses'), ses = getSnowplowCookieValue('ses'), // aka cookie.cookie(sesname) id = loadDomainUserIdCookie(), _domainUserId = id[1], // We could use the global (domainUserId) but this is better etiquette createTs = id[2], visitCount = id[3], currentVisitTs = id[4], lastVisitTs = id[5]; if (configDoNotTrack && configUseCookies && configWriteCookies) { cookie.cookie(idname, '', -1, configCookiePath, configCookieDomain); cookie.cookie(sesname, '', -1, configCookiePath, configCookieDomain); return; } // New session? if (!ses && configUseCookies) { // New session (aka new visit) visitCount++; // Update the last visit timestamp lastVisitTs = currentVisitTs; } // Build out the rest of the request sb.add('vp', detectors.detectViewport()); sb.add('ds', detectors.detectDocumentSize()); sb.add('vid', visitCount); sb.add('duid', _domainUserId); // Set to our local variable sb.add('fp', userFingerprint); sb.add('uid', businessUserId); // Adds with custom conditions if (configReferrerUrl.length) { sb.add('refr', purify(configReferrerUrl)); } // Add the page URL last as it may take us over the IE limit (and we don't always need it) sb.add('url', purify(configCustomUrl || locationHrefAlias)); // Update cookies if (configUseCookies && configWriteCookies) { setDomainUserIdCookie(_domainUserId, createTs, visitCount, nowTs, lastVisitTs); cookie.cookie(sesname, '*', configSessionCookieTimeout, configCookiePath, configCookieDomain); } }
/* * Sets the Visitor ID cookie: either the first time loadDomainUserIdCookie is called * or when there is a new visit or a new page view */ function setDomainUserIdCookie(_domainUserId, createTs, visitCount, nowTs, lastVisitTs) { cookie.cookie(getSnowplowCookieName('id'), _domainUserId + '.' + createTs + '.' + visitCount + '.' + nowTs + '.' + lastVisitTs, configVisitorCookieTimeout, configCookiePath, configCookieDomain); }
/* * Cookie getter. */ function getSnowplowCookieValue(cookieName) { return cookie.cookie(getSnowplowCookieName(cookieName)); }
setUserIdFromCookie: function(cookieName) { businessUserId = cookie.cookie(cookieName); },