UNPKG

@analytics/original-source-plugin

Version:

Save original referral source of visitor plugin for 'analytics' pkg

3 lines (2 loc) 1.94 kB
var analyticsOriginalSource=function(r,e,i,n){function t(){return t=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(r[n]=i[n])}return r},t.apply(this,arguments)}function a(r){var i={utmcsr:"source",utmcmd:"medium",utmccn:"campaign",utmcct:"content",utmctr:"term",utmgclid:"gclid",utmdclid:"dclid"},n=r?r.split("|"):[];return n.reduce(function(r,t,a){var o=n[a].split("="),c=o[0].split(".").pop();return i[c]?r[""+i[c]]=e.decodeUri(o[1]):void 0===t[c]&&(r[c]=e.decodeUri(o[1])),r},{})}var o={SET_ORIGINAL_SOURCE:"setOriginalSource"},c={storage:i.LOCAL_STORAGE,originalSourceKey:"__user_original_source",originalLandingPageKey:"__user_original_landing_page"};function u(r){void 0===r&&(r={});var t=Object.assign({},c,r),o=t.referrer,u=i.getItem(t.originalSourceKey,t.storage);if(u)return a(u);var s=i.getItem("__utmz",i.COOKIE);if(s){var l=a(s);if(l)return g(l,t),l}var d=n.isBrowser?o||document.referrer:"",f=e.parseReferrer(d);return g(f,t),f}function g(r,e){i.setItem(e.originalSourceKey,function(r){if(n.isObject(r))return Object.keys(r).reduce(function(e,i,n){return e+(n?"|":"")+i+"="+r[i]},"")}(r),e.storage)}function s(r){void 0===r&&(r={});var e=Object.assign({},c,r),t=e.originalLandingPageKey,a={storage:e.storage},o=i.getItem(t,a);if(o)return o;var u=n.isBrowser?window.location.href:"";return i.setItem(t,u,a),u}return r.getOriginalLandingPage=s,r.getOriginalSource=u,r.originalSourcePlugin=function(r){return void 0===r&&(r={}),{name:"original-source",EVENTS:o,config:t({},c,r),bootstrap:function(r){var e=r.config;r.instance.dispatch({type:o.SET_ORIGINAL_SOURCE,originalSource:u(e),originalLandingPage:s(e)})},reset:function(r){var e=r.instance;e.storage.removeItem(c.originalSourceKey),e.storage.removeItem(c.originalLandingPageKey)}}},r}({},analyticsUtils,storageUtils,typeUtils); //# sourceMappingURL=original-source-plugin.js.map