@amplitude/analytics-browser 2.11.13 → 2.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cjs/attribution/campaign-parser.d.ts +8 -0
- package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-parser.js +69 -0
- package/lib/cjs/attribution/campaign-parser.js.map +1 -0
- package/lib/cjs/attribution/campaign.d.ts +31 -0
- package/lib/cjs/attribution/campaign.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign.js +3 -0
- package/lib/cjs/attribution/campaign.js.map +1 -0
- package/lib/cjs/attribution/constants.d.ts +22 -0
- package/lib/cjs/attribution/constants.d.ts.map +1 -0
- package/lib/cjs/attribution/constants.js +44 -0
- package/lib/cjs/attribution/constants.js.map +1 -0
- package/lib/cjs/attribution/helpers.d.ts +12 -0
- package/lib/cjs/attribution/helpers.d.ts.map +1 -0
- package/lib/cjs/attribution/helpers.js +77 -0
- package/lib/cjs/attribution/helpers.js.map +1 -0
- package/lib/cjs/attribution/web-attribution.d.ts +25 -0
- package/lib/cjs/attribution/web-attribution.d.ts.map +1 -0
- package/lib/cjs/attribution/web-attribution.js +73 -0
- package/lib/cjs/attribution/web-attribution.js.map +1 -0
- package/lib/cjs/browser-client-factory.d.ts +1 -1
- package/lib/cjs/browser-client-factory.d.ts.map +1 -1
- package/lib/cjs/browser-client-factory.js.map +1 -1
- package/lib/cjs/browser-client.d.ts +7 -8
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +21 -21
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config/joined-config.d.ts +6 -1
- package/lib/cjs/config/joined-config.d.ts.map +1 -1
- package/lib/cjs/config/joined-config.js +10 -10
- package/lib/cjs/config/joined-config.js.map +1 -1
- package/lib/cjs/config.d.ts +5 -7
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +14 -18
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/constants.d.ts +13 -13
- package/lib/cjs/constants.d.ts.map +1 -1
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts +1 -1
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +5 -9
- package/lib/cjs/cookie-migration/index.js.map +1 -1
- package/lib/cjs/default-tracking.d.ts +18 -0
- package/lib/cjs/default-tracking.d.ts.map +1 -0
- package/lib/cjs/default-tracking.js +108 -0
- package/lib/cjs/default-tracking.js.map +1 -0
- package/lib/cjs/det-notification.d.ts +1 -1
- package/lib/cjs/det-notification.d.ts.map +1 -1
- package/lib/cjs/det-notification.js.map +1 -1
- package/lib/cjs/gtm-snippet-index.js +3 -3
- package/lib/cjs/gtm-snippet-index.js.map +1 -1
- package/lib/cjs/index.d.ts +46 -5
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +11 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/plugins/context.d.ts +1 -1
- package/lib/cjs/plugins/context.d.ts.map +1 -1
- package/lib/cjs/plugins/context.js +2 -3
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.js +2 -2
- package/lib/cjs/plugins/file-download-tracking.js.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.js +2 -2
- package/lib/cjs/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.js +2 -2
- package/lib/cjs/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/cjs/snippet-index.js +3 -3
- package/lib/cjs/snippet-index.js.map +1 -1
- package/lib/cjs/storage/browser-storage.d.ts +1 -1
- package/lib/cjs/storage/browser-storage.d.ts.map +1 -1
- package/lib/cjs/storage/browser-storage.js +4 -4
- package/lib/cjs/storage/browser-storage.js.map +1 -1
- package/lib/cjs/storage/local-storage.d.ts +3 -3
- package/lib/cjs/storage/local-storage.d.ts.map +1 -1
- package/lib/cjs/storage/local-storage.js +4 -3
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/session-storage.js +2 -2
- package/lib/cjs/storage/session-storage.js.map +1 -1
- package/lib/cjs/transports/send-beacon.d.ts +1 -2
- package/lib/cjs/transports/send-beacon.d.ts.map +1 -1
- package/lib/cjs/transports/send-beacon.js +1 -2
- package/lib/cjs/transports/send-beacon.js.map +1 -1
- package/lib/cjs/transports/xhr.d.ts +1 -2
- package/lib/cjs/transports/xhr.d.ts.map +1 -1
- package/lib/cjs/transports/xhr.js +1 -1
- package/lib/cjs/transports/xhr.js.map +1 -1
- package/lib/cjs/utils/snippet-helper.d.ts +12 -1
- package/lib/cjs/utils/snippet-helper.d.ts.map +1 -1
- package/lib/cjs/utils/snippet-helper.js.map +1 -1
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.d.ts.map +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/attribution/campaign-parser.d.ts +8 -0
- package/lib/esm/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-parser.js +66 -0
- package/lib/esm/attribution/campaign-parser.js.map +1 -0
- package/lib/esm/attribution/campaign.d.ts +31 -0
- package/lib/esm/attribution/campaign.d.ts.map +1 -0
- package/lib/esm/attribution/campaign.js +2 -0
- package/lib/esm/attribution/campaign.js.map +1 -0
- package/lib/esm/attribution/constants.d.ts +22 -0
- package/lib/esm/attribution/constants.d.ts.map +1 -0
- package/lib/esm/attribution/constants.js +41 -0
- package/lib/esm/attribution/constants.js.map +1 -0
- package/lib/esm/attribution/helpers.d.ts +12 -0
- package/lib/esm/attribution/helpers.d.ts.map +1 -0
- package/lib/esm/attribution/helpers.js +70 -0
- package/lib/esm/attribution/helpers.js.map +1 -0
- package/lib/esm/attribution/web-attribution.d.ts +25 -0
- package/lib/esm/attribution/web-attribution.d.ts.map +1 -0
- package/lib/esm/attribution/web-attribution.js +70 -0
- package/lib/esm/attribution/web-attribution.js.map +1 -0
- package/lib/esm/browser-client-factory.d.ts +1 -1
- package/lib/esm/browser-client-factory.d.ts.map +1 -1
- package/lib/esm/browser-client-factory.js.map +1 -1
- package/lib/esm/browser-client.d.ts +7 -8
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +4 -4
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config/joined-config.d.ts +6 -1
- package/lib/esm/config/joined-config.d.ts.map +1 -1
- package/lib/esm/config/joined-config.js +10 -10
- package/lib/esm/config/joined-config.js.map +1 -1
- package/lib/esm/config.d.ts +5 -7
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +7 -11
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/constants.d.ts +13 -13
- package/lib/esm/constants.d.ts.map +1 -1
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts +1 -1
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +5 -9
- package/lib/esm/cookie-migration/index.js.map +1 -1
- package/lib/esm/default-tracking.d.ts +18 -0
- package/lib/esm/default-tracking.d.ts.map +1 -0
- package/lib/esm/default-tracking.js +96 -0
- package/lib/esm/default-tracking.js.map +1 -0
- package/lib/esm/det-notification.d.ts +1 -1
- package/lib/esm/det-notification.d.ts.map +1 -1
- package/lib/esm/det-notification.js.map +1 -1
- package/lib/esm/gtm-snippet-index.js +1 -1
- package/lib/esm/gtm-snippet-index.js.map +1 -1
- package/lib/esm/index.d.ts +46 -5
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +11 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/plugins/context.d.ts +1 -1
- package/lib/esm/plugins/context.d.ts.map +1 -1
- package/lib/esm/plugins/context.js +2 -3
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/file-download-tracking.js +1 -1
- package/lib/esm/plugins/file-download-tracking.js.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/esm/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/esm/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/esm/plugins/network-connectivity-checker.js +1 -1
- package/lib/esm/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/esm/snippet-index.js +1 -1
- package/lib/esm/snippet-index.js.map +1 -1
- package/lib/esm/storage/browser-storage.d.ts +1 -1
- package/lib/esm/storage/browser-storage.d.ts.map +1 -1
- package/lib/esm/storage/browser-storage.js +4 -4
- package/lib/esm/storage/browser-storage.js.map +1 -1
- package/lib/esm/storage/local-storage.d.ts +3 -3
- package/lib/esm/storage/local-storage.d.ts.map +1 -1
- package/lib/esm/storage/local-storage.js +4 -3
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/session-storage.js +1 -1
- package/lib/esm/storage/session-storage.js.map +1 -1
- package/lib/esm/transports/send-beacon.d.ts +1 -2
- package/lib/esm/transports/send-beacon.d.ts.map +1 -1
- package/lib/esm/transports/send-beacon.js +1 -2
- package/lib/esm/transports/send-beacon.js.map +1 -1
- package/lib/esm/transports/xhr.d.ts +1 -2
- package/lib/esm/transports/xhr.d.ts.map +1 -1
- package/lib/esm/transports/xhr.js +2 -2
- package/lib/esm/transports/xhr.js.map +1 -1
- package/lib/esm/utils/snippet-helper.d.ts +12 -1
- package/lib/esm/utils/snippet-helper.d.ts.map +1 -1
- package/lib/esm/utils/snippet-helper.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.d.ts.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
- package/lib/scripts/amplitude-bookmarklet.html +1 -1
- package/lib/scripts/amplitude-gtm-min.js +1 -1
- package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
- package/lib/scripts/amplitude-gtm-min.js.map +1 -1
- package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.js.map +1 -1
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/lib/scripts/attribution/campaign-parser.d.ts +8 -0
- package/lib/scripts/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/scripts/attribution/campaign.d.ts +31 -0
- package/lib/scripts/attribution/campaign.d.ts.map +1 -0
- package/lib/scripts/attribution/constants.d.ts +22 -0
- package/lib/scripts/attribution/constants.d.ts.map +1 -0
- package/lib/scripts/attribution/helpers.d.ts +12 -0
- package/lib/scripts/attribution/helpers.d.ts.map +1 -0
- package/lib/scripts/attribution/web-attribution.d.ts +25 -0
- package/lib/scripts/attribution/web-attribution.d.ts.map +1 -0
- package/lib/scripts/browser-client-factory.d.ts +1 -1
- package/lib/scripts/browser-client-factory.d.ts.map +1 -1
- package/lib/scripts/browser-client.d.ts +7 -8
- package/lib/scripts/browser-client.d.ts.map +1 -1
- package/lib/scripts/config/joined-config.d.ts +6 -1
- package/lib/scripts/config/joined-config.d.ts.map +1 -1
- package/lib/scripts/config.d.ts +2 -4
- package/lib/scripts/config.d.ts.map +1 -1
- package/lib/scripts/constants.d.ts +1 -1
- package/lib/scripts/constants.d.ts.map +1 -1
- package/lib/scripts/cookie-migration/index.d.ts +1 -1
- package/lib/scripts/cookie-migration/index.d.ts.map +1 -1
- package/lib/scripts/default-tracking.d.ts +18 -0
- package/lib/scripts/default-tracking.d.ts.map +1 -0
- package/lib/scripts/det-notification.d.ts +1 -1
- package/lib/scripts/det-notification.d.ts.map +1 -1
- package/lib/scripts/index.d.ts +46 -5
- package/lib/scripts/index.d.ts.map +1 -1
- package/lib/scripts/plugins/context.d.ts +1 -1
- package/lib/scripts/plugins/context.d.ts.map +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/scripts/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/scripts/storage/browser-storage.d.ts +1 -1
- package/lib/scripts/storage/browser-storage.d.ts.map +1 -1
- package/lib/scripts/storage/local-storage.d.ts +3 -3
- package/lib/scripts/storage/local-storage.d.ts.map +1 -1
- package/lib/scripts/transports/send-beacon.d.ts +1 -2
- package/lib/scripts/transports/send-beacon.d.ts.map +1 -1
- package/lib/scripts/transports/xhr.d.ts +1 -2
- package/lib/scripts/transports/xhr.d.ts.map +1 -1
- package/lib/scripts/utils/snippet-helper.d.ts +12 -1
- package/lib/scripts/utils/snippet-helper.d.ts.map +1 -1
- package/lib/scripts/version.d.ts +1 -1
- package/lib/scripts/version.d.ts.map +1 -1
- package/package.json +5 -7
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from './campaign';
|
|
2
|
+
export declare class CampaignParser implements ICampaignParser {
|
|
3
|
+
parse(): Promise<Campaign>;
|
|
4
|
+
getUtmParam(): UTMParameters;
|
|
5
|
+
getReferrer(): ReferrerParameters;
|
|
6
|
+
getClickIds(): ClickIdParameters;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=campaign-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,eAAe;IAC9C,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAShC,WAAW,IAAI,aAAa;IAoB5B,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAgBjC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import { getQueryParams } from '@amplitude/analytics-core';
|
|
3
|
+
import { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, GCLID, FBCLID, BASE_CAMPAIGN, DCLID, MSCLKID, RDT_CID, TWCLID, TTCLID, KO_CLICK_ID, LI_FAT_ID, GBRAID, WBRAID, UTM_ID, } from './constants';
|
|
4
|
+
var CampaignParser = /** @class */ (function () {
|
|
5
|
+
function CampaignParser() {
|
|
6
|
+
}
|
|
7
|
+
CampaignParser.prototype.parse = function () {
|
|
8
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
9
|
+
return __generator(this, function (_a) {
|
|
10
|
+
return [2 /*return*/, __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
CampaignParser.prototype.getUtmParam = function () {
|
|
15
|
+
var params = getQueryParams();
|
|
16
|
+
var utmCampaign = params[UTM_CAMPAIGN];
|
|
17
|
+
var utmContent = params[UTM_CONTENT];
|
|
18
|
+
var utmId = params[UTM_ID];
|
|
19
|
+
var utmMedium = params[UTM_MEDIUM];
|
|
20
|
+
var utmSource = params[UTM_SOURCE];
|
|
21
|
+
var utmTerm = params[UTM_TERM];
|
|
22
|
+
return {
|
|
23
|
+
utm_campaign: utmCampaign,
|
|
24
|
+
utm_content: utmContent,
|
|
25
|
+
utm_id: utmId,
|
|
26
|
+
utm_medium: utmMedium,
|
|
27
|
+
utm_source: utmSource,
|
|
28
|
+
utm_term: utmTerm,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
CampaignParser.prototype.getReferrer = function () {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
var data = {
|
|
34
|
+
referrer: undefined,
|
|
35
|
+
referring_domain: undefined,
|
|
36
|
+
};
|
|
37
|
+
try {
|
|
38
|
+
data.referrer = document.referrer || undefined;
|
|
39
|
+
data.referring_domain = (_b = (_a = data.referrer) === null || _a === void 0 ? void 0 : _a.split('/')[2]) !== null && _b !== void 0 ? _b : undefined;
|
|
40
|
+
}
|
|
41
|
+
catch (_c) {
|
|
42
|
+
// nothing to track
|
|
43
|
+
}
|
|
44
|
+
return data;
|
|
45
|
+
};
|
|
46
|
+
CampaignParser.prototype.getClickIds = function () {
|
|
47
|
+
var _a;
|
|
48
|
+
var params = getQueryParams();
|
|
49
|
+
return _a = {},
|
|
50
|
+
_a[DCLID] = params[DCLID],
|
|
51
|
+
_a[FBCLID] = params[FBCLID],
|
|
52
|
+
_a[GBRAID] = params[GBRAID],
|
|
53
|
+
_a[GCLID] = params[GCLID],
|
|
54
|
+
_a[KO_CLICK_ID] = params[KO_CLICK_ID],
|
|
55
|
+
_a[LI_FAT_ID] = params[LI_FAT_ID],
|
|
56
|
+
_a[MSCLKID] = params[MSCLKID],
|
|
57
|
+
_a[RDT_CID] = params[RDT_CID],
|
|
58
|
+
_a[TTCLID] = params[TTCLID],
|
|
59
|
+
_a[TWCLID] = params[TWCLID],
|
|
60
|
+
_a[WBRAID] = params[WBRAID],
|
|
61
|
+
_a;
|
|
62
|
+
};
|
|
63
|
+
return CampaignParser;
|
|
64
|
+
}());
|
|
65
|
+
export { CampaignParser };
|
|
66
|
+
//# sourceMappingURL=campaign-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,MAAM,EACN,aAAa,EACb,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,aAAa,CAAC;AASrB;IAAA;IA4DA,CAAC;IA3DO,8BAAK,GAAX;;;gBACE,sBAAO,wCACF,aAAa,GACb,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,CACV,EAAC;;;KACf;IAED,oCAAW,GAAX;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAEhC,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,SAAS;SAC5B,CAAC;QACF,IAAI;YACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,SAAS,CAAC;SACnE;QAAC,WAAM;YACN,mBAAmB;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC;YACE,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,WAAW,IAAG,MAAM,CAAC,WAAW,CAAC;YAClC,GAAC,SAAS,IAAG,MAAM,CAAC,SAAS,CAAC;YAC9B,GAAC,OAAO,IAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAC,OAAO,IAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AA5DD,IA4DC","sourcesContent":["import { getQueryParams } from '@amplitude/analytics-core';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n DCLID,\n MSCLKID,\n RDT_CID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\n LI_FAT_ID,\n GBRAID,\n WBRAID,\n UTM_ID,\n} from './constants';\nimport {\n Campaign,\n CampaignParser as ICampaignParser,\n ClickIdParameters,\n ReferrerParameters,\n UTMParameters,\n} from './campaign';\n\nexport class CampaignParser implements ICampaignParser {\n async parse(): Promise<Campaign> {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n\n const utmCampaign = params[UTM_CAMPAIGN];\n const utmContent = params[UTM_CONTENT];\n const utmId = params[UTM_ID];\n const utmMedium = params[UTM_MEDIUM];\n const utmSource = params[UTM_SOURCE];\n const utmTerm = params[UTM_TERM];\n\n return {\n utm_campaign: utmCampaign,\n utm_content: utmContent,\n utm_id: utmId,\n utm_medium: utmMedium,\n utm_source: utmSource,\n utm_term: utmTerm,\n };\n }\n\n getReferrer(): ReferrerParameters {\n const data: ReferrerParameters = {\n referrer: undefined,\n referring_domain: undefined,\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = data.referrer?.split('/')[2] ?? undefined;\n } catch {\n // nothing to track\n }\n return data;\n }\n\n getClickIds(): ClickIdParameters {\n const params = getQueryParams();\n return {\n [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GBRAID]: params[GBRAID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [LI_FAT_ID]: params[LI_FAT_ID],\n [MSCLKID]: params[MSCLKID],\n [RDT_CID]: params[RDT_CID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n [WBRAID]: params[WBRAID],\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface Campaign extends Record<string, string | undefined>, UTMParameters, ReferrerParameters, ClickIdParameters {
|
|
2
|
+
}
|
|
3
|
+
export interface CampaignParser {
|
|
4
|
+
parse(): Promise<Campaign>;
|
|
5
|
+
}
|
|
6
|
+
export interface UTMParameters {
|
|
7
|
+
utm_campaign: string | undefined;
|
|
8
|
+
utm_content: string | undefined;
|
|
9
|
+
utm_id: string | undefined;
|
|
10
|
+
utm_medium: string | undefined;
|
|
11
|
+
utm_source: string | undefined;
|
|
12
|
+
utm_term: string | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface ReferrerParameters {
|
|
15
|
+
referrer: string | undefined;
|
|
16
|
+
referring_domain: string | undefined;
|
|
17
|
+
}
|
|
18
|
+
export interface ClickIdParameters {
|
|
19
|
+
dclid: string | undefined;
|
|
20
|
+
fbclid: string | undefined;
|
|
21
|
+
gbraid: string | undefined;
|
|
22
|
+
gclid: string | undefined;
|
|
23
|
+
ko_click_id: string | undefined;
|
|
24
|
+
li_fat_id: string | undefined;
|
|
25
|
+
msclkid: string | undefined;
|
|
26
|
+
rtd_cid: string | undefined;
|
|
27
|
+
ttclid: string | undefined;
|
|
28
|
+
twclid: string | undefined;
|
|
29
|
+
wbraid: string | undefined;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=campaign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QACf,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACxC,aAAa,EACb,kBAAkB,EAClB,iBAAiB;CAAG;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../../src/attribution/campaign.ts"],"names":[],"mappings":"","sourcesContent":["export interface Campaign\n extends Record<string, string | undefined>,\n UTMParameters,\n ReferrerParameters,\n ClickIdParameters {}\n\nexport interface CampaignParser {\n parse(): Promise<Campaign>;\n}\n\nexport interface UTMParameters {\n utm_campaign: string | undefined;\n utm_content: string | undefined;\n utm_id: string | undefined;\n utm_medium: string | undefined;\n utm_source: string | undefined;\n utm_term: string | undefined;\n}\n\nexport interface ReferrerParameters {\n referrer: string | undefined;\n referring_domain: string | undefined;\n}\n\nexport interface ClickIdParameters {\n dclid: string | undefined;\n fbclid: string | undefined;\n gbraid: string | undefined;\n gclid: string | undefined;\n ko_click_id: string | undefined;\n li_fat_id: string | undefined;\n msclkid: string | undefined;\n rtd_cid: string | undefined;\n ttclid: string | undefined;\n twclid: string | undefined;\n wbraid: string | undefined;\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Campaign } from './campaign';
|
|
2
|
+
export declare const UTM_CAMPAIGN = "utm_campaign";
|
|
3
|
+
export declare const UTM_CONTENT = "utm_content";
|
|
4
|
+
export declare const UTM_ID = "utm_id";
|
|
5
|
+
export declare const UTM_MEDIUM = "utm_medium";
|
|
6
|
+
export declare const UTM_SOURCE = "utm_source";
|
|
7
|
+
export declare const UTM_TERM = "utm_term";
|
|
8
|
+
export declare const DCLID = "dclid";
|
|
9
|
+
export declare const FBCLID = "fbclid";
|
|
10
|
+
export declare const GBRAID = "gbraid";
|
|
11
|
+
export declare const GCLID = "gclid";
|
|
12
|
+
export declare const KO_CLICK_ID = "ko_click_id";
|
|
13
|
+
export declare const LI_FAT_ID = "li_fat_id";
|
|
14
|
+
export declare const MSCLKID = "msclkid";
|
|
15
|
+
export declare const RDT_CID = "rtd_cid";
|
|
16
|
+
export declare const TTCLID = "ttclid";
|
|
17
|
+
export declare const TWCLID = "twclid";
|
|
18
|
+
export declare const WBRAID = "wbraid";
|
|
19
|
+
export declare const EMPTY_VALUE = "EMPTY";
|
|
20
|
+
export declare const BASE_CAMPAIGN: Campaign;
|
|
21
|
+
export declare const MKTG = "MKTG";
|
|
22
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAoB3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export var UTM_CAMPAIGN = 'utm_campaign';
|
|
2
|
+
export var UTM_CONTENT = 'utm_content';
|
|
3
|
+
export var UTM_ID = 'utm_id';
|
|
4
|
+
export var UTM_MEDIUM = 'utm_medium';
|
|
5
|
+
export var UTM_SOURCE = 'utm_source';
|
|
6
|
+
export var UTM_TERM = 'utm_term';
|
|
7
|
+
export var DCLID = 'dclid';
|
|
8
|
+
export var FBCLID = 'fbclid';
|
|
9
|
+
export var GBRAID = 'gbraid';
|
|
10
|
+
export var GCLID = 'gclid';
|
|
11
|
+
export var KO_CLICK_ID = 'ko_click_id';
|
|
12
|
+
export var LI_FAT_ID = 'li_fat_id';
|
|
13
|
+
export var MSCLKID = 'msclkid';
|
|
14
|
+
export var RDT_CID = 'rtd_cid';
|
|
15
|
+
export var TTCLID = 'ttclid';
|
|
16
|
+
export var TWCLID = 'twclid';
|
|
17
|
+
export var WBRAID = 'wbraid';
|
|
18
|
+
export var EMPTY_VALUE = 'EMPTY';
|
|
19
|
+
export var BASE_CAMPAIGN = {
|
|
20
|
+
utm_campaign: undefined,
|
|
21
|
+
utm_content: undefined,
|
|
22
|
+
utm_id: undefined,
|
|
23
|
+
utm_medium: undefined,
|
|
24
|
+
utm_source: undefined,
|
|
25
|
+
utm_term: undefined,
|
|
26
|
+
referrer: undefined,
|
|
27
|
+
referring_domain: undefined,
|
|
28
|
+
dclid: undefined,
|
|
29
|
+
gbraid: undefined,
|
|
30
|
+
gclid: undefined,
|
|
31
|
+
fbclid: undefined,
|
|
32
|
+
ko_click_id: undefined,
|
|
33
|
+
li_fat_id: undefined,
|
|
34
|
+
msclkid: undefined,
|
|
35
|
+
rtd_cid: undefined,
|
|
36
|
+
ttclid: undefined,
|
|
37
|
+
twclid: undefined,
|
|
38
|
+
wbraid: undefined,
|
|
39
|
+
};
|
|
40
|
+
export var MKTG = 'MKTG';
|
|
41
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GAAa;IACrC,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from './campaign';\n\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_CONTENT = 'utm_content';\nexport const UTM_ID = 'utm_id';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_TERM = 'utm_term';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GBRAID = 'gbraid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const LI_FAT_ID = 'li_fat_id';\nexport const MSCLKID = 'msclkid';\nexport const RDT_CID = 'rtd_cid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\nexport const WBRAID = 'wbraid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_campaign: undefined,\n utm_content: undefined,\n utm_id: undefined,\n utm_medium: undefined,\n utm_source: undefined,\n utm_term: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gbraid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n li_fat_id: undefined,\n msclkid: undefined,\n rtd_cid: undefined,\n ttclid: undefined,\n twclid: undefined,\n wbraid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ILogger } from '@amplitude/analytics-core';
|
|
2
|
+
import { Campaign } from './campaign';
|
|
3
|
+
export interface Options {
|
|
4
|
+
excludeReferrers?: (string | RegExp)[];
|
|
5
|
+
initialEmptyValue?: string;
|
|
6
|
+
resetSessionOnNewCampaign?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, logger: ILogger, isNewSession?: boolean) => boolean;
|
|
9
|
+
export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean;
|
|
10
|
+
export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-core/lib/esm/types/event/event").IdentifyEvent;
|
|
11
|
+
export declare const getDefaultExcludedReferrers: (cookieDomain: string | undefined) => RegExp[];
|
|
12
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,OAAO;IACtB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAiBD,eAAO,MAAM,aAAa,YACf,QAAQ,YACP,QAAQ,GAAG,SAAS,WACrB,OAAO,UACR,OAAO,oCA+BhB,CAAC;AAEF,eAAO,MAAM,kBAAkB,sBAAsB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,sCAIvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,QAAQ,WAAW,OAAO,gFAgBvE,CAAC;AAEF,eAAO,MAAM,2BAA2B,iBAAkB,MAAM,GAAG,SAAS,aAS3E,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __assign, __read, __rest } from "tslib";
|
|
2
|
+
import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';
|
|
3
|
+
import { BASE_CAMPAIGN } from './constants';
|
|
4
|
+
var domainWithoutSubdomain = function (domain) {
|
|
5
|
+
var parts = domain.split('.');
|
|
6
|
+
if (parts.length <= 2) {
|
|
7
|
+
return domain;
|
|
8
|
+
}
|
|
9
|
+
return parts.slice(parts.length - 2, parts.length).join('.');
|
|
10
|
+
};
|
|
11
|
+
//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.
|
|
12
|
+
var isDirectTraffic = function (current) {
|
|
13
|
+
return Object.values(current).every(function (value) { return !value; });
|
|
14
|
+
};
|
|
15
|
+
export var isNewCampaign = function (current, previous, options, logger, isNewSession) {
|
|
16
|
+
if (isNewSession === void 0) { isNewSession = true; }
|
|
17
|
+
var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = __rest(current, ["referrer", "referring_domain"]);
|
|
18
|
+
var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = __rest(_a, ["referrer", "referring_domain"]);
|
|
19
|
+
if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
21
|
+
logger.debug("This is not a new campaign because ".concat(current.referring_domain, " is in the exclude referrer list."));
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
//In the same session, direct traffic should not override or unset any persisting query params
|
|
25
|
+
if (!isNewSession && isDirectTraffic(current) && previous) {
|
|
26
|
+
logger.debug('This is not a new campaign because this is a direct traffic in the same session.');
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
|
|
30
|
+
var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');
|
|
31
|
+
var result = !previous || hasNewCampaign || hasNewDomain;
|
|
32
|
+
if (!result) {
|
|
33
|
+
logger.debug("This is not a new campaign because it's the same as the previous one.");
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
logger.debug("This is a new campaign. An $identify event will be sent.");
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
export var isExcludedReferrer = function (excludeReferrers, referringDomain) {
|
|
41
|
+
if (excludeReferrers === void 0) { excludeReferrers = []; }
|
|
42
|
+
if (referringDomain === void 0) { referringDomain = ''; }
|
|
43
|
+
return excludeReferrers.some(function (value) {
|
|
44
|
+
return value instanceof RegExp ? value.test(referringDomain) : value === referringDomain;
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
export var createCampaignEvent = function (campaign, options) {
|
|
48
|
+
var campaignParameters = __assign(__assign({}, BASE_CAMPAIGN), campaign);
|
|
49
|
+
var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {
|
|
50
|
+
var _b;
|
|
51
|
+
var _c = __read(_a, 2), key = _c[0], value = _c[1];
|
|
52
|
+
identify.setOnce("initial_".concat(key), (_b = value !== null && value !== void 0 ? value : options.initialEmptyValue) !== null && _b !== void 0 ? _b : 'EMPTY');
|
|
53
|
+
if (value) {
|
|
54
|
+
return identify.set(key, value);
|
|
55
|
+
}
|
|
56
|
+
return identify.unset(key);
|
|
57
|
+
}, new Identify());
|
|
58
|
+
return createIdentifyEvent(identifyEvent);
|
|
59
|
+
};
|
|
60
|
+
export var getDefaultExcludedReferrers = function (cookieDomain) {
|
|
61
|
+
var domain = cookieDomain;
|
|
62
|
+
if (domain) {
|
|
63
|
+
if (domain.startsWith('.')) {
|
|
64
|
+
domain = domain.substring(1);
|
|
65
|
+
}
|
|
66
|
+
return [new RegExp("".concat(domain.replace('.', '\\.'), "$"))];
|
|
67
|
+
}
|
|
68
|
+
return [];
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { createIdentifyEvent, Identify, ILogger } from '@amplitude/analytics-core';\nimport { Campaign } from './campaign';\nimport { BASE_CAMPAIGN } from './constants';\n\nexport interface Options {\n excludeReferrers?: (string | RegExp)[];\n initialEmptyValue?: string;\n resetSessionOnNewCampaign?: boolean;\n}\n\nconst domainWithoutSubdomain = (domain: string) => {\n const parts = domain.split('.');\n\n if (parts.length <= 2) {\n return domain;\n }\n\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nconst isDirectTraffic = (current: Campaign) => {\n return Object.values(current).every((value) => !value);\n};\n\nexport const isNewCampaign = (\n current: Campaign,\n previous: Campaign | undefined,\n options: Options,\n logger: ILogger,\n isNewSession = true,\n) => {\n const { referrer, referring_domain, ...currentCampaign } = current;\n const { referrer: _previous_referrer, referring_domain: prevReferringDomain, ...previousCampaign } = previous || {};\n\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n logger.debug(`This is not a new campaign because ${current.referring_domain} is in the exclude referrer list.`);\n return false;\n }\n\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n logger.debug('This is not a new campaign because this is a direct traffic in the same session.');\n return false;\n }\n\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n const hasNewDomain =\n domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n\n const result = !previous || hasNewCampaign || hasNewDomain;\n\n if (!result) {\n logger.debug(\"This is not a new campaign because it's the same as the previous one.\");\n } else {\n logger.debug(`This is a new campaign. An $identify event will be sent.`);\n }\n\n return result;\n};\n\nexport const isExcludedReferrer = (excludeReferrers: (string | RegExp)[] = [], referringDomain = '') => {\n return excludeReferrers.some((value) =>\n value instanceof RegExp ? value.test(referringDomain) : value === referringDomain,\n );\n};\n\nexport const createCampaignEvent = (campaign: Campaign, options: Options) => {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value ?? options.initialEmptyValue ?? 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n return createIdentifyEvent(identifyEvent);\n};\n\nexport const getDefaultExcludedReferrers = (cookieDomain: string | undefined) => {\n let domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(`${domain.replace('.', '\\\\.')}$`)];\n }\n return [];\n};\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BrowserConfig, ILogger, Storage } from '@amplitude/analytics-core';
|
|
2
|
+
import { Campaign } from './campaign';
|
|
3
|
+
import { Options } from './helpers';
|
|
4
|
+
export declare class WebAttribution {
|
|
5
|
+
options: Options;
|
|
6
|
+
storage: Storage<Campaign>;
|
|
7
|
+
storageKey: string;
|
|
8
|
+
previousCampaign?: Campaign;
|
|
9
|
+
currentCampaign: Campaign;
|
|
10
|
+
shouldTrackNewCampaign: boolean;
|
|
11
|
+
sessionTimeout: number;
|
|
12
|
+
lastEventTime?: number;
|
|
13
|
+
logger: ILogger;
|
|
14
|
+
constructor(options: Options, config: BrowserConfig);
|
|
15
|
+
init(): Promise<void>;
|
|
16
|
+
fetchCampaign(): Promise<[Campaign, Campaign | undefined]>;
|
|
17
|
+
/**
|
|
18
|
+
* This can be called when enable web attribution and either
|
|
19
|
+
* 1. set a new session
|
|
20
|
+
* 2. has new campaign and enable resetSessionOnNewCampaign
|
|
21
|
+
*/
|
|
22
|
+
generateCampaignEvent(event_id?: number): import("@amplitude/analytics-core/lib/esm/types/event/event").IdentifyEvent;
|
|
23
|
+
shouldSetSessionIdOnNewCampaign(): boolean;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=web-attribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-attribution.d.ts","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAA+B,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAmE,MAAM,WAAW,CAAC;AAIrG,qBAAa,cAAc;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,eAAe,EAAE,QAAQ,CAAC;IAC1B,sBAAsB,UAAS;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;gBAEJ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa;IAgB7C,IAAI;IAUJ,aAAa;IAInB;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;IAUvC,+BAA+B;CAGhC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator, __read } from "tslib";
|
|
2
|
+
import { getStorageKey, isNewSession } from '@amplitude/analytics-core';
|
|
3
|
+
import { getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';
|
|
4
|
+
import { CampaignParser } from './campaign-parser';
|
|
5
|
+
import { BASE_CAMPAIGN } from './constants';
|
|
6
|
+
var WebAttribution = /** @class */ (function () {
|
|
7
|
+
function WebAttribution(options, config) {
|
|
8
|
+
var _a;
|
|
9
|
+
this.shouldTrackNewCampaign = false;
|
|
10
|
+
this.options = __assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: getDefaultExcludedReferrers((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) }, options);
|
|
11
|
+
this.storage = config.cookieStorage;
|
|
12
|
+
this.storageKey = getStorageKey(config.apiKey, 'MKTG');
|
|
13
|
+
this.currentCampaign = BASE_CAMPAIGN;
|
|
14
|
+
this.sessionTimeout = config.sessionTimeout;
|
|
15
|
+
this.lastEventTime = config.lastEventTime;
|
|
16
|
+
this.logger = config.loggerProvider;
|
|
17
|
+
config.loggerProvider.log('Installing web attribution tracking.');
|
|
18
|
+
}
|
|
19
|
+
WebAttribution.prototype.init = function () {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
21
|
+
var isEventInNewSession;
|
|
22
|
+
var _a;
|
|
23
|
+
return __generator(this, function (_b) {
|
|
24
|
+
switch (_b.label) {
|
|
25
|
+
case 0: return [4 /*yield*/, this.fetchCampaign()];
|
|
26
|
+
case 1:
|
|
27
|
+
_a = __read.apply(void 0, [_b.sent(), 2]), this.currentCampaign = _a[0], this.previousCampaign = _a[1];
|
|
28
|
+
isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);
|
|
29
|
+
if (!isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) return [3 /*break*/, 3];
|
|
30
|
+
this.shouldTrackNewCampaign = true;
|
|
31
|
+
return [4 /*yield*/, this.storage.set(this.storageKey, this.currentCampaign)];
|
|
32
|
+
case 2:
|
|
33
|
+
_b.sent();
|
|
34
|
+
_b.label = 3;
|
|
35
|
+
case 3: return [2 /*return*/];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
WebAttribution.prototype.fetchCampaign = function () {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
switch (_a.label) {
|
|
44
|
+
case 0: return [4 /*yield*/, Promise.all([new CampaignParser().parse(), this.storage.get(this.storageKey)])];
|
|
45
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* This can be called when enable web attribution and either
|
|
52
|
+
* 1. set a new session
|
|
53
|
+
* 2. has new campaign and enable resetSessionOnNewCampaign
|
|
54
|
+
*/
|
|
55
|
+
WebAttribution.prototype.generateCampaignEvent = function (event_id) {
|
|
56
|
+
// Mark this campaign has been tracked
|
|
57
|
+
this.shouldTrackNewCampaign = false;
|
|
58
|
+
var campaignEvent = createCampaignEvent(this.currentCampaign, this.options);
|
|
59
|
+
if (event_id) {
|
|
60
|
+
campaignEvent.event_id = event_id;
|
|
61
|
+
}
|
|
62
|
+
return campaignEvent;
|
|
63
|
+
};
|
|
64
|
+
WebAttribution.prototype.shouldSetSessionIdOnNewCampaign = function () {
|
|
65
|
+
return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;
|
|
66
|
+
};
|
|
67
|
+
return WebAttribution;
|
|
68
|
+
}());
|
|
69
|
+
export { WebAttribution };
|
|
70
|
+
//# sourceMappingURL=web-attribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":";AAAA,OAAO,EAAmC,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzG,OAAO,EAAW,2BAA2B,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;IAWE,wBAAY,OAAgB,EAAE,MAAqB;;QALnD,2BAAsB,GAAG,KAAK,CAAC;QAM7B,IAAI,CAAC,OAAO,cACV,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EAAE,KAAK,EAChC,gBAAgB,EAAE,2BAA2B,CAAC,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,CAAC,IACxE,OAAO,CACX,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAA6C,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IAEK,6BAAI,GAAV;;;;;;4BACkD,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1E,KAAA,sBAAgD,SAA0B,KAAA,EAAzE,IAAI,CAAC,eAAe,QAAA,EAAE,IAAI,CAAC,gBAAgB,QAAA,CAA+B;wBACrE,mBAAmB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;6BAE3G,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAA1G,wBAA0G;wBAC5G,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;;;;;;KAEjE;IAEK,sCAAa,GAAnB;;;;4BACS,qBAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAA;4BAA3F,sBAAO,SAAoF,EAAC;;;;KAC7F;IAED;;;;OAIG;IACH,8CAAqB,GAArB,UAAsB,QAAiB;QACrC,sCAAsC;QACtC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,QAAQ,EAAE;YACZ,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACnC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,wDAA+B,GAA/B;QACE,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;IACjF,CAAC;IACH,qBAAC;AAAD,CAAC,AA3DD,IA2DC","sourcesContent":["import { BrowserConfig, ILogger, Storage, getStorageKey, isNewSession } from '@amplitude/analytics-core';\nimport { Campaign } from './campaign';\nimport { Options, getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN } from './constants';\n\nexport class WebAttribution {\n options: Options;\n storage: Storage<Campaign>;\n storageKey: string;\n previousCampaign?: Campaign;\n currentCampaign: Campaign;\n shouldTrackNewCampaign = false;\n sessionTimeout: number;\n lastEventTime?: number;\n logger: ILogger;\n\n constructor(options: Options, config: BrowserConfig) {\n this.options = {\n initialEmptyValue: 'EMPTY',\n resetSessionOnNewCampaign: false,\n excludeReferrers: getDefaultExcludedReferrers(config.cookieOptions?.domain),\n ...options,\n };\n this.storage = config.cookieStorage as unknown as Storage<Campaign>;\n this.storageKey = getStorageKey(config.apiKey, 'MKTG');\n this.currentCampaign = BASE_CAMPAIGN;\n this.sessionTimeout = config.sessionTimeout;\n this.lastEventTime = config.lastEventTime;\n this.logger = config.loggerProvider;\n config.loggerProvider.log('Installing web attribution tracking.');\n }\n\n async init() {\n [this.currentCampaign, this.previousCampaign] = await this.fetchCampaign();\n const isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);\n\n if (isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) {\n this.shouldTrackNewCampaign = true;\n await this.storage.set(this.storageKey, this.currentCampaign);\n }\n }\n\n async fetchCampaign() {\n return await Promise.all([new CampaignParser().parse(), this.storage.get(this.storageKey)]);\n }\n\n /**\n * This can be called when enable web attribution and either\n * 1. set a new session\n * 2. has new campaign and enable resetSessionOnNewCampaign\n */\n generateCampaignEvent(event_id?: number) {\n // Mark this campaign has been tracked\n this.shouldTrackNewCampaign = false;\n const campaignEvent = createCampaignEvent(this.currentCampaign, this.options);\n if (event_id) {\n campaignEvent.event_id = event_id;\n }\n return campaignEvent;\n }\n\n shouldSetSessionIdOnNewCampaign() {\n return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG7G,eAAO,MAAM,cAAc,QAAO,aA4HjC,CAAC;;AAEF,wBAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { debugWrapper, getClientLogConfig, getClientStates, BrowserClient } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { AmplitudeCore } from '@amplitude/analytics-core';
|
|
2
|
-
import { WebAttribution } from '
|
|
3
|
-
import { BrowserClient, BrowserConfig, BrowserOptions, Event, EventOptions, Identify as IIdentify, Revenue as IRevenue, TransportType, Result } from '@amplitude/analytics-types';
|
|
1
|
+
import { AmplitudeCore, Event, EventOptions, IIdentify, IRevenue, TransportType, Result, BrowserOptions, BrowserConfig, BrowserClient } from '@amplitude/analytics-core';
|
|
2
|
+
import { WebAttribution } from './attribution/web-attribution';
|
|
4
3
|
export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserClient {
|
|
5
4
|
config: BrowserConfig;
|
|
6
5
|
previousSessionDeviceId: string | undefined;
|
|
7
6
|
previousSessionUserId: string | undefined;
|
|
8
7
|
webAttribution: WebAttribution | undefined;
|
|
9
|
-
init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-
|
|
8
|
+
init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
|
|
10
9
|
protected _init(options: BrowserOptions & {
|
|
11
10
|
apiKey: string;
|
|
12
11
|
}): Promise<void>;
|
|
@@ -16,12 +15,12 @@ export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserCl
|
|
|
16
15
|
setDeviceId(deviceId: string): void;
|
|
17
16
|
reset(): void;
|
|
18
17
|
getSessionId(): number | undefined;
|
|
19
|
-
setSessionId(sessionId: number): import("@amplitude/analytics-
|
|
18
|
+
setSessionId(sessionId: number): import("@amplitude/analytics-core").AmplitudeReturn<void> | import("@amplitude/analytics-core").AmplitudeReturn<Result[]>;
|
|
20
19
|
extendSession(): void;
|
|
21
20
|
setTransport(transport: TransportType): void;
|
|
22
|
-
identify(identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-
|
|
23
|
-
groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-
|
|
24
|
-
revenue(revenue: IRevenue, eventOptions?: EventOptions): import("@amplitude/analytics-
|
|
21
|
+
identify(identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
|
|
22
|
+
groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
|
|
23
|
+
revenue(revenue: IRevenue, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
|
|
25
24
|
private trackCampaignEventIfNeeded;
|
|
26
25
|
process(event: Event): Promise<Result>;
|
|
27
26
|
private logBrowserOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,2BAA2B,CAAC;AAuBnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa;IAG1E,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAE3C,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAkB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAyFlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAYpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAU5B,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAwD9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA0B1B,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __assign, __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
import { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID } from '@amplitude/analytics-core';
|
|
3
|
-
import {
|
|
4
|
-
import { OfflineDisabled, } from '@amplitude/analytics-types';
|
|
2
|
+
import { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID, getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId, isNewSession, IdentityEventSender, getQueryParams, OfflineDisabled, } from '@amplitude/analytics-core';
|
|
3
|
+
import { getAttributionTrackingConfig, getPageViewTrackingConfig, getElementInteractionsConfig, isAttributionTrackingEnabled, isSessionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, isElementInteractionsEnabled, isPageViewTrackingEnabled, } from './default-tracking';
|
|
5
4
|
import { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';
|
|
6
5
|
import { Context } from './plugins/context';
|
|
7
6
|
import { useBrowserConfig, createTransport } from './config';
|
|
@@ -13,6 +12,7 @@ import { detNotify } from './det-notification';
|
|
|
13
12
|
import { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';
|
|
14
13
|
import { createBrowserJoinedConfigGenerator } from './config/joined-config';
|
|
15
14
|
import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser';
|
|
15
|
+
import { WebAttribution } from './attribution/web-attribution';
|
|
16
16
|
var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
17
17
|
__extends(AmplitudeBrowser, _super);
|
|
18
18
|
function AmplitudeBrowser() {
|
|
@@ -39,10 +39,10 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
39
39
|
return returnWrapper(this._init(__assign(__assign({}, options), { userId: userId, apiKey: apiKey })));
|
|
40
40
|
};
|
|
41
41
|
AmplitudeBrowser.prototype._init = function (options) {
|
|
42
|
+
var _a, _b, _c;
|
|
42
43
|
return __awaiter(this, void 0, void 0, function () {
|
|
43
44
|
var browserOptions, joinedConfigGenerator, attributionTrackingOptions, queryParams, querySessionId, connector;
|
|
44
45
|
var _this = this;
|
|
45
|
-
var _a, _b, _c;
|
|
46
46
|
return __generator(this, function (_d) {
|
|
47
47
|
switch (_d.label) {
|
|
48
48
|
case 0:
|