@amplitude/plugin-web-attribution-browser
Advanced tools
Comparing version 2.0.6 to 2.0.7
import { Campaign } from '@amplitude/analytics-types'; | ||
import { Options } from './typings/web-attribution'; | ||
export declare const getStorageKey: (apiKey: string, postKey?: string, limit?: number) => string; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options) => boolean; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, isNewSession?: boolean) => boolean; | ||
export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean; | ||
@@ -6,0 +6,0 @@ export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-types").IdentifyEvent; |
@@ -19,3 +19,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
}; | ||
var isNewCampaign = function (current, previous, options) { | ||
var isNewCampaign = function (current, previous, options, isNewSession) { | ||
if (isNewSession === void 0) { isNewSession = true; } | ||
var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = tslib_1.__rest(current, ["referrer", "referring_domain"]); | ||
@@ -26,2 +27,6 @@ var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = tslib_1.__rest(_a, ["referrer", "referring_domain"]); | ||
} | ||
//In the same session, no referrer should not override or unset any persisting query params | ||
if (!isNewSession && !referrer && previous) { | ||
return false; | ||
} | ||
var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign); | ||
@@ -28,0 +33,0 @@ var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || ''); |
@@ -6,2 +6,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
var helpers_1 = require("./helpers"); | ||
var analytics_client_common_2 = require("@amplitude/analytics-client-common"); | ||
var webAttributionPlugin = function (options) { | ||
@@ -16,3 +17,3 @@ var _this = this; | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var pluginConfig, storage, storageKey, _b, currentCampaign, previousCampaign, campaignEvent; | ||
var pluginConfig, storage, storageKey, _b, currentCampaign, previousCampaign, isEventInNewSession, campaignEvent; | ||
return tslib_1.__generator(this, function (_c) { | ||
@@ -31,3 +32,4 @@ switch (_c.label) { | ||
_b = tslib_1.__read.apply(void 0, [_c.sent(), 2]), currentCampaign = _b[0], previousCampaign = _b[1]; | ||
if ((0, helpers_1.isNewCampaign)(currentCampaign, previousCampaign, pluginConfig)) { | ||
isEventInNewSession = (0, analytics_client_common_2.isNewSession)(config.sessionTimeout, config.lastEventTime); | ||
if ((0, helpers_1.isNewCampaign)(currentCampaign, previousCampaign, pluginConfig, isEventInNewSession)) { | ||
if (pluginConfig.resetSessionOnNewCampaign) { | ||
@@ -34,0 +36,0 @@ amplitude.setSessionId(Date.now()); |
import { Campaign } from '@amplitude/analytics-types'; | ||
import { Options } from './typings/web-attribution'; | ||
export declare const getStorageKey: (apiKey: string, postKey?: string, limit?: number) => string; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options) => boolean; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, isNewSession?: boolean) => boolean; | ||
export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean; | ||
@@ -6,0 +6,0 @@ export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-types").IdentifyEvent; |
@@ -16,3 +16,4 @@ import { __assign, __read, __rest } from "tslib"; | ||
}; | ||
export var isNewCampaign = function (current, previous, options) { | ||
export var isNewCampaign = function (current, previous, options, isNewSession) { | ||
if (isNewSession === void 0) { isNewSession = true; } | ||
var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = __rest(current, ["referrer", "referring_domain"]); | ||
@@ -23,2 +24,6 @@ var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = __rest(_a, ["referrer", "referring_domain"]); | ||
} | ||
//In the same session, no referrer should not override or unset any persisting query params | ||
if (!isNewSession && !referrer && previous) { | ||
return false; | ||
} | ||
var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign); | ||
@@ -25,0 +30,0 @@ var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || ''); |
import { __assign, __awaiter, __generator, __read } from "tslib"; | ||
import { CampaignParser } from '@amplitude/analytics-client-common'; | ||
import { createCampaignEvent, getDefaultExcludedReferrers, getStorageKey, isNewCampaign } from './helpers'; | ||
import { isNewSession } from '@amplitude/analytics-client-common'; | ||
export var webAttributionPlugin = function (options) { | ||
@@ -13,3 +14,3 @@ var _this = this; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var pluginConfig, storage, storageKey, _b, currentCampaign, previousCampaign, campaignEvent; | ||
var pluginConfig, storage, storageKey, _b, currentCampaign, previousCampaign, isEventInNewSession, campaignEvent; | ||
return __generator(this, function (_c) { | ||
@@ -28,3 +29,4 @@ switch (_c.label) { | ||
_b = __read.apply(void 0, [_c.sent(), 2]), currentCampaign = _b[0], previousCampaign = _b[1]; | ||
if (isNewCampaign(currentCampaign, previousCampaign, pluginConfig)) { | ||
isEventInNewSession = isNewSession(config.sessionTimeout, config.lastEventTime); | ||
if (isNewCampaign(currentCampaign, previousCampaign, pluginConfig, isEventInNewSession)) { | ||
if (pluginConfig.resetSessionOnNewCampaign) { | ||
@@ -31,0 +33,0 @@ amplitude.setSessionId(Date.now()); |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).amplitude={})}(this,(function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function r(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r}function n(e,t,r,n){return new(r||(r=Promise))((function(i,o){function u(e){try{f(n.next(e))}catch(e){o(e)}}function a(e){try{f(n.throw(e))}catch(e){o(e)}}function f(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(u,a)}f((n=n.apply(e,t||[])).next())}))}function i(e,t){var r,n,i,o,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(f){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(u=0)),u;)try{if(r=1,n&&(i=2&a[0]?n.return:a[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,a[1])).done)return i;switch(n=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,n=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(i=u.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){u=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){u.label=a[1];break}if(6===a[0]&&u.label<i[1]){u.label=i[1],i=a;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(a);break}i[2]&&u.ops.pop(),u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e],n=0}finally{r=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,f])}}}function o(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)u.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return u}var u,a,f,s=function(){var e,t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;return(null===(e=null==t?void 0:t.location)||void 0===e?void 0:e.search)?t.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var r=t.split("=",2),n=l(r[0]),i=l(r[1]);return i?(e[n]=i,e):e}),{}):{}},l=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},c="dclid",d="fbclid",p="gbraid",v="gclid",y="ko_click_id",h="li_fat_id",m="msclkid",_="rtd_cid",g="ttclid",b="twclid",E="wbraid",S={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,li_fat_id:void 0,msclkid:void 0,rtd_cid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},w=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){return[2,t(t(t(t({},S),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=s();return{utm_campaign:e.utm_campaign,utm_content:e.utm_content,utm_id:e.utm_id,utm_medium:e.utm_medium,utm_source:e.utm_source,utm_term:e.utm_term}},e.prototype.getReferrer=function(){var e,t,r={referrer:void 0,referring_domain:void 0};try{r.referrer=document.referrer||void 0,r.referring_domain=null!==(t=null===(e=r.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return r},e.prototype.getClickIds=function(){var e,t=s();return(e={})[c]=t[c],e[d]=t[d],e[p]=t[p],e[v]=t[v],e[y]=t[y],e[h]=t[h],e[m]=t[m],e[_]=t[_],e[g]=t[g],e[b]=t[b],e[E]=t[E],e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(u||(u={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(a||(a={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(f||(f={}));var P="AMP",O=function(e){if(Object.keys(e).length>1e3)return!1;for(var t in e){var r=e[t];if(!T(t,r))return!1}return!0},T=function(e,t){var r,n;if("string"!=typeof e)return!1;if(Array.isArray(t)){var i=!0;try{for(var o=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),u=o.next();!u.done;u=o.next()){var a=u.value;if(Array.isArray(a))return!1;if("object"==typeof a)i=i&&O(a);else if(!["number","string"].includes(typeof a))return!1;if(!i)return!1}}catch(e){r={error:e}}finally{try{u&&!u.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}}else{if(null==t)return!1;if("object"==typeof t)return O(t);if(!["number","string","boolean"].includes(typeof t))return!1}return!0},R=function(){function e(){this._propertySet=new Set,this._properties={}}return e.prototype.getUserProperties=function(){return t({},this._properties)},e.prototype.set=function(e,t){return this._safeSet(u.SET,e,t),this},e.prototype.setOnce=function(e,t){return this._safeSet(u.SET_ONCE,e,t),this},e.prototype.append=function(e,t){return this._safeSet(u.APPEND,e,t),this},e.prototype.prepend=function(e,t){return this._safeSet(u.PREPEND,e,t),this},e.prototype.postInsert=function(e,t){return this._safeSet(u.POSTINSERT,e,t),this},e.prototype.preInsert=function(e,t){return this._safeSet(u.PREINSERT,e,t),this},e.prototype.remove=function(e,t){return this._safeSet(u.REMOVE,e,t),this},e.prototype.add=function(e,t){return this._safeSet(u.ADD,e,t),this},e.prototype.unset=function(e){return this._safeSet(u.UNSET,e,"-"),this},e.prototype.clearAll=function(){return this._properties={},this._properties[u.CLEAR_ALL]="-",this},e.prototype._safeSet=function(e,t,r){if(this._validate(e,t,r)){var n=this._properties[e];return void 0===n&&(n={},this._properties[e]=n),n[t]=r,this._propertySet.add(t),!0}return!1},e.prototype._validate=function(e,t,r){return void 0===this._properties[u.CLEAR_ALL]&&(!this._propertySet.has(t)&&(e===u.ADD?"number"==typeof r:e===u.UNSET||e===u.REMOVE||T(t,r)))},e}(),N=function(e){var t=e.split(".");return t.length<=2?e:t.slice(t.length-2,t.length).join(".")},I=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=""),e.some((function(e){return e instanceof RegExp?e.test(t):e===t}))},A=function(e,r){var n,i,u=t(t({},S),e),a=Object.entries(u).reduce((function(e,t){var n,i=o(t,2),u=i[0],a=i[1];return e.setOnce("initial_".concat(u),null!==(n=null!=a?a:r.initialEmptyValue)&&void 0!==n?n:"EMPTY"),a?e.set(u,a):e.unset(u)}),new R);return n=a,t(t({},i),{event_type:f.IDENTIFY,user_properties:n.getUserProperties()})},x=function(e){var u=this;void 0===e&&(e={});var a={name:"@amplitude/plugin-web-attribution-browser",type:"before",setup:function(u,a){var f;return n(this,void 0,void 0,(function(){var n,s,l,c,d,p,v;return i(this,(function(i){switch(i.label){case 0:return n=t({initialEmptyValue:"EMPTY",resetSessionOnNewCampaign:!1,excludeReferrers:(_=null===(f=u.cookieOptions)||void 0===f?void 0:f.domain,g=_,g?(g.startsWith(".")&&(g=g.substring(1)),[new RegExp("".concat(g.replace(".","\\."),"$"))]):[])},e),u.loggerProvider.log("Installing @amplitude/plugin-web-attribution-browser."),s=u.cookieStorage,y=u.apiKey,void 0===(h="MKTG")&&(h=""),void 0===m&&(m=10),l=[P,h,y.substring(0,m)].filter(Boolean).join("_"),[4,Promise.all([(new w).parse(),s.get(l)])];case 1:return c=o.apply(void 0,[i.sent(),2]),d=c[0],p=c[1],function(e,t,n){e.referrer;var i=e.referring_domain,o=r(e,["referrer","referring_domain"]),u=t||{};u.referrer;var a=u.referring_domain,f=r(u,["referrer","referring_domain"]);if(I(n.excludeReferrers,e.referring_domain))return!1;var s=JSON.stringify(o)!==JSON.stringify(f),l=N(i||"")!==N(a||"");return!t||s||l}(d,p,n)&&(n.resetSessionOnNewCampaign&&(a.setSessionId(Date.now()),u.loggerProvider.log("Created a new session for new campaign.")),u.loggerProvider.log("Tracking attribution."),v=A(d,n),a.track(v),s.set(l,d)),[2]}var y,h,m,_,g}))}))},execute:function(e){return n(u,void 0,void 0,(function(){return i(this,(function(t){return[2,e]}))}))}};return a};e.plugin=x,e.webAttributionPlugin=x,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).amplitude={})}(this,(function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function r(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r}function n(e,t,r,n){return new(r||(r=Promise))((function(i,o){function u(e){try{s(n.next(e))}catch(e){o(e)}}function a(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(u,a)}s((n=n.apply(e,t||[])).next())}))}function i(e,t){var r,n,i,o,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(s){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(u=0)),u;)try{if(r=1,n&&(i=2&a[0]?n.return:a[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,a[1])).done)return i;switch(n=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,n=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(i=u.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){u=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){u.label=a[1];break}if(6===a[0]&&u.label<i[1]){u.label=i[1],i=a;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(a);break}i[2]&&u.ops.pop(),u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e],n=0}finally{r=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function o(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)u.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return u}var u,a,s,f=function(){var e,t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0;return(null===(e=null==t?void 0:t.location)||void 0===e?void 0:e.search)?t.location.search.substring(1).split("&").filter(Boolean).reduce((function(e,t){var r=t.split("=",2),n=l(r[0]),i=l(r[1]);return i?(e[n]=i,e):e}),{}):{}},l=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},c="dclid",d="fbclid",p="gbraid",v="gclid",y="ko_click_id",h="li_fat_id",m="msclkid",_="rtd_cid",g="ttclid",b="twclid",E="wbraid",w={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,li_fat_id:void 0,msclkid:void 0,rtd_cid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},S=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){return[2,t(t(t(t({},w),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=f();return{utm_campaign:e.utm_campaign,utm_content:e.utm_content,utm_id:e.utm_id,utm_medium:e.utm_medium,utm_source:e.utm_source,utm_term:e.utm_term}},e.prototype.getReferrer=function(){var e,t,r={referrer:void 0,referring_domain:void 0};try{r.referrer=document.referrer||void 0,r.referring_domain=null!==(t=null===(e=r.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return r},e.prototype.getClickIds=function(){var e,t=f();return(e={})[c]=t[c],e[d]=t[d],e[p]=t[p],e[v]=t[v],e[y]=t[y],e[h]=t[h],e[m]=t[m],e[_]=t[_],e[g]=t[g],e[b]=t[b],e[E]=t[E],e},e}();!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(u||(u={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(a||(a={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(s||(s={}));var P="AMP",O=function(e){if(Object.keys(e).length>1e3)return!1;for(var t in e){var r=e[t];if(!T(t,r))return!1}return!0},T=function(e,t){var r,n;if("string"!=typeof e)return!1;if(Array.isArray(t)){var i=!0;try{for(var o=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),u=o.next();!u.done;u=o.next()){var a=u.value;if(Array.isArray(a))return!1;if("object"==typeof a)i=i&&O(a);else if(!["number","string"].includes(typeof a))return!1;if(!i)return!1}}catch(e){r={error:e}}finally{try{u&&!u.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}}else{if(null==t)return!1;if("object"==typeof t)return O(t);if(!["number","string","boolean"].includes(typeof t))return!1}return!0},R=function(){function e(){this._propertySet=new Set,this._properties={}}return e.prototype.getUserProperties=function(){return t({},this._properties)},e.prototype.set=function(e,t){return this._safeSet(u.SET,e,t),this},e.prototype.setOnce=function(e,t){return this._safeSet(u.SET_ONCE,e,t),this},e.prototype.append=function(e,t){return this._safeSet(u.APPEND,e,t),this},e.prototype.prepend=function(e,t){return this._safeSet(u.PREPEND,e,t),this},e.prototype.postInsert=function(e,t){return this._safeSet(u.POSTINSERT,e,t),this},e.prototype.preInsert=function(e,t){return this._safeSet(u.PREINSERT,e,t),this},e.prototype.remove=function(e,t){return this._safeSet(u.REMOVE,e,t),this},e.prototype.add=function(e,t){return this._safeSet(u.ADD,e,t),this},e.prototype.unset=function(e){return this._safeSet(u.UNSET,e,"-"),this},e.prototype.clearAll=function(){return this._properties={},this._properties[u.CLEAR_ALL]="-",this},e.prototype._safeSet=function(e,t,r){if(this._validate(e,t,r)){var n=this._properties[e];return void 0===n&&(n={},this._properties[e]=n),n[t]=r,this._propertySet.add(t),!0}return!1},e.prototype._validate=function(e,t,r){return void 0===this._properties[u.CLEAR_ALL]&&(!this._propertySet.has(t)&&(e===u.ADD?"number"==typeof r:e===u.UNSET||e===u.REMOVE||T(t,r)))},e}(),N=function(e){var t=e.split(".");return t.length<=2?e:t.slice(t.length-2,t.length).join(".")},I=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=""),e.some((function(e){return e instanceof RegExp?e.test(t):e===t}))},A=function(e,r){var n,i,u=t(t({},w),e),a=Object.entries(u).reduce((function(e,t){var n,i=o(t,2),u=i[0],a=i[1];return e.setOnce("initial_".concat(u),null!==(n=null!=a?a:r.initialEmptyValue)&&void 0!==n?n:"EMPTY"),a?e.set(u,a):e.unset(u)}),new R);return n=a,t(t({},i),{event_type:s.IDENTIFY,user_properties:n.getUserProperties()})},x=function(e){var u=this;void 0===e&&(e={});var a={name:"@amplitude/plugin-web-attribution-browser",type:"before",setup:function(u,a){var s;return n(this,void 0,void 0,(function(){var n,f,l,c,d,p,v,y;return i(this,(function(i){switch(i.label){case 0:return n=t({initialEmptyValue:"EMPTY",resetSessionOnNewCampaign:!1,excludeReferrers:(E=null===(s=u.cookieOptions)||void 0===s?void 0:s.domain,w=E,w?(w.startsWith(".")&&(w=w.substring(1)),[new RegExp("".concat(w.replace(".","\\."),"$"))]):[])},e),u.loggerProvider.log("Installing @amplitude/plugin-web-attribution-browser."),f=u.cookieStorage,_=u.apiKey,void 0===(g="MKTG")&&(g=""),void 0===b&&(b=10),l=[P,g,_.substring(0,b)].filter(Boolean).join("_"),[4,Promise.all([(new S).parse(),f.get(l)])];case 1:return c=o.apply(void 0,[i.sent(),2]),d=c[0],p=c[1],h=u.sessionTimeout,void 0===(m=u.lastEventTime)&&(m=Date.now()),v=Date.now()-m>h,function(e,t,n,i){void 0===i&&(i=!0);var o=e.referrer,u=e.referring_domain,a=r(e,["referrer","referring_domain"]),s=t||{};s.referrer;var f=s.referring_domain,l=r(s,["referrer","referring_domain"]);if(I(n.excludeReferrers,e.referring_domain))return!1;if(!i&&!o&&t)return!1;var c=JSON.stringify(a)!==JSON.stringify(l),d=N(u||"")!==N(f||"");return!t||c||d}(d,p,n,v)&&(n.resetSessionOnNewCampaign&&(a.setSessionId(Date.now()),u.loggerProvider.log("Created a new session for new campaign.")),u.loggerProvider.log("Tracking attribution."),y=A(d,n),a.track(y),f.set(l,d)),[2]}var h,m,_,g,b,E,w}))}))},execute:function(e){return n(u,void 0,void 0,(function(){return i(this,(function(t){return[2,e]}))}))}};return a};e.plugin=x,e.webAttributionPlugin=x,Object.defineProperty(e,"__esModule",{value:!0})})); |
import { Campaign } from '@amplitude/analytics-types'; | ||
import { Options } from './typings/web-attribution'; | ||
export declare const getStorageKey: (apiKey: string, postKey?: string, limit?: number) => string; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options) => boolean; | ||
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, isNewSession?: boolean) => boolean; | ||
export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean; | ||
@@ -6,0 +6,0 @@ export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-types").IdentifyEvent; |
{ | ||
"name": "@amplitude/plugin-web-attribution-browser", | ||
"version": "2.0.6", | ||
"version": "2.0.7", | ||
"description": "", | ||
@@ -39,9 +39,9 @@ "author": "Amplitude Inc", | ||
"dependencies": { | ||
"@amplitude/analytics-client-common": "^2.0.4", | ||
"@amplitude/analytics-core": "^2.0.3", | ||
"@amplitude/analytics-types": "^2.1.1", | ||
"@amplitude/analytics-client-common": "^2.0.5", | ||
"@amplitude/analytics-core": "^2.0.4", | ||
"@amplitude/analytics-types": "^2.1.2", | ||
"tslib": "^2.4.1" | ||
}, | ||
"devDependencies": { | ||
"@amplitude/analytics-browser": "^2.2.0", | ||
"@amplitude/analytics-browser": "^2.2.1", | ||
"@rollup/plugin-commonjs": "^23.0.4", | ||
@@ -58,3 +58,3 @@ "@rollup/plugin-node-resolve": "^15.0.1", | ||
], | ||
"gitHead": "f7cb62d0afb788bbe1cdbeb26b03d66387cf74d1" | ||
"gitHead": "5e4a40950cb5f11abfe7ee03c952f49efd1b6c60" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
61070
333