@amplitude/plugin-page-view-tracking-browser 0.5.7 → 0.6.0-beta.0
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/lib/cjs/page-view-tracking.d.ts +2 -3
- package/lib/cjs/page-view-tracking.d.ts.map +1 -1
- package/lib/cjs/page-view-tracking.js +60 -34
- package/lib/cjs/page-view-tracking.js.map +1 -1
- package/lib/cjs/typings/page-view-tracking.d.ts +6 -5
- package/lib/cjs/typings/page-view-tracking.d.ts.map +1 -1
- package/lib/cjs/typings/page-view-tracking.js.map +1 -1
- package/lib/esm/page-view-tracking.d.ts +2 -3
- package/lib/esm/page-view-tracking.d.ts.map +1 -1
- package/lib/esm/page-view-tracking.js +60 -34
- package/lib/esm/page-view-tracking.js.map +1 -1
- package/lib/esm/typings/page-view-tracking.d.ts +6 -5
- package/lib/esm/typings/page-view-tracking.d.ts.map +1 -1
- package/lib/esm/typings/page-view-tracking.js.map +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/page-view-tracking.d.ts +2 -3
- package/lib/scripts/page-view-tracking.d.ts.map +1 -1
- package/lib/scripts/typings/page-view-tracking.d.ts +6 -5
- package/lib/scripts/typings/page-view-tracking.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const pageViewTrackingPlugin: (client: BrowserClient, options?: Options) => EnrichmentPlugin;
|
|
1
|
+
import { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';
|
|
2
|
+
export declare const pageViewTrackingPlugin: CreatePageViewTrackingPlugin;
|
|
4
3
|
export declare const shouldTrackHistoryPageView: (trackingOption: Options['trackHistoryChanges'], newURL: string, oldURL: string) => boolean;
|
|
5
4
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,4BAA4B,EAE5B,OAAO,EACR,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,sBAAsB,EAAE,4BAyHpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
|
|
@@ -6,29 +6,68 @@ var analytics_client_common_1 = require("@amplitude/analytics-client-common");
|
|
|
6
6
|
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
7
7
|
var analytics_client_common_2 = require("@amplitude/analytics-client-common");
|
|
8
8
|
var utils_1 = require("./utils");
|
|
9
|
-
var pageViewTrackingPlugin = function (
|
|
10
|
-
|
|
9
|
+
var pageViewTrackingPlugin = function () {
|
|
10
|
+
var args = [];
|
|
11
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
12
|
+
args[_i] = arguments[_i];
|
|
13
|
+
}
|
|
14
|
+
var amplitude;
|
|
15
|
+
var options = {};
|
|
11
16
|
var globalScope = (0, analytics_client_common_1.getGlobalScope)();
|
|
12
17
|
var loggerProvider = undefined;
|
|
18
|
+
var _a = tslib_1.__read(args, 2), clientOrOptions = _a[0], configOrUndefined = _a[1];
|
|
19
|
+
if (clientOrOptions && 'init' in clientOrOptions) {
|
|
20
|
+
amplitude = clientOrOptions;
|
|
21
|
+
if (configOrUndefined) {
|
|
22
|
+
options = configOrUndefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (clientOrOptions) {
|
|
26
|
+
options = clientOrOptions;
|
|
27
|
+
}
|
|
28
|
+
var createPageViewEvent = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
29
|
+
var _a;
|
|
30
|
+
var _b;
|
|
31
|
+
var _c;
|
|
32
|
+
return tslib_1.__generator(this, function (_d) {
|
|
33
|
+
switch (_d.label) {
|
|
34
|
+
case 0:
|
|
35
|
+
_b = {
|
|
36
|
+
event_type: (_c = options.eventType) !== null && _c !== void 0 ? _c : 'Page View'
|
|
37
|
+
};
|
|
38
|
+
_a = [{}];
|
|
39
|
+
return [4 /*yield*/, getCampaignParams()];
|
|
40
|
+
case 1: return [2 /*return*/, (_b.event_properties = tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, _a.concat([(_d.sent())])), { page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '', page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '', page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '', page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '', page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '' }]),
|
|
41
|
+
_b)];
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}); };
|
|
13
45
|
var shouldTrackOnPageLoad = function () {
|
|
14
46
|
return typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());
|
|
15
47
|
};
|
|
16
48
|
var previousURL = null;
|
|
17
49
|
var trackHistoryPageView = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
18
|
-
var newURL, _a, _b;
|
|
19
|
-
return tslib_1.__generator(this, function (
|
|
20
|
-
switch (
|
|
50
|
+
var newURL, _a, _b, _c;
|
|
51
|
+
return tslib_1.__generator(this, function (_d) {
|
|
52
|
+
switch (_d.label) {
|
|
21
53
|
case 0:
|
|
22
54
|
newURL = location.href;
|
|
23
|
-
if (!((0, exports.shouldTrackHistoryPageView)(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad())) return [3 /*break*/,
|
|
55
|
+
if (!((0, exports.shouldTrackHistoryPageView)(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad())) return [3 /*break*/, 4];
|
|
24
56
|
/* istanbul ignore next */
|
|
25
57
|
loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Tracking page view event');
|
|
26
|
-
|
|
27
|
-
|
|
58
|
+
if (!(amplitude === null || amplitude === void 0)) return [3 /*break*/, 1];
|
|
59
|
+
_a = void 0;
|
|
60
|
+
return [3 /*break*/, 3];
|
|
28
61
|
case 1:
|
|
29
|
-
_b
|
|
30
|
-
|
|
62
|
+
_c = (_b = amplitude).track;
|
|
63
|
+
return [4 /*yield*/, createPageViewEvent()];
|
|
31
64
|
case 2:
|
|
65
|
+
_a = _c.apply(_b, [_d.sent()]);
|
|
66
|
+
_d.label = 3;
|
|
67
|
+
case 3:
|
|
68
|
+
_a;
|
|
69
|
+
_d.label = 4;
|
|
70
|
+
case 4:
|
|
32
71
|
previousURL = newURL;
|
|
33
72
|
return [2 /*return*/];
|
|
34
73
|
}
|
|
@@ -37,18 +76,23 @@ var pageViewTrackingPlugin = function (client, options) {
|
|
|
37
76
|
var plugin = {
|
|
38
77
|
name: 'page-view-tracking',
|
|
39
78
|
type: analytics_types_1.PluginType.ENRICHMENT,
|
|
40
|
-
setup: function (config) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
41
|
-
var _a, _b;
|
|
79
|
+
setup: function (config, client) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
80
|
+
var receivedType, _a, _b;
|
|
42
81
|
var _c, _d;
|
|
43
82
|
return tslib_1.__generator(this, function (_e) {
|
|
44
83
|
switch (_e.label) {
|
|
45
84
|
case 0:
|
|
85
|
+
amplitude = amplitude !== null && amplitude !== void 0 ? amplitude : client;
|
|
86
|
+
if (!amplitude) {
|
|
87
|
+
receivedType = clientOrOptions ? 'Options' : 'undefined';
|
|
88
|
+
config.loggerProvider.error("Argument of type '".concat(receivedType, "' is not assignable to parameter of type 'BrowserClient'."));
|
|
89
|
+
return [2 /*return*/];
|
|
90
|
+
}
|
|
46
91
|
loggerProvider = config.loggerProvider;
|
|
47
92
|
loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');
|
|
48
93
|
options.trackOn = ((_c = config.attribution) === null || _c === void 0 ? void 0 : _c.trackPageViews) ? 'attribution' : options.trackOn;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
loggerProvider.warn('@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser');
|
|
94
|
+
if (!client && ((_d = config.attribution) === null || _d === void 0 ? void 0 : _d.trackPageViews)) {
|
|
95
|
+
loggerProvider.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser.");
|
|
52
96
|
config.attribution.trackPageViews = false;
|
|
53
97
|
}
|
|
54
98
|
if (options.trackHistoryChanges && globalScope) {
|
|
@@ -71,7 +115,7 @@ var pageViewTrackingPlugin = function (client, options) {
|
|
|
71
115
|
}
|
|
72
116
|
if (!shouldTrackOnPageLoad()) return [3 /*break*/, 2];
|
|
73
117
|
loggerProvider.log('Tracking page view event');
|
|
74
|
-
_b = (_a =
|
|
118
|
+
_b = (_a = amplitude).track;
|
|
75
119
|
return [4 /*yield*/, createPageViewEvent()];
|
|
76
120
|
case 1:
|
|
77
121
|
_b.apply(_a, [_e.sent()]);
|
|
@@ -113,24 +157,6 @@ var getCampaignParams = function () { return tslib_1.__awaiter(_this, void 0, vo
|
|
|
113
157
|
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
|
|
114
158
|
}
|
|
115
159
|
}); }); };
|
|
116
|
-
var createPageViewEvent = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
117
|
-
var pageViewEvent, _a;
|
|
118
|
-
var _b;
|
|
119
|
-
return tslib_1.__generator(this, function (_c) {
|
|
120
|
-
switch (_c.label) {
|
|
121
|
-
case 0:
|
|
122
|
-
_b = {
|
|
123
|
-
event_type: 'Page View'
|
|
124
|
-
};
|
|
125
|
-
_a = [{}];
|
|
126
|
-
return [4 /*yield*/, getCampaignParams()];
|
|
127
|
-
case 1:
|
|
128
|
-
pageViewEvent = (_b.event_properties = tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, _a.concat([(_c.sent())])), { page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '', page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '', page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '', page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '', page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '' }]),
|
|
129
|
-
_b);
|
|
130
|
-
return [2 /*return*/, pageViewEvent];
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
}); };
|
|
134
160
|
var isCampaignEvent = function (event) {
|
|
135
161
|
if (event.event_type === '$identify' && event.user_properties) {
|
|
136
162
|
var properties = event.user_properties;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BrowserClient,\n BrowserConfig,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport {\n CreatePageViewTrackingPlugin,\n CreatePageViewTrackingPluginParameters,\n Options,\n} from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (\n ...args: CreatePageViewTrackingPluginParameters\n) => {\n let amplitude: BrowserClient | undefined;\n let options: Options = {};\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const [clientOrOptions, configOrUndefined] = args;\n if (clientOrOptions && 'init' in clientOrOptions) {\n amplitude = clientOrOptions;\n if (configOrUndefined) {\n options = configOrUndefined;\n }\n } else if (clientOrOptions) {\n options = clientOrOptions;\n }\n\n const createPageViewEvent = async (): Promise<Event> => {\n return {\n event_type: options.eventType ?? 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n };\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig, client?: BrowserClient) => {\n amplitude = amplitude ?? client;\n if (!amplitude) {\n const receivedType = clientOrOptions ? 'Options' : 'undefined';\n config.loggerProvider.error(\n `Argument of type '${receivedType}' is not assignable to parameter of type 'BrowserClient'.`,\n );\n return;\n }\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n if (!client && config.attribution?.trackPageViews) {\n loggerProvider.warn(\n `@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser.`,\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n amplitude.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { EnrichmentPlugin, BrowserClient, PageTrackingOptions as Options } from '@amplitude/analytics-types';
|
|
2
|
+
export { PageTrackingOptions as Options, PageTrackingTrackOn, PageTrackingHistoryChanges, } from '@amplitude/analytics-types';
|
|
3
|
+
export interface CreatePageViewTrackingPlugin {
|
|
4
|
+
(client: BrowserClient, options?: Options): EnrichmentPlugin;
|
|
5
|
+
(options?: Options): EnrichmentPlugin;
|
|
4
6
|
}
|
|
5
|
-
export type
|
|
6
|
-
export type PageTrackingHistoryChanges = 'all' | 'pathOnly';
|
|
7
|
+
export type CreatePageViewTrackingPluginParameters = [BrowserClient, Options?] | [Options?];
|
|
7
8
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE7G,OAAO,EACL,mBAAmB,IAAI,OAAO,EAC9B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,4BAA4B;IAC3C,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC7D,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,sCAAsC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"","sourcesContent":["import { EnrichmentPlugin, BrowserClient, PageTrackingOptions as Options } from '@amplitude/analytics-types';\n\nexport {\n PageTrackingOptions as Options,\n PageTrackingTrackOn,\n PageTrackingHistoryChanges,\n} from '@amplitude/analytics-types';\n\nexport interface CreatePageViewTrackingPlugin {\n (client: BrowserClient, options?: Options): EnrichmentPlugin;\n (options?: Options): EnrichmentPlugin;\n}\n\nexport type CreatePageViewTrackingPluginParameters = [BrowserClient, Options?] | [Options?];\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const pageViewTrackingPlugin: (client: BrowserClient, options?: Options) => EnrichmentPlugin;
|
|
1
|
+
import { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';
|
|
2
|
+
export declare const pageViewTrackingPlugin: CreatePageViewTrackingPlugin;
|
|
4
3
|
export declare const shouldTrackHistoryPageView: (trackingOption: Options['trackHistoryChanges'], newURL: string, oldURL: string) => boolean;
|
|
5
4
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,4BAA4B,EAE5B,OAAO,EACR,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,sBAAsB,EAAE,4BAyHpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
|
|
@@ -3,29 +3,68 @@ import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-comm
|
|
|
3
3
|
import { IdentifyOperation, PluginType, } from '@amplitude/analytics-types';
|
|
4
4
|
import { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';
|
|
5
5
|
import { omitUndefined } from './utils';
|
|
6
|
-
export var pageViewTrackingPlugin = function (
|
|
7
|
-
|
|
6
|
+
export var pageViewTrackingPlugin = function () {
|
|
7
|
+
var args = [];
|
|
8
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
9
|
+
args[_i] = arguments[_i];
|
|
10
|
+
}
|
|
11
|
+
var amplitude;
|
|
12
|
+
var options = {};
|
|
8
13
|
var globalScope = getGlobalScope();
|
|
9
14
|
var loggerProvider = undefined;
|
|
15
|
+
var _a = __read(args, 2), clientOrOptions = _a[0], configOrUndefined = _a[1];
|
|
16
|
+
if (clientOrOptions && 'init' in clientOrOptions) {
|
|
17
|
+
amplitude = clientOrOptions;
|
|
18
|
+
if (configOrUndefined) {
|
|
19
|
+
options = configOrUndefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else if (clientOrOptions) {
|
|
23
|
+
options = clientOrOptions;
|
|
24
|
+
}
|
|
25
|
+
var createPageViewEvent = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
26
|
+
var _a;
|
|
27
|
+
var _b;
|
|
28
|
+
var _c;
|
|
29
|
+
return __generator(this, function (_d) {
|
|
30
|
+
switch (_d.label) {
|
|
31
|
+
case 0:
|
|
32
|
+
_b = {
|
|
33
|
+
event_type: (_c = options.eventType) !== null && _c !== void 0 ? _c : 'Page View'
|
|
34
|
+
};
|
|
35
|
+
_a = [{}];
|
|
36
|
+
return [4 /*yield*/, getCampaignParams()];
|
|
37
|
+
case 1: return [2 /*return*/, (_b.event_properties = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_d.sent())])), { page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '', page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '', page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '', page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '', page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '' }]),
|
|
38
|
+
_b)];
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}); };
|
|
10
42
|
var shouldTrackOnPageLoad = function () {
|
|
11
43
|
return typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());
|
|
12
44
|
};
|
|
13
45
|
var previousURL = null;
|
|
14
46
|
var trackHistoryPageView = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
15
|
-
var newURL, _a, _b;
|
|
16
|
-
return __generator(this, function (
|
|
17
|
-
switch (
|
|
47
|
+
var newURL, _a, _b, _c;
|
|
48
|
+
return __generator(this, function (_d) {
|
|
49
|
+
switch (_d.label) {
|
|
18
50
|
case 0:
|
|
19
51
|
newURL = location.href;
|
|
20
|
-
if (!(shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad())) return [3 /*break*/,
|
|
52
|
+
if (!(shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad())) return [3 /*break*/, 4];
|
|
21
53
|
/* istanbul ignore next */
|
|
22
54
|
loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Tracking page view event');
|
|
23
|
-
|
|
24
|
-
|
|
55
|
+
if (!(amplitude === null || amplitude === void 0)) return [3 /*break*/, 1];
|
|
56
|
+
_a = void 0;
|
|
57
|
+
return [3 /*break*/, 3];
|
|
25
58
|
case 1:
|
|
26
|
-
_b
|
|
27
|
-
|
|
59
|
+
_c = (_b = amplitude).track;
|
|
60
|
+
return [4 /*yield*/, createPageViewEvent()];
|
|
28
61
|
case 2:
|
|
62
|
+
_a = _c.apply(_b, [_d.sent()]);
|
|
63
|
+
_d.label = 3;
|
|
64
|
+
case 3:
|
|
65
|
+
_a;
|
|
66
|
+
_d.label = 4;
|
|
67
|
+
case 4:
|
|
29
68
|
previousURL = newURL;
|
|
30
69
|
return [2 /*return*/];
|
|
31
70
|
}
|
|
@@ -34,18 +73,23 @@ export var pageViewTrackingPlugin = function (client, options) {
|
|
|
34
73
|
var plugin = {
|
|
35
74
|
name: 'page-view-tracking',
|
|
36
75
|
type: PluginType.ENRICHMENT,
|
|
37
|
-
setup: function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
38
|
-
var _a, _b;
|
|
76
|
+
setup: function (config, client) { return __awaiter(void 0, void 0, void 0, function () {
|
|
77
|
+
var receivedType, _a, _b;
|
|
39
78
|
var _c, _d;
|
|
40
79
|
return __generator(this, function (_e) {
|
|
41
80
|
switch (_e.label) {
|
|
42
81
|
case 0:
|
|
82
|
+
amplitude = amplitude !== null && amplitude !== void 0 ? amplitude : client;
|
|
83
|
+
if (!amplitude) {
|
|
84
|
+
receivedType = clientOrOptions ? 'Options' : 'undefined';
|
|
85
|
+
config.loggerProvider.error("Argument of type '".concat(receivedType, "' is not assignable to parameter of type 'BrowserClient'."));
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
43
88
|
loggerProvider = config.loggerProvider;
|
|
44
89
|
loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');
|
|
45
90
|
options.trackOn = ((_c = config.attribution) === null || _c === void 0 ? void 0 : _c.trackPageViews) ? 'attribution' : options.trackOn;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
loggerProvider.warn('@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser');
|
|
91
|
+
if (!client && ((_d = config.attribution) === null || _d === void 0 ? void 0 : _d.trackPageViews)) {
|
|
92
|
+
loggerProvider.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser.");
|
|
49
93
|
config.attribution.trackPageViews = false;
|
|
50
94
|
}
|
|
51
95
|
if (options.trackHistoryChanges && globalScope) {
|
|
@@ -68,7 +112,7 @@ export var pageViewTrackingPlugin = function (client, options) {
|
|
|
68
112
|
}
|
|
69
113
|
if (!shouldTrackOnPageLoad()) return [3 /*break*/, 2];
|
|
70
114
|
loggerProvider.log('Tracking page view event');
|
|
71
|
-
_b = (_a =
|
|
115
|
+
_b = (_a = amplitude).track;
|
|
72
116
|
return [4 /*yield*/, createPageViewEvent()];
|
|
73
117
|
case 1:
|
|
74
118
|
_b.apply(_a, [_e.sent()]);
|
|
@@ -109,24 +153,6 @@ var getCampaignParams = function () { return __awaiter(void 0, void 0, void 0, f
|
|
|
109
153
|
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
|
|
110
154
|
}
|
|
111
155
|
}); }); };
|
|
112
|
-
var createPageViewEvent = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
-
var pageViewEvent, _a;
|
|
114
|
-
var _b;
|
|
115
|
-
return __generator(this, function (_c) {
|
|
116
|
-
switch (_c.label) {
|
|
117
|
-
case 0:
|
|
118
|
-
_b = {
|
|
119
|
-
event_type: 'Page View'
|
|
120
|
-
};
|
|
121
|
-
_a = [{}];
|
|
122
|
-
return [4 /*yield*/, getCampaignParams()];
|
|
123
|
-
case 1:
|
|
124
|
-
pageViewEvent = (_b.event_properties = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '', page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '', page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '', page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '', page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '' }]),
|
|
125
|
-
_b);
|
|
126
|
-
return [2 /*return*/, pageViewEvent];
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}); };
|
|
130
156
|
var isCampaignEvent = function (event) {
|
|
131
157
|
if (event.event_type === '$identify' && event.user_properties) {
|
|
132
158
|
var properties = event.user_properties;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BaseEvent,\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin = (client: BrowserClient, options: Options = {}): EnrichmentPlugin => {\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n client.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig) => {\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n // Turn off sending page view event by \"runAttributionStrategy\" function\n if (config.attribution?.trackPageViews) {\n loggerProvider.warn(\n '@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser',\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n client.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst createPageViewEvent = async (): Promise<Event> => {\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n return pageViewEvent;\n};\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BrowserClient,\n BrowserConfig,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n PluginType,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport {\n CreatePageViewTrackingPlugin,\n CreatePageViewTrackingPluginParameters,\n Options,\n} from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (\n ...args: CreatePageViewTrackingPluginParameters\n) => {\n let amplitude: BrowserClient | undefined;\n let options: Options = {};\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n\n const [clientOrOptions, configOrUndefined] = args;\n if (clientOrOptions && 'init' in clientOrOptions) {\n amplitude = clientOrOptions;\n if (configOrUndefined) {\n options = configOrUndefined;\n }\n } else if (clientOrOptions) {\n options = clientOrOptions;\n }\n\n const createPageViewEvent = async (): Promise<Event> => {\n return {\n event_type: options.eventType ?? 'Page View',\n event_properties: {\n ...(await getCampaignParams()),\n page_domain: /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_url: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n };\n\n const shouldTrackOnPageLoad = () =>\n typeof options.trackOn === 'undefined' || (typeof options.trackOn === 'function' && options.trackOn());\n\n let previousURL: string | null = null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n\n if (shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad()) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent());\n }\n previousURL = newURL;\n };\n\n const plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT as const,\n\n setup: async (config: BrowserConfig, client?: BrowserClient) => {\n amplitude = amplitude ?? client;\n if (!amplitude) {\n const receivedType = clientOrOptions ? 'Options' : 'undefined';\n config.loggerProvider.error(\n `Argument of type '${receivedType}' is not assignable to parameter of type 'BrowserClient'.`,\n );\n return;\n }\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n options.trackOn = config.attribution?.trackPageViews ? 'attribution' : options.trackOn;\n\n if (!client && config.attribution?.trackPageViews) {\n loggerProvider.warn(\n `@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser.`,\n );\n config.attribution.trackPageViews = false;\n }\n\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', () => {\n void trackHistoryPageView();\n });\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n void trackHistoryPageView();\n\n return target.apply(thisArg, [state, unused, url]);\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n amplitude.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (options.trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n return event;\n },\n };\n\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (plugin as any).__trackHistoryPageView = trackHistoryPageView;\n\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { EnrichmentPlugin, BrowserClient, PageTrackingOptions as Options } from '@amplitude/analytics-types';
|
|
2
|
+
export { PageTrackingOptions as Options, PageTrackingTrackOn, PageTrackingHistoryChanges, } from '@amplitude/analytics-types';
|
|
3
|
+
export interface CreatePageViewTrackingPlugin {
|
|
4
|
+
(client: BrowserClient, options?: Options): EnrichmentPlugin;
|
|
5
|
+
(options?: Options): EnrichmentPlugin;
|
|
4
6
|
}
|
|
5
|
-
export type
|
|
6
|
-
export type PageTrackingHistoryChanges = 'all' | 'pathOnly';
|
|
7
|
+
export type CreatePageViewTrackingPluginParameters = [BrowserClient, Options?] | [Options?];
|
|
7
8
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE7G,OAAO,EACL,mBAAmB,IAAI,OAAO,EAC9B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,4BAA4B;IAC3C,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC7D,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,sCAAsC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"page-view-tracking.js","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"","sourcesContent":["import { EnrichmentPlugin, BrowserClient, PageTrackingOptions as Options } from '@amplitude/analytics-types';\n\nexport {\n PageTrackingOptions as Options,\n PageTrackingTrackOn,\n PageTrackingHistoryChanges,\n} from '@amplitude/analytics-types';\n\nexport interface CreatePageViewTrackingPlugin {\n (client: BrowserClient, options?: Options): EnrichmentPlugin;\n (options?: Options): EnrichmentPlugin;\n}\n\nexport type CreatePageViewTrackingPluginParameters = [BrowserClient, Options?] | [Options?];\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var pageViewTracking=function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function u(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}c((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!i||u[1]>i[0]&&u[1]<i[3])){a.label=u[1];break}if(6===u[0]&&a.label<i[1]){a.label=i[1],i=u;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(u);break}i[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,u,c,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},p=function(){var e,t=d();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 n=t.split("=",2),r=s(n[0]),i=s(n[1]);return i?(e[r]=i,e):e}),{}):{}},s=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},f="dclid",v="fbclid",
|
|
1
|
+
var pageViewTracking=function(e){"use strict";var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function u(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}c((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!i||u[1]>i[0]&&u[1]<i[3])){a.label=u[1];break}if(6===u[0]&&a.label<i[1]){a.label=i[1],i=u;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(u);break}i[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,u,c,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},p=function(){var e,t=d();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 n=t.split("=",2),r=s(n[0]),i=s(n[1]);return i?(e[r]=i,e):e}),{}):{}},s=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},f="dclid",v="fbclid",g="gbraid",y="gclid",m="ko_click_id",h="msclkid",b="ttclid",_="twclid",w="wbraid",E={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,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},k=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},E),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=p();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,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=p();return(e={})[f]=t[f],e[v]=t[v],e[g]=t[g],e[y]=t[y],e[m]=t[m],e[h]=t[h],e[b]=t[b],e[_]=t[_],e[w]=t[w],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"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(u||(u={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(c||(c={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var T=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},O=function(){for(var e,o=[],a=0;a<arguments.length;a++)o[a]=arguments[a];var u={},c=d(),p=void 0,s=i(o,2),f=s[0],v=s[1];f&&"init"in f?(e=f,v&&(u=v)):f&&(u=f);var g=function(){return n(void 0,void 0,void 0,(function(){var e,n,i;return r(this,(function(r){switch(r.label){case 0:return n={event_type:null!==(i=u.eventType)&&void 0!==i?i:"Page View"},e=[{}],[4,P()];case 1:return[2,(n.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([r.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),n)]}}))}))},y=function(){return void 0===u.trackOn||"function"==typeof u.trackOn&&u.trackOn()},m=null,h=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,R(u.trackHistoryChanges,t,m||"")&&y()?(null==p||p.log("Tracking page view event"),null!=e?[3,1]:[3,3]):[3,4];case 1:return i=(n=e).track,[4,g()];case 2:i.apply(n,[r.sent()]),r.label=3;case 3:r.label=4;case 4:return m=t,[2]}}))}))},b={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t,o){return n(void 0,void 0,void 0,(function(){var n,a,l,d,s;return r(this,(function(r){switch(r.label){case 0:return(e=null!=e?e:o)?((p=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),u.trackOn=(null===(d=t.attribution)||void 0===d?void 0:d.trackPageViews)?"attribution":u.trackOn,!o&&(null===(s=t.attribution)||void 0===s?void 0:s.trackPageViews)&&(p.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser."),t.attribution.trackPageViews=!1),u.trackHistoryChanges&&c&&(c.addEventListener("popstate",(function(){h()})),c.history.pushState=new Proxy(c.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],u=r[2];return h(),e.apply(t,[o,a,u])}})),y()?(p.log("Tracking page view event"),l=(a=e).track,[4,g()]):[3,2]):(n=f?"Options":"undefined",t.loggerProvider.error("Argument of type '".concat(n,"' is not assignable to parameter of type 'BrowserClient'.")),[2]);case 1:l.apply(a,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===u.trackOn&&N(e)?(null==p||p.log("Enriching campaign event to page view event with campaign parameters"),[4,g()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return b.__trackHistoryPageView=h,b},P=function(){return n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=T,[4,(new k).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))},N=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},u=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(E).every((function(e){return u.includes(e)}))}return!1},R=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},I=Object.freeze({__proto__:null});return e.Types=I,e.pageViewTrackingPlugin=O,e.plugin=O,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
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,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function u(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}c((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!i||u[1]>i[0]&&u[1]<i[3])){a.label=u[1];break}if(6===u[0]&&a.label<i[1]){a.label=i[1],i=u;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(u);break}i[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,u,c,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},p=function(){var e,t=d();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 n=t.split("=",2),r=
|
|
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,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function u(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}c((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!i||u[1]>i[0]&&u[1]<i[3])){a.label=u[1];break}if(6===u[0]&&a.label<i[1]){a.label=i[1],i=u;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(u);break}i[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=i=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function o(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var a,u,c,l,d=function(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},p=function(){var e,t=d();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 n=t.split("=",2),r=s(n[0]),i=s(n[1]);return i?(e[r]=i,e):e}),{}):{}},s=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},f="dclid",v="fbclid",y="gbraid",g="gclid",m="ko_click_id",h="msclkid",b="ttclid",_="twclid",w="wbraid",E={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,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},k=function(){function e(){}return e.prototype.parse=function(){return n(this,void 0,void 0,(function(){return r(this,(function(e){return[2,t(t(t(t({},E),this.getUtmParam()),this.getReferrer()),this.getClickIds())]}))}))},e.prototype.getUtmParam=function(){var e=p();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,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=null!==(t=null===(e=n.referrer)||void 0===e?void 0:e.split("/")[2])&&void 0!==t?t:void 0}catch(e){}return n},e.prototype.getClickIds=function(){var e,t=p();return(e={})[f]=t[f],e[v]=t[v],e[y]=t[y],e[g]=t[g],e[m]=t[m],e[h]=t[h],e[b]=t[b],e[_]=t[_],e[w]=t[w],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"}(a||(a={})),function(e){e.REVENUE_PRODUCT_ID="$productId",e.REVENUE_QUANTITY="$quantity",e.REVENUE_PRICE="$price",e.REVENUE_TYPE="$revenueType",e.REVENUE="$revenue"}(u||(u={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(c||(c={})),function(e){e.BEFORE="before",e.ENRICHMENT="enrichment",e.DESTINATION="destination"}(l||(l={}));var T=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},O=function(){for(var e,o=[],a=0;a<arguments.length;a++)o[a]=arguments[a];var u={},c=d(),p=void 0,s=i(o,2),f=s[0],v=s[1];f&&"init"in f?(e=f,v&&(u=v)):f&&(u=f);var y=function(){return n(void 0,void 0,void 0,(function(){var e,n,i;return r(this,(function(r){switch(r.label){case 0:return n={event_type:null!==(i=u.eventType)&&void 0!==i?i:"Page View"},e=[{}],[4,P()];case 1:return[2,(n.event_properties=t.apply(void 0,[t.apply(void 0,e.concat([r.sent()])),{page_domain:"undefined"!=typeof location&&location.hostname||"",page_location:"undefined"!=typeof location&&location.href||"",page_path:"undefined"!=typeof location&&location.pathname||"",page_title:"undefined"!=typeof document&&document.title||"",page_url:"undefined"!=typeof location&&location.href.split("?")[0]||""}]),n)]}}))}))},g=function(){return void 0===u.trackOn||"function"==typeof u.trackOn&&u.trackOn()},m=null,h=function(){return n(void 0,void 0,void 0,(function(){var t,n,i;return r(this,(function(r){switch(r.label){case 0:return t=location.href,R(u.trackHistoryChanges,t,m||"")&&g()?(null==p||p.log("Tracking page view event"),null!=e?[3,1]:[3,3]):[3,4];case 1:return i=(n=e).track,[4,y()];case 2:i.apply(n,[r.sent()]),r.label=3;case 3:r.label=4;case 4:return m=t,[2]}}))}))},b={name:"page-view-tracking",type:l.ENRICHMENT,setup:function(t,o){return n(void 0,void 0,void 0,(function(){var n,a,l,d,s;return r(this,(function(r){switch(r.label){case 0:return(e=null!=e?e:o)?((p=t.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),u.trackOn=(null===(d=t.attribution)||void 0===d?void 0:d.trackPageViews)?"attribution":u.trackOn,!o&&(null===(s=t.attribution)||void 0===s?void 0:s.trackPageViews)&&(p.warn("@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser."),t.attribution.trackPageViews=!1),u.trackHistoryChanges&&c&&(c.addEventListener("popstate",(function(){h()})),c.history.pushState=new Proxy(c.history.pushState,{apply:function(e,t,n){var r=i(n,3),o=r[0],a=r[1],u=r[2];return h(),e.apply(t,[o,a,u])}})),g()?(p.log("Tracking page view event"),l=(a=e).track,[4,y()]):[3,2]):(n=f?"Options":"undefined",t.loggerProvider.error("Argument of type '".concat(n,"' is not assignable to parameter of type 'BrowserClient'.")),[2]);case 1:l.apply(a,[r.sent()]),r.label=2;case 2:return[2]}}))}))},execute:function(e){return n(void 0,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return"attribution"===u.trackOn&&N(e)?(null==p||p.log("Enriching campaign event to page view event with campaign parameters"),[4,y()]):[3,2];case 1:n=r.sent(),e.event_type=n.event_type,e.event_properties=t(t({},e.event_properties),n.event_properties),r.label=2;case 2:return[2,e]}}))}))}};return b.__trackHistoryPageView=h,b},P=function(){return n(void 0,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return e=T,[4,(new k).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}}))}))},N=function(e){if("$identify"===e.event_type&&e.user_properties){var t=e.user_properties,n=t[a.SET]||{},r=t[a.UNSET]||{},u=o(o([],i(Object.keys(n)),!1),i(Object.keys(r)),!1);return Object.keys(E).every((function(e){return u.includes(e)}))}return!1},R=function(e,t,n){return"pathOnly"===e?t.split("?")[0]!==n.split("?")[0]:t!==n},I=Object.freeze({__proto__:null});e.Types=I,e.pageViewTrackingPlugin=O,e.plugin=O,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
Binary file
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const pageViewTrackingPlugin: (client: BrowserClient, options?: Options) => EnrichmentPlugin;
|
|
1
|
+
import { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';
|
|
2
|
+
export declare const pageViewTrackingPlugin: CreatePageViewTrackingPlugin;
|
|
4
3
|
export declare const shouldTrackHistoryPageView: (trackingOption: Options['trackHistoryChanges'], newURL: string, oldURL: string) => boolean;
|
|
5
4
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,4BAA4B,EAE5B,OAAO,EACR,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,sBAAsB,EAAE,4BAyHpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,UACtC,MAAM,UACN,MAAM,KACb,OAOF,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { EnrichmentPlugin, BrowserClient, PageTrackingOptions as Options } from '@amplitude/analytics-types';
|
|
2
|
+
export { PageTrackingOptions as Options, PageTrackingTrackOn, PageTrackingHistoryChanges, } from '@amplitude/analytics-types';
|
|
3
|
+
export interface CreatePageViewTrackingPlugin {
|
|
4
|
+
(client: BrowserClient, options?: Options): EnrichmentPlugin;
|
|
5
|
+
(options?: Options): EnrichmentPlugin;
|
|
4
6
|
}
|
|
5
|
-
export type
|
|
6
|
-
export type PageTrackingHistoryChanges = 'all' | 'pathOnly';
|
|
7
|
+
export type CreatePageViewTrackingPluginParameters = [BrowserClient, Options?] | [Options?];
|
|
7
8
|
//# sourceMappingURL=page-view-tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../../src/typings/page-view-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE7G,OAAO,EACL,mBAAmB,IAAI,OAAO,EAC9B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,4BAA4B;IAC3C,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC7D,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,sCAAsC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/plugin-page-view-tracking-browser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0-beta.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Amplitude Inc",
|
|
6
6
|
"homepage": "https://github.com/amplitude/Amplitude-TypeScript",
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@amplitude/analytics-client-common": "^0.
|
|
40
|
-
"@amplitude/analytics-types": "^0.
|
|
39
|
+
"@amplitude/analytics-client-common": "^0.6.0-beta.0",
|
|
40
|
+
"@amplitude/analytics-types": "^0.17.0-beta.0",
|
|
41
41
|
"tslib": "^2.4.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@amplitude/analytics-browser": "^1.
|
|
44
|
+
"@amplitude/analytics-browser": "^1.9.0-beta.0",
|
|
45
45
|
"@rollup/plugin-commonjs": "^23.0.4",
|
|
46
46
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
47
47
|
"@rollup/plugin-typescript": "^10.0.1",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"files": [
|
|
54
54
|
"lib"
|
|
55
55
|
],
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "5590f7d77d93362d2f3db6d47116ca502afd1fc4"
|
|
57
57
|
}
|