@amplitude/plugin-page-view-tracking-browser 2.9.2 → 2.9.4-SR-3115.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.map +1 -1
- package/lib/cjs/page-view-tracking.js +7 -1
- package/lib/cjs/page-view-tracking.js.map +1 -1
- package/lib/esm/page-view-tracking.d.ts.map +1 -1
- package/lib/esm/page-view-tracking.js +7 -1
- package/lib/esm/page-view-tracking.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/page-view-tracking.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,4BAoKpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,aACnC,MAAM,aACN,MAAM,KAChB,OAaF,CAAC"}
|
|
@@ -103,7 +103,13 @@ var pageViewTrackingPlugin = function (options) {
|
|
|
103
103
|
isTracking = true;
|
|
104
104
|
if (globalScope) {
|
|
105
105
|
// init session storage
|
|
106
|
-
|
|
106
|
+
try {
|
|
107
|
+
sessionStorage = new analytics_core_1.BrowserStorage(globalScope.sessionStorage);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
/* istanbul ignore next */
|
|
111
|
+
loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.debug('sessionStorage is not available in this environment.');
|
|
112
|
+
}
|
|
107
113
|
globalScope.addEventListener('popstate', handlePageChange);
|
|
108
114
|
/* istanbul ignore next */
|
|
109
115
|
// There is no global browser listener for changes to history, so we have
|
|
@@ -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 {\n getPageTitle,\n replaceSensitiveString,\n BrowserConfig,\n BrowserClient,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n ILogger,\n CampaignParser,\n getGlobalScope,\n BASE_CAMPAIGN,\n BrowserStorage,\n UUID,\n} from '@amplitude/analytics-core';\nimport { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const defaultPageViewEvent = '[Amplitude] Page Viewed';\nexport const PAGE_VIEW_SESSION_STORAGE_KEY = 'AMP_PAGE_VIEW';\n\ntype PageViewSessionStorage = {\n pageViewId: string;\n};\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (options: Options = {}) => {\n let amplitude: BrowserClient | undefined;\n const globalScope = getGlobalScope();\n let loggerProvider: ILogger | undefined = undefined;\n let isTracking = false;\n let localConfig: BrowserConfig;\n let sessionStorage: BrowserStorage<PageViewSessionStorage> | undefined;\n const { trackOn, trackHistoryChanges, eventType = defaultPageViewEvent } = options;\n\n const getDecodeURI = (locationStr: string): string => {\n let decodedLocationStr = locationStr;\n try {\n decodedLocationStr = decodeURI(locationStr);\n } catch (e) {\n /* istanbul ignore next */\n loggerProvider?.error('Malformed URI sequence: ', e);\n }\n\n return decodedLocationStr;\n };\n\n const createPageViewEvent = async (pageViewId: string | undefined): Promise<Event> => {\n /* istanbul ignore next */\n const locationHREF = getDecodeURI((typeof location !== 'undefined' && location.href) || '');\n return {\n event_type: eventType,\n event_properties: {\n ...(await getCampaignParams()),\n '[Amplitude] Page Domain':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n '[Amplitude] Page Location': locationHREF,\n '[Amplitude] Page Path':\n /* istanbul ignore next */ (typeof location !== 'undefined' && getDecodeURI(location.pathname)) || '',\n '[Amplitude] Page Title': /* istanbul ignore next */ getPageTitle(replaceSensitiveString),\n '[Amplitude] Page URL': locationHREF.split('?')[0],\n '[Amplitude] Page View ID': pageViewId,\n },\n };\n };\n\n const shouldTrackOnPageLoad = () => typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn());\n\n /* istanbul ignore next */\n let previousURL: string | null = typeof location !== 'undefined' ? location.href : null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n const shouldTrackPageView =\n shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n\n if (shouldTrackPageView) {\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent(pageViewId));\n }\n };\n\n /* istanbul ignore next */\n const handlePageChange = () => {\n void trackHistoryPageView();\n };\n\n const plugin: EnrichmentPlugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n\n setup: async (config: BrowserConfig, client: BrowserClient) => {\n amplitude = client;\n localConfig = config;\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n isTracking = true;\n if (globalScope) {\n // init session storage\n sessionStorage = new BrowserStorage<PageViewSessionStorage>(globalScope.sessionStorage);\n\n globalScope.addEventListener('popstate', handlePageChange);\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 target.apply(thisArg, [state, unused, url]);\n if (isTracking) {\n handlePageChange();\n }\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n amplitude.track(await createPageViewEvent(pageViewId));\n }\n },\n\n execute: async (event: Event) => {\n if (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 // Retrieve current page view id from session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n const pageViewSession = await sessionStorage.get(PAGE_VIEW_SESSION_STORAGE_KEY);\n pageViewId = pageViewSession?.pageViewId;\n }\n\n const pageViewEvent = await createPageViewEvent(pageViewId);\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = {\n ...event.event_properties,\n '[Amplitude] Page Counter': localConfig.pageCounter,\n };\n }\n return event;\n },\n\n teardown: async () => {\n if (globalScope) {\n globalScope.removeEventListener('popstate', handlePageChange);\n isTracking = false;\n }\n },\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 newURLStr: string,\n oldURLStr: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly': {\n if (oldURLStr == '') return true;\n const newURL = new URL(newURLStr);\n const oldURL = new URL(oldURLStr);\n const newBaseStr = newURL.origin + newURL.pathname;\n const oldBaseStr = oldURL.origin + oldURL.pathname;\n return newBaseStr !== oldBaseStr;\n }\n default:\n return newURLStr !== oldURLStr;\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 {\n getPageTitle,\n replaceSensitiveString,\n BrowserConfig,\n BrowserClient,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n ILogger,\n CampaignParser,\n getGlobalScope,\n BASE_CAMPAIGN,\n BrowserStorage,\n UUID,\n} from '@amplitude/analytics-core';\nimport { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const defaultPageViewEvent = '[Amplitude] Page Viewed';\nexport const PAGE_VIEW_SESSION_STORAGE_KEY = 'AMP_PAGE_VIEW';\n\ntype PageViewSessionStorage = {\n pageViewId: string;\n};\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (options: Options = {}) => {\n let amplitude: BrowserClient | undefined;\n const globalScope = getGlobalScope();\n let loggerProvider: ILogger | undefined = undefined;\n let isTracking = false;\n let localConfig: BrowserConfig;\n let sessionStorage: BrowserStorage<PageViewSessionStorage> | undefined;\n const { trackOn, trackHistoryChanges, eventType = defaultPageViewEvent } = options;\n\n const getDecodeURI = (locationStr: string): string => {\n let decodedLocationStr = locationStr;\n try {\n decodedLocationStr = decodeURI(locationStr);\n } catch (e) {\n /* istanbul ignore next */\n loggerProvider?.error('Malformed URI sequence: ', e);\n }\n\n return decodedLocationStr;\n };\n\n const createPageViewEvent = async (pageViewId: string | undefined): Promise<Event> => {\n /* istanbul ignore next */\n const locationHREF = getDecodeURI((typeof location !== 'undefined' && location.href) || '');\n return {\n event_type: eventType,\n event_properties: {\n ...(await getCampaignParams()),\n '[Amplitude] Page Domain':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n '[Amplitude] Page Location': locationHREF,\n '[Amplitude] Page Path':\n /* istanbul ignore next */ (typeof location !== 'undefined' && getDecodeURI(location.pathname)) || '',\n '[Amplitude] Page Title': /* istanbul ignore next */ getPageTitle(replaceSensitiveString),\n '[Amplitude] Page URL': locationHREF.split('?')[0],\n '[Amplitude] Page View ID': pageViewId,\n },\n };\n };\n\n const shouldTrackOnPageLoad = () => typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn());\n\n /* istanbul ignore next */\n let previousURL: string | null = typeof location !== 'undefined' ? location.href : null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n const shouldTrackPageView =\n shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n\n if (shouldTrackPageView) {\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent(pageViewId));\n }\n };\n\n /* istanbul ignore next */\n const handlePageChange = () => {\n void trackHistoryPageView();\n };\n\n const plugin: EnrichmentPlugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n\n setup: async (config: BrowserConfig, client: BrowserClient) => {\n amplitude = client;\n localConfig = config;\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n isTracking = true;\n if (globalScope) {\n // init session storage\n try {\n sessionStorage = new BrowserStorage<PageViewSessionStorage>(globalScope.sessionStorage);\n } catch (error) {\n /* istanbul ignore next */\n loggerProvider?.debug('sessionStorage is not available in this environment.');\n }\n\n globalScope.addEventListener('popstate', handlePageChange);\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 target.apply(thisArg, [state, unused, url]);\n if (isTracking) {\n handlePageChange();\n }\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n amplitude.track(await createPageViewEvent(pageViewId));\n }\n },\n\n execute: async (event: Event) => {\n if (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 // Retrieve current page view id from session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n const pageViewSession = await sessionStorage.get(PAGE_VIEW_SESSION_STORAGE_KEY);\n pageViewId = pageViewSession?.pageViewId;\n }\n\n const pageViewEvent = await createPageViewEvent(pageViewId);\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = {\n ...event.event_properties,\n '[Amplitude] Page Counter': localConfig.pageCounter,\n };\n }\n return event;\n },\n\n teardown: async () => {\n if (globalScope) {\n globalScope.removeEventListener('popstate', handlePageChange);\n isTracking = false;\n }\n },\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 newURLStr: string,\n oldURLStr: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly': {\n if (oldURLStr == '') return true;\n const newURL = new URL(newURLStr);\n const oldURL = new URL(oldURLStr);\n const newBaseStr = newURL.origin + newURL.pathname;\n const oldBaseStr = oldURL.origin + oldURL.pathname;\n return newBaseStr !== oldBaseStr;\n }\n default:\n return newURLStr !== oldURLStr;\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,4BAoKpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,mBACrB,OAAO,CAAC,qBAAqB,CAAC,aACnC,MAAM,aACN,MAAM,KAChB,OAaF,CAAC"}
|
|
@@ -100,7 +100,13 @@ export var pageViewTrackingPlugin = function (options) {
|
|
|
100
100
|
isTracking = true;
|
|
101
101
|
if (globalScope) {
|
|
102
102
|
// init session storage
|
|
103
|
-
|
|
103
|
+
try {
|
|
104
|
+
sessionStorage = new BrowserStorage(globalScope.sessionStorage);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
/* istanbul ignore next */
|
|
108
|
+
loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.debug('sessionStorage is not available in this environment.');
|
|
109
|
+
}
|
|
104
110
|
globalScope.addEventListener('popstate', handlePageChange);
|
|
105
111
|
/* istanbul ignore next */
|
|
106
112
|
// There is no global browser listener for changes to history, so we have
|
|
@@ -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 {\n getPageTitle,\n replaceSensitiveString,\n BrowserConfig,\n BrowserClient,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n ILogger,\n CampaignParser,\n getGlobalScope,\n BASE_CAMPAIGN,\n BrowserStorage,\n UUID,\n} from '@amplitude/analytics-core';\nimport { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const defaultPageViewEvent = '[Amplitude] Page Viewed';\nexport const PAGE_VIEW_SESSION_STORAGE_KEY = 'AMP_PAGE_VIEW';\n\ntype PageViewSessionStorage = {\n pageViewId: string;\n};\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (options: Options = {}) => {\n let amplitude: BrowserClient | undefined;\n const globalScope = getGlobalScope();\n let loggerProvider: ILogger | undefined = undefined;\n let isTracking = false;\n let localConfig: BrowserConfig;\n let sessionStorage: BrowserStorage<PageViewSessionStorage> | undefined;\n const { trackOn, trackHistoryChanges, eventType = defaultPageViewEvent } = options;\n\n const getDecodeURI = (locationStr: string): string => {\n let decodedLocationStr = locationStr;\n try {\n decodedLocationStr = decodeURI(locationStr);\n } catch (e) {\n /* istanbul ignore next */\n loggerProvider?.error('Malformed URI sequence: ', e);\n }\n\n return decodedLocationStr;\n };\n\n const createPageViewEvent = async (pageViewId: string | undefined): Promise<Event> => {\n /* istanbul ignore next */\n const locationHREF = getDecodeURI((typeof location !== 'undefined' && location.href) || '');\n return {\n event_type: eventType,\n event_properties: {\n ...(await getCampaignParams()),\n '[Amplitude] Page Domain':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n '[Amplitude] Page Location': locationHREF,\n '[Amplitude] Page Path':\n /* istanbul ignore next */ (typeof location !== 'undefined' && getDecodeURI(location.pathname)) || '',\n '[Amplitude] Page Title': /* istanbul ignore next */ getPageTitle(replaceSensitiveString),\n '[Amplitude] Page URL': locationHREF.split('?')[0],\n '[Amplitude] Page View ID': pageViewId,\n },\n };\n };\n\n const shouldTrackOnPageLoad = () => typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn());\n\n /* istanbul ignore next */\n let previousURL: string | null = typeof location !== 'undefined' ? location.href : null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n const shouldTrackPageView =\n shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n\n if (shouldTrackPageView) {\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent(pageViewId));\n }\n };\n\n /* istanbul ignore next */\n const handlePageChange = () => {\n void trackHistoryPageView();\n };\n\n const plugin: EnrichmentPlugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n\n setup: async (config: BrowserConfig, client: BrowserClient) => {\n amplitude = client;\n localConfig = config;\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n isTracking = true;\n if (globalScope) {\n // init session storage\n sessionStorage = new BrowserStorage<PageViewSessionStorage>(globalScope.sessionStorage);\n\n globalScope.addEventListener('popstate', handlePageChange);\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 target.apply(thisArg, [state, unused, url]);\n if (isTracking) {\n handlePageChange();\n }\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n amplitude.track(await createPageViewEvent(pageViewId));\n }\n },\n\n execute: async (event: Event) => {\n if (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 // Retrieve current page view id from session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n const pageViewSession = await sessionStorage.get(PAGE_VIEW_SESSION_STORAGE_KEY);\n pageViewId = pageViewSession?.pageViewId;\n }\n\n const pageViewEvent = await createPageViewEvent(pageViewId);\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = {\n ...event.event_properties,\n '[Amplitude] Page Counter': localConfig.pageCounter,\n };\n }\n return event;\n },\n\n teardown: async () => {\n if (globalScope) {\n globalScope.removeEventListener('popstate', handlePageChange);\n isTracking = false;\n }\n },\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 newURLStr: string,\n oldURLStr: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly': {\n if (oldURLStr == '') return true;\n const newURL = new URL(newURLStr);\n const oldURL = new URL(oldURLStr);\n const newBaseStr = newURL.origin + newURL.pathname;\n const oldBaseStr = oldURL.origin + oldURL.pathname;\n return newBaseStr !== oldBaseStr;\n }\n default:\n return newURLStr !== oldURLStr;\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 {\n getPageTitle,\n replaceSensitiveString,\n BrowserConfig,\n BrowserClient,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n ILogger,\n CampaignParser,\n getGlobalScope,\n BASE_CAMPAIGN,\n BrowserStorage,\n UUID,\n} from '@amplitude/analytics-core';\nimport { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const defaultPageViewEvent = '[Amplitude] Page Viewed';\nexport const PAGE_VIEW_SESSION_STORAGE_KEY = 'AMP_PAGE_VIEW';\n\ntype PageViewSessionStorage = {\n pageViewId: string;\n};\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (options: Options = {}) => {\n let amplitude: BrowserClient | undefined;\n const globalScope = getGlobalScope();\n let loggerProvider: ILogger | undefined = undefined;\n let isTracking = false;\n let localConfig: BrowserConfig;\n let sessionStorage: BrowserStorage<PageViewSessionStorage> | undefined;\n const { trackOn, trackHistoryChanges, eventType = defaultPageViewEvent } = options;\n\n const getDecodeURI = (locationStr: string): string => {\n let decodedLocationStr = locationStr;\n try {\n decodedLocationStr = decodeURI(locationStr);\n } catch (e) {\n /* istanbul ignore next */\n loggerProvider?.error('Malformed URI sequence: ', e);\n }\n\n return decodedLocationStr;\n };\n\n const createPageViewEvent = async (pageViewId: string | undefined): Promise<Event> => {\n /* istanbul ignore next */\n const locationHREF = getDecodeURI((typeof location !== 'undefined' && location.href) || '');\n return {\n event_type: eventType,\n event_properties: {\n ...(await getCampaignParams()),\n '[Amplitude] Page Domain':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n '[Amplitude] Page Location': locationHREF,\n '[Amplitude] Page Path':\n /* istanbul ignore next */ (typeof location !== 'undefined' && getDecodeURI(location.pathname)) || '',\n '[Amplitude] Page Title': /* istanbul ignore next */ getPageTitle(replaceSensitiveString),\n '[Amplitude] Page URL': locationHREF.split('?')[0],\n '[Amplitude] Page View ID': pageViewId,\n },\n };\n };\n\n const shouldTrackOnPageLoad = () => typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn());\n\n /* istanbul ignore next */\n let previousURL: string | null = typeof location !== 'undefined' ? location.href : null;\n\n const trackHistoryPageView = async (): Promise<void> => {\n const newURL = location.href;\n const shouldTrackPageView =\n shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n\n if (shouldTrackPageView) {\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent(pageViewId));\n }\n };\n\n /* istanbul ignore next */\n const handlePageChange = () => {\n void trackHistoryPageView();\n };\n\n const plugin: EnrichmentPlugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n\n setup: async (config: BrowserConfig, client: BrowserClient) => {\n amplitude = client;\n localConfig = config;\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n isTracking = true;\n if (globalScope) {\n // init session storage\n try {\n sessionStorage = new BrowserStorage<PageViewSessionStorage>(globalScope.sessionStorage);\n } catch (error) {\n /* istanbul ignore next */\n loggerProvider?.debug('sessionStorage is not available in this environment.');\n }\n\n globalScope.addEventListener('popstate', handlePageChange);\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 target.apply(thisArg, [state, unused, url]);\n if (isTracking) {\n handlePageChange();\n }\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n // Generate new page view id and set it in session storage\n let pageViewId: string | undefined;\n\n if (sessionStorage) {\n pageViewId = UUID();\n void sessionStorage.set(PAGE_VIEW_SESSION_STORAGE_KEY, { pageViewId });\n }\n\n amplitude.track(await createPageViewEvent(pageViewId));\n }\n },\n\n execute: async (event: Event) => {\n if (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 // Retrieve current page view id from session storage\n let pageViewId: string | undefined;\n if (sessionStorage) {\n const pageViewSession = await sessionStorage.get(PAGE_VIEW_SESSION_STORAGE_KEY);\n pageViewId = pageViewSession?.pageViewId;\n }\n\n const pageViewEvent = await createPageViewEvent(pageViewId);\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = {\n ...event.event_properties,\n '[Amplitude] Page Counter': localConfig.pageCounter,\n };\n }\n return event;\n },\n\n teardown: async () => {\n if (globalScope) {\n globalScope.removeEventListener('popstate', handlePageChange);\n isTracking = false;\n }\n },\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 newURLStr: string,\n oldURLStr: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly': {\n if (oldURLStr == '') return true;\n const newURL = new URL(newURLStr);\n const oldURL = new URL(oldURLStr);\n const newBaseStr = newURL.origin + newURL.pathname;\n const oldBaseStr = oldURL.origin + oldURL.pathname;\n return newBaseStr !== oldBaseStr;\n }\n default:\n return newURLStr !== oldURLStr;\n }\n};\n"]}
|
|
@@ -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,n,r=function(){return r=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},r.apply(this,arguments)};function i(e,t,n,r){return new(n||(n=Promise))(function(i,o){function u(e){try{c(r.next(e))}catch(e){o(e)}}function a(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(u,a)}c((r=r.apply(e,t||[])).next())})}function o(e,t){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=a(0),u.throw=a(1),u.return=a(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;u&&(u=0,a[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function u(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)u.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 u}function a(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))}"function"==typeof SuppressedError&&SuppressedError,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"}(t||(t={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(n||(n={}));var c="dclid",l="fbclid",d="gbraid",s="gclid",f="ko_click_id",p="li_fat_id",v="msclkid",g="rdt_cid",y="ttclid",h="twclid",m="wbraid",b={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,li_fat_id:void 0,msclkid:void 0,rdt_cid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},w=function(){var e="ampIntegrationContext";return"undefined"!=typeof globalThis&&void 0!==globalThis[e]?globalThis[e]:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},_=a([],u(Array(256).keys()),!1).map(function(e){return e.toString(16).padStart(2,"0")}),S=function(e){var t,n=w();if(!(null===(t=null==n?void 0:n.crypto)||void 0===t?void 0:t.getRandomValues))return function(e){return e?(e^16*Math.random()>>e/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,S)}(e);var r=n.crypto.getRandomValues(new Uint8Array(16));return r[6]=15&r[6]|64,r[8]=63&r[8]|128,a([],u(r.entries()),!1).map(function(e){var t=u(e,2),n=t[0],r=t[1];return[4,6,8,10].includes(n)?"-".concat(_[r]):_[r]}).join("")},E=function(){var e,t=w();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=P(n[0]),i=P(n[1]);return i?(e[r]=i,e):e},{}):{}},P=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},k=function(){function e(e){this.storage=e}return e.prototype.isEnabled=function(){return i(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:if(!this.storage)return[2,!1];t=String(Date.now()),n=new e(this.storage),r="AMP_TEST",i.label=1;case 1:return i.trys.push([1,4,5,7]),[4,n.set(r,t)];case 2:return i.sent(),[4,n.get(r)];case 3:return[2,i.sent()===t];case 4:return i.sent(),[2,!1];case 5:return[4,n.remove(r)];case 6:return i.sent(),[7];case 7:return[2]}})})},e.prototype.get=function(e){return i(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.getRaw(e)];case 1:return(t=n.sent())?[2,JSON.parse(t)]:[2,void 0];case 2:return n.sent(),console.error("[Amplitude] Error: Could not get value from storage"),[2,void 0];case 3:return[2]}})})},e.prototype.getRaw=function(e){var t;return i(this,void 0,void 0,function(){return o(this,function(n){return[2,(null===(t=this.storage)||void 0===t?void 0:t.getItem(e))||void 0]})})},e.prototype.set=function(e,t){var n;return i(this,void 0,void 0,function(){return o(this,function(r){try{null===(n=this.storage)||void 0===n||n.setItem(e,JSON.stringify(t))}catch(e){}return[2]})})},e.prototype.remove=function(e){var t;return i(this,void 0,void 0,function(){return o(this,function(n){try{null===(t=this.storage)||void 0===t||t.removeItem(e)}catch(e){}return[2]})})},e.prototype.reset=function(){var e;return i(this,void 0,void 0,function(){return o(this,function(t){try{null===(e=this.storage)||void 0===e||e.clear()}catch(e){}return[2]})})},e}(),T=function(){function e(){}return e.prototype.parse=function(){return i(this,void 0,void 0,function(){return o(this,function(e){return[2,r(r(r(r({},b),this.getUtmParam()),this.getReferrer()),this.getClickIds())]})})},e.prototype.getUtmParam=function(){var e=E();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=E();return(e={})[c]=t[c],e[l]=t[l],e[d]=t[d],e[s]=t[s],e[f]=t[f],e[p]=t[p],e[v]=t[v],e[g]=t[g],e[y]=t[y],e[h]=t[h],e[m]=t[m],e},e}(),I="*****",A=/\b(?:\d[ -]*?){13,16}\b/,R=/(\d{3}-?\d{2}-?\d{4})/g,O=/[^\s@]+@[^\s@.]+\.[^\s@]+/g,x=function(e,t){var n,r;if(void 0===t&&(t=[]),"string"!=typeof e)return"";var i=e;i=(i=(i=i.replace(A,I)).replace(R,I)).replace(O,I);try{for(var o=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),u=o.next();!u.done;u=o.next()){var a=u.value;try{i=i.replace(a,I)}catch(e){}}}catch(e){n={error:e}}finally{try{u&&!u.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return i},C=function(e){if("undefined"==typeof document||!document.title)return"";var t=document.querySelector("title");return t&&t.hasAttribute("data-amp-mask")?I:e?e(document.title):document.title},U=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},$="AMP_PAGE_VIEW",N=function(e){var t;void 0===e&&(e={});var n,a,c=w(),l=void 0,d=!1,s=e.trackOn,f=e.trackHistoryChanges,p=e.eventType,v=void 0===p?"[Amplitude] Page Viewed":p,g=function(e){var t=e;try{t=decodeURI(e)}catch(e){null==l||l.error("Malformed URI sequence: ",e)}return t},y=function(e){return i(void 0,void 0,void 0,function(){var t,n,i;return o(this,function(o){switch(o.label){case 0:return t=g("undefined"!=typeof location&&location.href||""),i={event_type:v},n=[{}],[4,j()];case 1:return[2,(i.event_properties=r.apply(void 0,[r.apply(void 0,n.concat([o.sent()])),{"[Amplitude] Page Domain":"undefined"!=typeof location&&location.hostname||"","[Amplitude] Page Location":t,"[Amplitude] Page Path":"undefined"!=typeof location&&g(location.pathname)||"","[Amplitude] Page Title":C(x),"[Amplitude] Page URL":t.split("?")[0],"[Amplitude] Page View ID":e}]),i)]}})})},h=function(){return void 0===s||"function"==typeof s&&s()},m="undefined"!=typeof location?location.href:null,b=function(){i(void 0,void 0,void 0,function(){var e,n,r,i,u;return o(this,function(o){switch(o.label){case 0:return e=location.href,n=D(f,e,m||"")&&h(),m=e,n?(r=void 0,a&&(r=S(),a.set($,{pageViewId:r})),null==l||l.log("Tracking page view event"),null!=t?[3,1]:[3,3]):[3,4];case 1:return u=(i=t).track,[4,y(r)];case 2:u.apply(i,[o.sent()]),o.label=3;case 3:o.label=4;case 4:return[2]}})})},_={name:"@amplitude/plugin-page-view-tracking-browser",type:"enrichment",setup:function(e,r){return i(void 0,void 0,void 0,function(){var i,s,f;return o(this,function(o){switch(o.label){case 0:return t=r,n=e,(l=e.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),d=!0,c&&(a=new k(c.sessionStorage),c.addEventListener("popstate",b),c.history.pushState=new Proxy(c.history.pushState,{apply:function(e,t,n){var r=u(n,3),i=r[0],o=r[1],a=r[2];e.apply(t,[i,o,a]),d&&b()}})),h()?(l.log("Tracking page view event"),i=void 0,a&&(i=S(),a.set($,{pageViewId:i})),f=(s=t).track,[4,y(i)]):[3,2];case 1:f.apply(s,[o.sent()]),o.label=2;case 2:return[2]}})})},execute:function(e){return i(void 0,void 0,void 0,function(){var t,i,u;return o(this,function(o){switch(o.label){case 0:return"attribution"===s&&V(e)?(null==l||l.log("Enriching campaign event to page view event with campaign parameters"),t=void 0,a?[4,a.get($)]:[3,2]):[3,4];case 1:i=o.sent(),t=null==i?void 0:i.pageViewId,o.label=2;case 2:return[4,y(t)];case 3:u=o.sent(),e.event_type=u.event_type,e.event_properties=r(r({},e.event_properties),u.event_properties),o.label=4;case 4:return n&&e.event_type===v&&(n.pageCounter=n.pageCounter?n.pageCounter+1:1,e.event_properties=r(r({},e.event_properties),{"[Amplitude] Page Counter":n.pageCounter})),[2,e]}})})},teardown:function(){return i(void 0,void 0,void 0,function(){return o(this,function(e){return c&&(c.removeEventListener("popstate",b),d=!1),[2]})})}};return _},j=function(){return i(void 0,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return e=U,[4,(new T).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}})})},V=function(e){if("$identify"===e.event_type&&e.user_properties){var n=e.user_properties,r=n[t.SET]||{},i=n[t.UNSET]||{},o=a(a([],u(Object.keys(r)),!1),u(Object.keys(i)),!1);return Object.keys(b).every(function(e){return o.includes(e)})}return!1},D=function(e,t,n){if("pathOnly"===e){if(""==n)return!0;var r=new URL(t),i=new URL(n);return r.origin+r.pathname!==i.origin+i.pathname}return t!==n};e.pageViewTrackingPlugin=N,e.plugin=N,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).amplitude={})}(this,function(e){"use strict";var t,n,r=function(){return r=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},r.apply(this,arguments)};function i(e,t,n,r){return new(n||(n=Promise))(function(i,o){function u(e){try{c(r.next(e))}catch(e){o(e)}}function a(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(u,a)}c((r=r.apply(e,t||[])).next())})}function o(e,t){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=a(0),u.throw=a(1),u.return=a(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;u&&(u=0,a[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function u(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)u.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 u}function a(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))}"function"==typeof SuppressedError&&SuppressedError,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"}(t||(t={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(n||(n={}));var c="dclid",l="fbclid",d="gbraid",s="gclid",f="ko_click_id",p="li_fat_id",v="msclkid",g="rdt_cid",y="ttclid",h="twclid",m="wbraid",b={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,li_fat_id:void 0,msclkid:void 0,rdt_cid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},w=function(){var e="ampIntegrationContext";return"undefined"!=typeof globalThis&&void 0!==globalThis[e]?globalThis[e]:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},_=a([],u(Array(256).keys()),!1).map(function(e){return e.toString(16).padStart(2,"0")}),S=function(e){var t,n=w();if(!(null===(t=null==n?void 0:n.crypto)||void 0===t?void 0:t.getRandomValues))return function(e){return e?(e^16*Math.random()>>e/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,S)}(e);var r=n.crypto.getRandomValues(new Uint8Array(16));return r[6]=15&r[6]|64,r[8]=63&r[8]|128,a([],u(r.entries()),!1).map(function(e){var t=u(e,2),n=t[0],r=t[1];return[4,6,8,10].includes(n)?"-".concat(_[r]):_[r]}).join("")},E=function(){var e,t=w();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=P(n[0]),i=P(n[1]);return i?(e[r]=i,e):e},{}):{}},P=function(e){void 0===e&&(e="");try{return decodeURIComponent(e)}catch(e){return""}},k=function(){function e(e){this.storage=e}return e.prototype.isEnabled=function(){return i(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:if(!this.storage)return[2,!1];t=String(Date.now()),n=new e(this.storage),r="AMP_TEST",i.label=1;case 1:return i.trys.push([1,4,5,7]),[4,n.set(r,t)];case 2:return i.sent(),[4,n.get(r)];case 3:return[2,i.sent()===t];case 4:return i.sent(),[2,!1];case 5:return[4,n.remove(r)];case 6:return i.sent(),[7];case 7:return[2]}})})},e.prototype.get=function(e){return i(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.getRaw(e)];case 1:return(t=n.sent())?[2,JSON.parse(t)]:[2,void 0];case 2:return n.sent(),console.error("[Amplitude] Error: Could not get value from storage"),[2,void 0];case 3:return[2]}})})},e.prototype.getRaw=function(e){var t;return i(this,void 0,void 0,function(){return o(this,function(n){return[2,(null===(t=this.storage)||void 0===t?void 0:t.getItem(e))||void 0]})})},e.prototype.set=function(e,t){var n;return i(this,void 0,void 0,function(){return o(this,function(r){try{null===(n=this.storage)||void 0===n||n.setItem(e,JSON.stringify(t))}catch(e){}return[2]})})},e.prototype.remove=function(e){var t;return i(this,void 0,void 0,function(){return o(this,function(n){try{null===(t=this.storage)||void 0===t||t.removeItem(e)}catch(e){}return[2]})})},e.prototype.reset=function(){var e;return i(this,void 0,void 0,function(){return o(this,function(t){try{null===(e=this.storage)||void 0===e||e.clear()}catch(e){}return[2]})})},e}(),T=function(){function e(){}return e.prototype.parse=function(){return i(this,void 0,void 0,function(){return o(this,function(e){return[2,r(r(r(r({},b),this.getUtmParam()),this.getReferrer()),this.getClickIds())]})})},e.prototype.getUtmParam=function(){var e=E();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=E();return(e={})[c]=t[c],e[l]=t[l],e[d]=t[d],e[s]=t[s],e[f]=t[f],e[p]=t[p],e[v]=t[v],e[g]=t[g],e[y]=t[y],e[h]=t[h],e[m]=t[m],e},e}(),I="*****",A=/\b(?:\d[ -]*?){13,16}\b/,R=/(\d{3}-?\d{2}-?\d{4})/g,O=/[^\s@]+@[^\s@.]+\.[^\s@]+/g,x=function(e,t){var n,r;if(void 0===t&&(t=[]),"string"!=typeof e)return"";var i=e;i=(i=(i=i.replace(A,I)).replace(R,I)).replace(O,I);try{for(var o=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),u=o.next();!u.done;u=o.next()){var a=u.value;try{i=i.replace(a,I)}catch(e){}}}catch(e){n={error:e}}finally{try{u&&!u.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return i},C=function(e){if("undefined"==typeof document||!document.title)return"";var t=document.querySelector("title");return t&&t.hasAttribute("data-amp-mask")?I:e?e(document.title):document.title},U=function(e){var t={};for(var n in e){var r=e[n];r&&(t[n]=r)}return t},$="AMP_PAGE_VIEW",N=function(e){var t;void 0===e&&(e={});var n,a,c=w(),l=void 0,d=!1,s=e.trackOn,f=e.trackHistoryChanges,p=e.eventType,v=void 0===p?"[Amplitude] Page Viewed":p,g=function(e){var t=e;try{t=decodeURI(e)}catch(e){null==l||l.error("Malformed URI sequence: ",e)}return t},y=function(e){return i(void 0,void 0,void 0,function(){var t,n,i;return o(this,function(o){switch(o.label){case 0:return t=g("undefined"!=typeof location&&location.href||""),i={event_type:v},n=[{}],[4,j()];case 1:return[2,(i.event_properties=r.apply(void 0,[r.apply(void 0,n.concat([o.sent()])),{"[Amplitude] Page Domain":"undefined"!=typeof location&&location.hostname||"","[Amplitude] Page Location":t,"[Amplitude] Page Path":"undefined"!=typeof location&&g(location.pathname)||"","[Amplitude] Page Title":C(x),"[Amplitude] Page URL":t.split("?")[0],"[Amplitude] Page View ID":e}]),i)]}})})},h=function(){return void 0===s||"function"==typeof s&&s()},m="undefined"!=typeof location?location.href:null,b=function(){i(void 0,void 0,void 0,function(){var e,n,r,i,u;return o(this,function(o){switch(o.label){case 0:return e=location.href,n=D(f,e,m||"")&&h(),m=e,n?(r=void 0,a&&(r=S(),a.set($,{pageViewId:r})),null==l||l.log("Tracking page view event"),null!=t?[3,1]:[3,3]):[3,4];case 1:return u=(i=t).track,[4,y(r)];case 2:u.apply(i,[o.sent()]),o.label=3;case 3:o.label=4;case 4:return[2]}})})},_={name:"@amplitude/plugin-page-view-tracking-browser",type:"enrichment",setup:function(e,r){return i(void 0,void 0,void 0,function(){var i,s,f;return o(this,function(o){switch(o.label){case 0:if(t=r,n=e,(l=e.loggerProvider).log("Installing @amplitude/plugin-page-view-tracking-browser"),d=!0,c){try{a=new k(c.sessionStorage)}catch(e){null==l||l.debug("sessionStorage is not available in this environment.")}c.addEventListener("popstate",b),c.history.pushState=new Proxy(c.history.pushState,{apply:function(e,t,n){var r=u(n,3),i=r[0],o=r[1],a=r[2];e.apply(t,[i,o,a]),d&&b()}})}return h()?(l.log("Tracking page view event"),i=void 0,a&&(i=S(),a.set($,{pageViewId:i})),f=(s=t).track,[4,y(i)]):[3,2];case 1:f.apply(s,[o.sent()]),o.label=2;case 2:return[2]}})})},execute:function(e){return i(void 0,void 0,void 0,function(){var t,i,u;return o(this,function(o){switch(o.label){case 0:return"attribution"===s&&V(e)?(null==l||l.log("Enriching campaign event to page view event with campaign parameters"),t=void 0,a?[4,a.get($)]:[3,2]):[3,4];case 1:i=o.sent(),t=null==i?void 0:i.pageViewId,o.label=2;case 2:return[4,y(t)];case 3:u=o.sent(),e.event_type=u.event_type,e.event_properties=r(r({},e.event_properties),u.event_properties),o.label=4;case 4:return n&&e.event_type===v&&(n.pageCounter=n.pageCounter?n.pageCounter+1:1,e.event_properties=r(r({},e.event_properties),{"[Amplitude] Page Counter":n.pageCounter})),[2,e]}})})},teardown:function(){return i(void 0,void 0,void 0,function(){return o(this,function(e){return c&&(c.removeEventListener("popstate",b),d=!1),[2]})})}};return _},j=function(){return i(void 0,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return e=U,[4,(new T).parse()];case 1:return[2,e.apply(void 0,[t.sent()])]}})})},V=function(e){if("$identify"===e.event_type&&e.user_properties){var n=e.user_properties,r=n[t.SET]||{},i=n[t.UNSET]||{},o=a(a([],u(Object.keys(r)),!1),u(Object.keys(i)),!1);return Object.keys(b).every(function(e){return o.includes(e)})}return!1},D=function(e,t,n){if("pathOnly"===e){if(""==n)return!0;var r=new URL(t),i=new URL(n);return r.origin+r.pathname!==i.origin+i.pathname}return t!==n};e.pageViewTrackingPlugin=N,e.plugin=N,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"page-view-tracking.d.ts","sourceRoot":"","sources":["../../src/page-view-tracking.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAM7D,eAAO,MAAM,sBAAsB,EAAE,4BAoKpC,CAAC;AAeF,eAAO,MAAM,0BAA0B,GACrC,gBAAgB,OAAO,CAAC,qBAAqB,CAAC,EAC9C,WAAW,MAAM,EACjB,WAAW,MAAM,KAChB,OAaF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/plugin-page-view-tracking-browser",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.4-SR-3115.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Amplitude Inc",
|
|
6
6
|
"homepage": "https://github.com/amplitude/Amplitude-TypeScript",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"tslib": "^2.4.1",
|
|
25
|
-
"@amplitude/analytics-core": "2.
|
|
25
|
+
"@amplitude/analytics-core": "2.44.0-SR-3115.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@rollup/plugin-commonjs": "^23.0.4",
|