shopkit-analytics 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +258 -3
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +1039 -600
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +2 -2
- package/dist/{chunk-3TQR5DOP.mjs → chunk-3NR2AKE4.mjs} +1 -31
- package/dist/chunk-3NR2AKE4.mjs.map +1 -0
- package/dist/{chunk-P4OJDCEZ.mjs → chunk-BNV3EVHH.mjs} +3 -3
- package/dist/{chunk-JVEGG6JV.mjs → chunk-HCA4E2RA.mjs} +19 -13
- package/dist/chunk-HCA4E2RA.mjs.map +1 -0
- package/dist/{chunk-4MZH5OLR.mjs → chunk-U3UOXFS4.mjs} +1040 -603
- package/dist/chunk-U3UOXFS4.mjs.map +1 -0
- package/dist/events/index.d.mts +9 -41
- package/dist/events/index.d.ts +9 -41
- package/dist/events/index.js +801 -490
- package/dist/events/index.js.map +1 -1
- package/dist/events/index.mjs +5 -7
- package/dist/{index-GODWc1s6.d.mts → index-Bym1_EAp.d.mts} +74 -17
- package/dist/{index-BnNRgdUv.d.ts → index-DS9OI5Mz.d.ts} +74 -17
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1057 -645
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -6
- package/dist/index.mjs.map +1 -1
- package/dist/{subscriber-43gnCKWe.d.ts → subscriber-BDAm_BAi.d.ts} +38 -2
- package/dist/{subscriber-sWesj_5p.d.mts → subscriber-BoyOlh9t.d.mts} +38 -2
- package/dist/subscriber-VF3IYUCU.mjs +8 -0
- package/dist/types.d.mts +4 -340
- package/dist/types.d.ts +4 -340
- package/dist/types.js +0 -30
- package/dist/types.js.map +1 -1
- package/dist/types.mjs +1 -1
- package/package.json +2 -3
- package/dist/chunk-3TQR5DOP.mjs.map +0 -1
- package/dist/chunk-4MZH5OLR.mjs.map +0 -1
- package/dist/chunk-JVEGG6JV.mjs.map +0 -1
- package/dist/subscriber-IFZJU57V.mjs +0 -8
- /package/dist/{chunk-P4OJDCEZ.mjs.map → chunk-BNV3EVHH.mjs.map} +0 -0
- /package/dist/{subscriber-IFZJU57V.mjs.map → subscriber-VF3IYUCU.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
initTracking,
|
|
4
4
|
initializeEventTracking
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BNV3EVHH.mjs";
|
|
6
6
|
import {
|
|
7
7
|
AffiliateTracker_default,
|
|
8
8
|
captureAffiliateParams,
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
DEFAULT_CURRENCY,
|
|
20
20
|
EventNames,
|
|
21
21
|
GoogleAdapter,
|
|
22
|
-
HARDCODED_HANDLE,
|
|
23
22
|
KwikCheckoutAdapter,
|
|
24
23
|
KwikPassAdapter,
|
|
25
24
|
MoengageAdapter,
|
|
@@ -29,15 +28,15 @@ import {
|
|
|
29
28
|
createAdapterLogger,
|
|
30
29
|
createLogger,
|
|
31
30
|
logger
|
|
32
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-U3UOXFS4.mjs";
|
|
33
32
|
import {
|
|
34
33
|
EventType
|
|
35
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-3NR2AKE4.mjs";
|
|
36
35
|
import {
|
|
37
36
|
eventPublisher,
|
|
38
37
|
eventSubscriber,
|
|
39
38
|
publishEvent
|
|
40
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-HCA4E2RA.mjs";
|
|
41
40
|
|
|
42
41
|
// src/ShopkitAnalytics.tsx
|
|
43
42
|
import { useEffect } from "react";
|
|
@@ -161,7 +160,6 @@ export {
|
|
|
161
160
|
EventNames,
|
|
162
161
|
EventType,
|
|
163
162
|
GoogleAdapter,
|
|
164
|
-
HARDCODED_HANDLE,
|
|
165
163
|
KwikCheckoutAdapter,
|
|
166
164
|
KwikPassAdapter,
|
|
167
165
|
MoengageAdapter,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ShopkitAnalytics.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect } from \"react\";\nimport { useShopifyCookies } from \"@shopify/hydrogen-react\";\nimport { initializeEventTracking } from \"./events/init\";\nimport { AffiliateTracker } from \"./affiliate\";\nimport { createLogger, type LoggerConfig } from \"./logger\";\nimport {\n GoogleAdapter,\n PixelAdapter,\n MoengageAdapter,\n PostHogAdapter,\n ShopifyAdapter,\n KwikPassAdapter,\n KwikCheckoutAdapter,\n} from \"./adapters\";\nimport type {\n GoogleAdapterConfig,\n PixelAdapterConfig,\n MoengageAdapterConfig,\n PostHogAdapterConfig,\n ShopifyAdapterConfig,\n KwikPassConfig,\n KwikCheckoutConfig,\n} from \"./adapters\";\nimport type { TrackingAdapter } from \"./events/subscriber\";\nimport type { AffiliateConfig } from \"./affiliate/types\";\n\nexport interface ShopkitAnalyticsConfig {\n // Analytics Adapters\n googleAnalytics?: GoogleAdapterConfig;\n facebookPixel?: PixelAdapterConfig;\n moengage?: MoengageAdapterConfig;\n posthog?: PostHogAdapterConfig;\n shopify?: ShopifyAdapterConfig;\n kwikpass?: KwikPassConfig;\n kwikcheckout?: KwikCheckoutConfig;\n customAdapters?: TrackingAdapter[];\n\n // Affiliate Tracking\n affiliate?: {\n enabled?: boolean;\n config?: Partial<AffiliateConfig>;\n autoCapture?: boolean;\n };\n\n // Logger Settings\n logger?: LoggerConfig;\n\n // General Settings (deprecated - use logger.enabled instead)\n enableDebugLogs?: boolean;\n autoInitialize?: boolean;\n}\n\nexport interface ShopkitAnalyticsProps {\n config: ShopkitAnalyticsConfig;\n children?: React.ReactNode;\n onInitialized?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst ShopkitAnalytics: React.FC<ShopkitAnalyticsProps> = ({\n config,\n children,\n onInitialized,\n onError,\n}) => {\n // Enable Shopify cookies if Shopify adapter is configured\n useShopifyCookies({\n hasUserConsent: true,\n domain: config.shopify?.domain || \"\",\n });\n\n useEffect(() => {\n const initializeAnalytics = async () => {\n if (config.autoInitialize === false) return;\n\n // Create logger instance\n const loggerConfig: LoggerConfig = {\n enabled: config.logger?.enabled ?? config.enableDebugLogs ?? true,\n level: config.logger?.level ?? \"info\",\n name: \"@shopkit/analytics\",\n prettyPrint: config.logger?.prettyPrint ?? false,\n };\n\n const logger = createLogger(loggerConfig);\n\n try {\n logger.info(\"Starting initialization...\");\n\n const adapters: TrackingAdapter[] = [];\n\n // Helper function to add logger config to adapter config\n const addLoggerConfig = (adapterConfig: any) => ({\n ...adapterConfig,\n enableDebugLogs: loggerConfig.enabled,\n logLevel: loggerConfig.level,\n });\n\n // Google Analytics 4\n if (config.googleAnalytics) {\n const gaAdapter = new GoogleAdapter(\n addLoggerConfig(config.googleAnalytics)\n );\n adapters.push(gaAdapter);\n logger.info(\"Added Google Analytics adapter\");\n }\n\n // Facebook Pixel\n if (config.facebookPixel) {\n const pixelAdapter = new PixelAdapter(\n addLoggerConfig(config.facebookPixel)\n );\n adapters.push(pixelAdapter);\n logger.info(\"Added Facebook Pixel adapter\");\n }\n\n // MoEngage\n if (config.moengage) {\n const moengageAdapter = new MoengageAdapter(\n addLoggerConfig(config.moengage)\n );\n adapters.push(moengageAdapter);\n logger.info(\"Added MoEngage adapter\");\n }\n\n // PostHog\n if (config.posthog) {\n const posthogAdapter = new PostHogAdapter(\n addLoggerConfig(config.posthog)\n );\n adapters.push(posthogAdapter);\n logger.info(\"Added PostHog adapter\");\n }\n\n // Shopify Analytics\n if (config.shopify) {\n const shopifyAdapter = new ShopifyAdapter(\n addLoggerConfig(config.shopify)\n );\n adapters.push(shopifyAdapter);\n logger.info(\"Added Shopify Analytics adapter\");\n }\n\n // KwikPass Analytics\n if (config.kwikpass) {\n const kwikpassAdapter = new KwikPassAdapter(\n addLoggerConfig(config.kwikpass)\n );\n adapters.push(kwikpassAdapter);\n logger.info(\"Added KwikPass Analytics adapter\");\n }\n\n // KwikCheckout Analytics\n if (config.kwikcheckout) {\n const kwikcheckoutAdapter = new KwikCheckoutAdapter(\n addLoggerConfig(config.kwikcheckout)\n );\n adapters.push(kwikcheckoutAdapter);\n logger.info(\"Added KwikCheckout Analytics adapter\");\n }\n\n // Custom adapters\n if (config.customAdapters) {\n adapters.push(...config.customAdapters);\n logger.info(`Added ${config.customAdapters.length} custom adapters`);\n }\n\n if (adapters.length === 0) {\n logger.warn(\"No analytics adapters configured\");\n } else {\n // Initialize the event tracking system\n await initializeEventTracking(adapters);\n logger.info(\"Event tracking initialized with adapters\", {\n adapters: adapters.map((a) => a.name),\n });\n }\n\n logger.info(\"Initialization completed successfully\");\n onInitialized?.();\n } catch (err) {\n const error =\n err instanceof Error\n ? err\n : new Error(\"Unknown initialization error\");\n logger.error(\"Initialization failed\", error);\n onError?.(error);\n }\n };\n\n initializeAnalytics();\n }, [config, onInitialized, onError]);\n\n return (\n <>\n {/* Affiliate Tracker */}\n {config.affiliate?.enabled !== false && (\n <AffiliateTracker\n config={config.affiliate?.config}\n autoCapture={config.affiliate?.autoCapture}\n />\n )}\n\n {children ? <>{children}</> : null}\n </>\n );\n};\n\nexport default ShopkitAnalytics;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/ShopkitAnalytics.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect } from \"react\";\nimport { useShopifyCookies } from \"@shopify/hydrogen-react\";\nimport { initializeEventTracking } from \"./events/init\";\nimport { AffiliateTracker } from \"./affiliate\";\nimport { createLogger, type LoggerConfig } from \"./logger\";\nimport {\n GoogleAdapter,\n PixelAdapter,\n MoengageAdapter,\n PostHogAdapter,\n ShopifyAdapter,\n KwikPassAdapter,\n KwikCheckoutAdapter,\n} from \"./adapters\";\nimport type {\n GoogleAdapterConfig,\n PixelAdapterConfig,\n MoengageAdapterConfig,\n PostHogAdapterConfig,\n ShopifyAdapterConfig,\n KwikPassConfig,\n KwikCheckoutConfig,\n} from \"./adapters\";\nimport type { TrackingAdapter } from \"./events/subscriber\";\nimport type { AffiliateConfig } from \"./affiliate/types\";\n\nexport interface ShopkitAnalyticsConfig {\n // Analytics Adapters\n googleAnalytics?: GoogleAdapterConfig;\n facebookPixel?: PixelAdapterConfig;\n moengage?: MoengageAdapterConfig;\n posthog?: PostHogAdapterConfig;\n shopify?: ShopifyAdapterConfig;\n kwikpass?: KwikPassConfig;\n kwikcheckout?: KwikCheckoutConfig;\n customAdapters?: TrackingAdapter[];\n\n // Affiliate Tracking\n affiliate?: {\n enabled?: boolean;\n config?: Partial<AffiliateConfig>;\n autoCapture?: boolean;\n };\n\n // Logger Settings\n logger?: LoggerConfig;\n\n // General Settings (deprecated - use logger.enabled instead)\n enableDebugLogs?: boolean;\n autoInitialize?: boolean;\n}\n\nexport interface ShopkitAnalyticsProps {\n config: ShopkitAnalyticsConfig;\n children?: React.ReactNode;\n onInitialized?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst ShopkitAnalytics: React.FC<ShopkitAnalyticsProps> = ({\n config,\n children,\n onInitialized,\n onError,\n}) => {\n // Enable Shopify cookies if Shopify adapter is configured\n useShopifyCookies({\n hasUserConsent: true,\n domain: config.shopify?.domain || \"\",\n });\n\n useEffect(() => {\n const initializeAnalytics = async () => {\n if (config.autoInitialize === false) return;\n\n // Create logger instance\n const loggerConfig: LoggerConfig = {\n enabled: config.logger?.enabled ?? config.enableDebugLogs ?? true,\n level: config.logger?.level ?? \"info\",\n name: \"@shopkit/analytics\",\n prettyPrint: config.logger?.prettyPrint ?? false,\n };\n\n const logger = createLogger(loggerConfig);\n\n try {\n logger.info(\"Starting initialization...\");\n\n const adapters: TrackingAdapter[] = [];\n\n // Helper function to add logger config to adapter config\n const addLoggerConfig = (adapterConfig: any) => ({\n ...adapterConfig,\n enableDebugLogs: loggerConfig.enabled,\n logLevel: loggerConfig.level,\n });\n\n // Google Analytics 4\n if (config.googleAnalytics) {\n const gaAdapter = new GoogleAdapter(\n addLoggerConfig(config.googleAnalytics)\n );\n adapters.push(gaAdapter);\n logger.info(\"Added Google Analytics adapter\");\n }\n\n // Facebook Pixel\n if (config.facebookPixel) {\n const pixelAdapter = new PixelAdapter(\n addLoggerConfig(config.facebookPixel)\n );\n adapters.push(pixelAdapter);\n logger.info(\"Added Facebook Pixel adapter\");\n }\n\n // MoEngage\n if (config.moengage) {\n const moengageAdapter = new MoengageAdapter(\n addLoggerConfig(config.moengage)\n );\n adapters.push(moengageAdapter);\n logger.info(\"Added MoEngage adapter\");\n }\n\n // PostHog\n if (config.posthog) {\n const posthogAdapter = new PostHogAdapter(\n addLoggerConfig(config.posthog)\n );\n adapters.push(posthogAdapter);\n logger.info(\"Added PostHog adapter\");\n }\n\n // Shopify Analytics\n if (config.shopify) {\n const shopifyAdapter = new ShopifyAdapter(\n addLoggerConfig(config.shopify)\n );\n adapters.push(shopifyAdapter);\n logger.info(\"Added Shopify Analytics adapter\");\n }\n\n // KwikPass Analytics\n if (config.kwikpass) {\n const kwikpassAdapter = new KwikPassAdapter(\n addLoggerConfig(config.kwikpass)\n );\n adapters.push(kwikpassAdapter);\n logger.info(\"Added KwikPass Analytics adapter\");\n }\n\n // KwikCheckout Analytics\n if (config.kwikcheckout) {\n const kwikcheckoutAdapter = new KwikCheckoutAdapter(\n addLoggerConfig(config.kwikcheckout)\n );\n adapters.push(kwikcheckoutAdapter);\n logger.info(\"Added KwikCheckout Analytics adapter\");\n }\n\n // Custom adapters\n if (config.customAdapters) {\n adapters.push(...config.customAdapters);\n logger.info(`Added ${config.customAdapters.length} custom adapters`);\n }\n\n if (adapters.length === 0) {\n logger.warn(\"No analytics adapters configured\");\n } else {\n // Initialize the event tracking system\n await initializeEventTracking(adapters);\n logger.info(\"Event tracking initialized with adapters\", {\n adapters: adapters.map((a) => a.name),\n });\n }\n\n logger.info(\"Initialization completed successfully\");\n onInitialized?.();\n } catch (err) {\n const error =\n err instanceof Error\n ? err\n : new Error(\"Unknown initialization error\");\n logger.error(\"Initialization failed\", error);\n onError?.(error);\n }\n };\n\n initializeAnalytics();\n }, [config, onInitialized, onError]);\n\n return (\n <>\n {/* Affiliate Tracker */}\n {config.affiliate?.enabled !== false && (\n <AffiliateTracker\n config={config.affiliate?.config}\n autoCapture={config.affiliate?.autoCapture}\n />\n )}\n\n {children ? <>{children}</> : null}\n </>\n );\n};\n\nexport default ShopkitAnalytics;\n"],"mappings":"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","names":["logger"]}
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
import { TEvent } from './types.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Adapter-specific parameter types for event customization
|
|
5
|
+
* This file contains type definitions for adapter-specific overrides
|
|
6
|
+
* that can be passed as the second parameter to publishEvent()
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Base adapter parameter interface
|
|
10
|
+
* All adapters support event_name override and any custom parameters
|
|
11
|
+
*/
|
|
12
|
+
interface IBaseAdapterParams {
|
|
13
|
+
event_name?: string;
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Adapter-specific parameter overrides
|
|
18
|
+
* Simple interface that allows any adapter name with any parameters
|
|
19
|
+
*/
|
|
20
|
+
interface IAdapterParams {
|
|
21
|
+
[adapterName: string]: IBaseAdapterParams;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Type-safe adapter parameter definitions for known adapters
|
|
25
|
+
* This provides IntelliSense for common adapter names while still allowing flexibility
|
|
26
|
+
*/
|
|
27
|
+
interface TAdapterParams {
|
|
28
|
+
GoogleAnalytics?: IBaseAdapterParams;
|
|
29
|
+
FacebookPixel?: IBaseAdapterParams;
|
|
30
|
+
MoEngage?: IBaseAdapterParams;
|
|
31
|
+
PostHog?: IBaseAdapterParams;
|
|
32
|
+
ShopifyAnalytics?: IBaseAdapterParams;
|
|
33
|
+
KwikPass?: IBaseAdapterParams;
|
|
34
|
+
KwikCheckout?: IBaseAdapterParams;
|
|
35
|
+
[adapterName: string]: IBaseAdapterParams | undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
3
38
|
/**
|
|
4
39
|
* Interface for tracking adapters
|
|
5
40
|
*/
|
|
@@ -19,7 +54,7 @@ interface TrackingAdapter {
|
|
|
19
54
|
/**
|
|
20
55
|
* Track an event
|
|
21
56
|
*/
|
|
22
|
-
trackEvent: (event: TEvent) => Promise<void>;
|
|
57
|
+
trackEvent: (event: TEvent, params?: TAdapterParams) => Promise<void>;
|
|
23
58
|
}
|
|
24
59
|
/**
|
|
25
60
|
* EventSubscriber class responsible for managing tracking adapters and forwarding events
|
|
@@ -60,6 +95,7 @@ declare class EventSubscriber {
|
|
|
60
95
|
/**
|
|
61
96
|
* Handle an event by forwarding it to all enabled adapters
|
|
62
97
|
* @param event The event to handle
|
|
98
|
+
* @param params Optional adapter-specific parameters
|
|
63
99
|
*/
|
|
64
100
|
private handleEvent;
|
|
65
101
|
/**
|
|
@@ -77,4 +113,4 @@ declare class EventSubscriber {
|
|
|
77
113
|
}
|
|
78
114
|
declare const eventSubscriber: EventSubscriber;
|
|
79
115
|
|
|
80
|
-
export { type TrackingAdapter as T, eventSubscriber as e };
|
|
116
|
+
export { type IAdapterParams as I, type TrackingAdapter as T, type TAdapterParams as a, type IBaseAdapterParams as b, eventSubscriber as e };
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
import { TEvent } from './types.mjs';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Adapter-specific parameter types for event customization
|
|
5
|
+
* This file contains type definitions for adapter-specific overrides
|
|
6
|
+
* that can be passed as the second parameter to publishEvent()
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Base adapter parameter interface
|
|
10
|
+
* All adapters support event_name override and any custom parameters
|
|
11
|
+
*/
|
|
12
|
+
interface IBaseAdapterParams {
|
|
13
|
+
event_name?: string;
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Adapter-specific parameter overrides
|
|
18
|
+
* Simple interface that allows any adapter name with any parameters
|
|
19
|
+
*/
|
|
20
|
+
interface IAdapterParams {
|
|
21
|
+
[adapterName: string]: IBaseAdapterParams;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Type-safe adapter parameter definitions for known adapters
|
|
25
|
+
* This provides IntelliSense for common adapter names while still allowing flexibility
|
|
26
|
+
*/
|
|
27
|
+
interface TAdapterParams {
|
|
28
|
+
GoogleAnalytics?: IBaseAdapterParams;
|
|
29
|
+
FacebookPixel?: IBaseAdapterParams;
|
|
30
|
+
MoEngage?: IBaseAdapterParams;
|
|
31
|
+
PostHog?: IBaseAdapterParams;
|
|
32
|
+
ShopifyAnalytics?: IBaseAdapterParams;
|
|
33
|
+
KwikPass?: IBaseAdapterParams;
|
|
34
|
+
KwikCheckout?: IBaseAdapterParams;
|
|
35
|
+
[adapterName: string]: IBaseAdapterParams | undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
3
38
|
/**
|
|
4
39
|
* Interface for tracking adapters
|
|
5
40
|
*/
|
|
@@ -19,7 +54,7 @@ interface TrackingAdapter {
|
|
|
19
54
|
/**
|
|
20
55
|
* Track an event
|
|
21
56
|
*/
|
|
22
|
-
trackEvent: (event: TEvent) => Promise<void>;
|
|
57
|
+
trackEvent: (event: TEvent, params?: TAdapterParams) => Promise<void>;
|
|
23
58
|
}
|
|
24
59
|
/**
|
|
25
60
|
* EventSubscriber class responsible for managing tracking adapters and forwarding events
|
|
@@ -60,6 +95,7 @@ declare class EventSubscriber {
|
|
|
60
95
|
/**
|
|
61
96
|
* Handle an event by forwarding it to all enabled adapters
|
|
62
97
|
* @param event The event to handle
|
|
98
|
+
* @param params Optional adapter-specific parameters
|
|
63
99
|
*/
|
|
64
100
|
private handleEvent;
|
|
65
101
|
/**
|
|
@@ -77,4 +113,4 @@ declare class EventSubscriber {
|
|
|
77
113
|
}
|
|
78
114
|
declare const eventSubscriber: EventSubscriber;
|
|
79
115
|
|
|
80
|
-
export { type TrackingAdapter as T, eventSubscriber as e };
|
|
116
|
+
export { type IAdapterParams as I, type TrackingAdapter as T, type TAdapterParams as a, type IBaseAdapterParams as b, eventSubscriber as e };
|
package/dist/types.d.mts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
declare enum EventType {
|
|
5
5
|
PRODUCT_VIEW = "product_view",
|
|
6
|
-
STARTED_ORDER = "started_order",
|
|
7
6
|
PAGE_VIEW = "page_view",
|
|
8
7
|
BUTTON_CLICK = "button_click",
|
|
9
8
|
FORM_SUBMISSION = "form_submission",
|
|
@@ -16,11 +15,6 @@ declare enum EventType {
|
|
|
16
15
|
CHECKOUT_STARTED = "checkout_started",
|
|
17
16
|
CHECKOUT_COMPLETED = "checkout_completed",
|
|
18
17
|
SEARCH = "search",
|
|
19
|
-
CART_PAGE_LAND = "cart_page_land",
|
|
20
|
-
CLOSE_CART = "close_cart",
|
|
21
|
-
QUANTITY_CHANGE = "quantity_change",
|
|
22
|
-
FILTER_APPLIED = "filter_applied",
|
|
23
|
-
NEWSLETTER_SUBSCRIPTION = "newsletter_subscription",
|
|
24
18
|
USER_SIGNUP = "user_signup",
|
|
25
19
|
USER_LOGIN = "user_login",
|
|
26
20
|
CUSTOM = "custom",
|
|
@@ -31,25 +25,11 @@ declare enum EventType {
|
|
|
31
25
|
FORM_START = "form_start",
|
|
32
26
|
ADD_PAYMENT_INFO = "add_payment_info",
|
|
33
27
|
CART_VIEWED = "cart_viewed",
|
|
34
|
-
PAGES_SCREENS_PER_SESSION = "pages_screens_per_session",
|
|
35
28
|
VIEW_CONTENT = "view_content",
|
|
36
29
|
PURCHASE = "purchase",
|
|
37
30
|
VIEW_SEARCH_RESULTS = "view_search_results",
|
|
38
31
|
ORDER_PLACED = "order_placed",
|
|
39
32
|
BEGIN_CHECKOUT = "begin_checkout",
|
|
40
|
-
ITEM_PURCHASED = "item_purchased",
|
|
41
|
-
UPDATE_CART = "update_cart",
|
|
42
|
-
CUSTOMER_REGISTERED = "customer_registered",
|
|
43
|
-
CUSTOMER_LOGGED_IN = "customer_logged_in",
|
|
44
|
-
SHOPIFY_CHECKOUT_UPDATED = "shopify_checkout_updated",
|
|
45
|
-
SHOPIFY_ABANDONED_CHECKOUT = "shopify_abandoned_checkout",
|
|
46
|
-
SHOPIFY_ORDER_FULFILLED = "shopify_order_fulfilled",
|
|
47
|
-
SHOPIFY_CHECKOUT_STARTED = "shopify_checkout_started",
|
|
48
|
-
SHOPIFY_ADD_TO_CART = "shopify_add_to_cart",
|
|
49
|
-
SHOPIFY_REMOVED_FROM_CART = "shopify_removed_from_cart",
|
|
50
|
-
SHOPIFY_UPDATE_CART = "shopify_update_cart",
|
|
51
|
-
SPINFORM_RESULT = "spinform_result",
|
|
52
|
-
COUPON_COPIED = "coupon_copied",
|
|
53
33
|
STARTED_CHECKOUT_GK = "started_checkout_gk",
|
|
54
34
|
MOBILE_ADDED_GK = "mobile_added_gk",
|
|
55
35
|
ADDRESS_SELECTED_GK = "address_selected_gk",
|
|
@@ -59,17 +39,7 @@ declare enum EventType {
|
|
|
59
39
|
ORDER_SUCCESS = "order_success",
|
|
60
40
|
ORDER_COMPLETED = "order_completed",
|
|
61
41
|
PIN_CODE_ADDED_GK = "pin_code_added_gk",
|
|
62
|
-
ADDRESS_ADDED_GK = "address_added_gk"
|
|
63
|
-
KP_MP_PHONE_NUMBER_LOGGED_IN = "kp_mp_phone_number_logged_in",
|
|
64
|
-
KP_PHONE_NUMBER_LOGGED_IN = "kp_phone_number_logged_in",
|
|
65
|
-
KP_MP_SHOPIFY_LOGGED_IN = "kp_mp_shopify_logged_in",
|
|
66
|
-
KP_MP_SUCCESSFULLY_LOGGED_OUT = "kp_mp_successfully_logged_out",
|
|
67
|
-
KP_WHATSAPP_LOGGED_IN = "kp_whatsapp_logged_in",
|
|
68
|
-
KP_MP_TRUECALLER_LOGGED_IN = "kp_mp_truecaller_logged_in",
|
|
69
|
-
KP_MP_WHATSAPP_LOGGED_IN = "kp_mp_whatsapp_logged_in",
|
|
70
|
-
KP_TRUECALLER_LOGGED_IN = "kp_truecaller_logged_in",
|
|
71
|
-
KP_SHOPIFY_LOGGED_IN = "kp_shopify_logged_in",
|
|
72
|
-
KP_SUCCESSFULLY_LOGGED_OUT = "kp_successfully_logged_out"
|
|
42
|
+
ADDRESS_ADDED_GK = "address_added_gk"
|
|
73
43
|
}
|
|
74
44
|
/**
|
|
75
45
|
* Base event interface that all events should implement
|
|
@@ -77,6 +47,7 @@ declare enum EventType {
|
|
|
77
47
|
interface BaseEvent {
|
|
78
48
|
type: EventType;
|
|
79
49
|
timestamp?: number;
|
|
50
|
+
eventId?: string;
|
|
80
51
|
event_category?: string;
|
|
81
52
|
description?: string;
|
|
82
53
|
[key: string]: any;
|
|
@@ -424,22 +395,6 @@ interface ISearchEvent extends BaseEvent {
|
|
|
424
395
|
content_ids: string[];
|
|
425
396
|
resultsCount?: number;
|
|
426
397
|
}
|
|
427
|
-
/**
|
|
428
|
-
* Filter applied event
|
|
429
|
-
*/
|
|
430
|
-
interface IFilterAppliedEvent extends BaseEvent {
|
|
431
|
-
type: EventType.FILTER_APPLIED;
|
|
432
|
-
filterType: string;
|
|
433
|
-
filterValue: string | number | boolean;
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Newsletter subscription event
|
|
437
|
-
*/
|
|
438
|
-
interface INewsletterSubscriptionEvent extends BaseEvent {
|
|
439
|
-
type: EventType.NEWSLETTER_SUBSCRIPTION;
|
|
440
|
-
email: string;
|
|
441
|
-
success: boolean;
|
|
442
|
-
}
|
|
443
398
|
/**
|
|
444
399
|
* View content event (for Facebook Pixel ViewContent)
|
|
445
400
|
*/
|
|
@@ -603,170 +558,6 @@ interface IAddPaymentInfoEvent extends BaseEvent {
|
|
|
603
558
|
variant?: string;
|
|
604
559
|
}>;
|
|
605
560
|
}
|
|
606
|
-
/**
|
|
607
|
-
* Item purchased event
|
|
608
|
-
*/
|
|
609
|
-
interface IItemPurchasedEvent extends BaseEvent {
|
|
610
|
-
type: EventType.ITEM_PURCHASED;
|
|
611
|
-
productId: string;
|
|
612
|
-
productName: string;
|
|
613
|
-
price: number;
|
|
614
|
-
currency?: string;
|
|
615
|
-
quantity: number;
|
|
616
|
-
variant?: string;
|
|
617
|
-
orderId?: string;
|
|
618
|
-
}
|
|
619
|
-
/**
|
|
620
|
-
* Update cart event
|
|
621
|
-
*/
|
|
622
|
-
interface IUpdateCartEvent extends BaseEvent {
|
|
623
|
-
type: EventType.UPDATE_CART;
|
|
624
|
-
productId: string;
|
|
625
|
-
productName: string;
|
|
626
|
-
price: number;
|
|
627
|
-
currency?: string;
|
|
628
|
-
quantity: number;
|
|
629
|
-
variant?: string;
|
|
630
|
-
}
|
|
631
|
-
/**
|
|
632
|
-
* Customer registered event
|
|
633
|
-
*/
|
|
634
|
-
interface ICustomerRegisteredEvent extends BaseEvent {
|
|
635
|
-
type: EventType.CUSTOMER_REGISTERED;
|
|
636
|
-
userId: string;
|
|
637
|
-
email?: string;
|
|
638
|
-
phone?: string;
|
|
639
|
-
firstName?: string;
|
|
640
|
-
lastName?: string;
|
|
641
|
-
}
|
|
642
|
-
/**
|
|
643
|
-
* Customer logged in event
|
|
644
|
-
*/
|
|
645
|
-
interface ICustomerLoggedInEvent extends BaseEvent {
|
|
646
|
-
type: EventType.CUSTOMER_LOGGED_IN;
|
|
647
|
-
userId: string;
|
|
648
|
-
email?: string;
|
|
649
|
-
phone?: string;
|
|
650
|
-
method?: string;
|
|
651
|
-
}
|
|
652
|
-
/**
|
|
653
|
-
* Shopify checkout updated event
|
|
654
|
-
*/
|
|
655
|
-
interface IShopifyCheckoutUpdatedEvent extends BaseEvent {
|
|
656
|
-
type: EventType.SHOPIFY_CHECKOUT_UPDATED;
|
|
657
|
-
checkoutId: string;
|
|
658
|
-
cartValue: number;
|
|
659
|
-
currency?: string;
|
|
660
|
-
itemCount: number;
|
|
661
|
-
items: Array<{
|
|
662
|
-
productId: string;
|
|
663
|
-
productName: string;
|
|
664
|
-
price: number;
|
|
665
|
-
quantity: number;
|
|
666
|
-
variant?: string;
|
|
667
|
-
}>;
|
|
668
|
-
}
|
|
669
|
-
/**
|
|
670
|
-
* Shopify abandoned checkout event
|
|
671
|
-
*/
|
|
672
|
-
interface IShopifyAbandonedCheckoutEvent extends BaseEvent {
|
|
673
|
-
type: EventType.SHOPIFY_ABANDONED_CHECKOUT;
|
|
674
|
-
checkoutId: string;
|
|
675
|
-
cartValue: number;
|
|
676
|
-
currency?: string;
|
|
677
|
-
itemCount: number;
|
|
678
|
-
items: Array<{
|
|
679
|
-
productId: string;
|
|
680
|
-
productName: string;
|
|
681
|
-
price: number;
|
|
682
|
-
quantity: number;
|
|
683
|
-
variant?: string;
|
|
684
|
-
}>;
|
|
685
|
-
}
|
|
686
|
-
/**
|
|
687
|
-
* Shopify order fulfilled event
|
|
688
|
-
*/
|
|
689
|
-
interface IShopifyOrderFulfilledEvent extends BaseEvent {
|
|
690
|
-
type: EventType.SHOPIFY_ORDER_FULFILLED;
|
|
691
|
-
orderId: string;
|
|
692
|
-
cartValue: number;
|
|
693
|
-
currency?: string;
|
|
694
|
-
itemCount: number;
|
|
695
|
-
items: Array<{
|
|
696
|
-
productId: string;
|
|
697
|
-
productName: string;
|
|
698
|
-
price: number;
|
|
699
|
-
quantity: number;
|
|
700
|
-
variant?: string;
|
|
701
|
-
}>;
|
|
702
|
-
}
|
|
703
|
-
/**
|
|
704
|
-
* Shopify checkout started event
|
|
705
|
-
*/
|
|
706
|
-
interface IShopifyCheckoutStartedEvent extends BaseEvent {
|
|
707
|
-
type: EventType.SHOPIFY_CHECKOUT_STARTED;
|
|
708
|
-
checkoutId: string;
|
|
709
|
-
cartValue: number;
|
|
710
|
-
currency?: string;
|
|
711
|
-
itemCount: number;
|
|
712
|
-
items: Array<{
|
|
713
|
-
productId: string;
|
|
714
|
-
productName: string;
|
|
715
|
-
price: number;
|
|
716
|
-
quantity: number;
|
|
717
|
-
variant?: string;
|
|
718
|
-
}>;
|
|
719
|
-
}
|
|
720
|
-
/**
|
|
721
|
-
* Shopify add to cart event
|
|
722
|
-
*/
|
|
723
|
-
interface IShopifyAddToCartEvent extends BaseEvent {
|
|
724
|
-
type: EventType.SHOPIFY_ADD_TO_CART;
|
|
725
|
-
productId: string;
|
|
726
|
-
productName: string;
|
|
727
|
-
price: number;
|
|
728
|
-
currency?: string;
|
|
729
|
-
quantity: number;
|
|
730
|
-
variant?: string;
|
|
731
|
-
}
|
|
732
|
-
/**
|
|
733
|
-
* Shopify remove from cart event
|
|
734
|
-
*/
|
|
735
|
-
interface IShopifyRemoveFromCartEvent extends BaseEvent {
|
|
736
|
-
type: EventType.SHOPIFY_REMOVED_FROM_CART;
|
|
737
|
-
productId: string;
|
|
738
|
-
productName: string;
|
|
739
|
-
price: number;
|
|
740
|
-
currency?: string;
|
|
741
|
-
quantity: number;
|
|
742
|
-
variant?: string;
|
|
743
|
-
}
|
|
744
|
-
/**
|
|
745
|
-
* Shopify update cart event
|
|
746
|
-
*/
|
|
747
|
-
interface IShopifyUpdateCartEvent extends BaseEvent {
|
|
748
|
-
type: EventType.SHOPIFY_UPDATE_CART;
|
|
749
|
-
productId: string;
|
|
750
|
-
productName: string;
|
|
751
|
-
price: number;
|
|
752
|
-
currency?: string;
|
|
753
|
-
quantity: number;
|
|
754
|
-
variant?: string;
|
|
755
|
-
}
|
|
756
|
-
/**
|
|
757
|
-
* Spinform result event
|
|
758
|
-
*/
|
|
759
|
-
interface ISpinformResultEvent extends BaseEvent {
|
|
760
|
-
type: EventType.SPINFORM_RESULT;
|
|
761
|
-
result?: string;
|
|
762
|
-
}
|
|
763
|
-
/**
|
|
764
|
-
* Coupon copied event
|
|
765
|
-
*/
|
|
766
|
-
interface ICouponCopiedEvent extends BaseEvent {
|
|
767
|
-
type: EventType.COUPON_COPIED;
|
|
768
|
-
couponCode?: string;
|
|
769
|
-
}
|
|
770
561
|
/**
|
|
771
562
|
* Started checkout GK event
|
|
772
563
|
*/
|
|
@@ -829,34 +620,6 @@ interface IOrderCompletedEvent extends BaseEvent {
|
|
|
829
620
|
amount?: number;
|
|
830
621
|
currency?: string;
|
|
831
622
|
}
|
|
832
|
-
/**
|
|
833
|
-
* Cart page land event
|
|
834
|
-
*/
|
|
835
|
-
interface ICartPageLandEvent extends BaseEvent {
|
|
836
|
-
type: EventType.CART_PAGE_LAND;
|
|
837
|
-
event_category: string;
|
|
838
|
-
description: string;
|
|
839
|
-
}
|
|
840
|
-
/**
|
|
841
|
-
* Close cart event
|
|
842
|
-
*/
|
|
843
|
-
interface ICloseCartEvent extends BaseEvent {
|
|
844
|
-
type: EventType.CLOSE_CART;
|
|
845
|
-
event_category: string;
|
|
846
|
-
description: string;
|
|
847
|
-
}
|
|
848
|
-
/**
|
|
849
|
-
* Quantity change event
|
|
850
|
-
*/
|
|
851
|
-
interface IQuantityChangeEvent extends BaseEvent {
|
|
852
|
-
type: EventType.QUANTITY_CHANGE;
|
|
853
|
-
event_category: string;
|
|
854
|
-
description: string;
|
|
855
|
-
productId: string;
|
|
856
|
-
productName: string;
|
|
857
|
-
price: number;
|
|
858
|
-
quantity: number;
|
|
859
|
-
}
|
|
860
623
|
/**
|
|
861
624
|
* PIN code added GK event
|
|
862
625
|
*/
|
|
@@ -871,105 +634,6 @@ interface IAddressAddedGKEvent extends BaseEvent {
|
|
|
871
634
|
type: EventType.ADDRESS_ADDED_GK;
|
|
872
635
|
addressId?: string;
|
|
873
636
|
}
|
|
874
|
-
/**
|
|
875
|
-
* KP MP phone number logged in event
|
|
876
|
-
*/
|
|
877
|
-
interface IKPMPPhoneNumberLoggedInEvent extends BaseEvent {
|
|
878
|
-
type: EventType.KP_MP_PHONE_NUMBER_LOGGED_IN;
|
|
879
|
-
phone?: string;
|
|
880
|
-
}
|
|
881
|
-
/**
|
|
882
|
-
* KP phone number logged in event
|
|
883
|
-
*/
|
|
884
|
-
interface IKPPhoneNumberLoggedInEvent extends BaseEvent {
|
|
885
|
-
type: EventType.KP_PHONE_NUMBER_LOGGED_IN;
|
|
886
|
-
phone?: string;
|
|
887
|
-
}
|
|
888
|
-
/**
|
|
889
|
-
* KP MP Shopify logged in event
|
|
890
|
-
*/
|
|
891
|
-
interface IKPMPShopifyLoggedInEvent extends BaseEvent {
|
|
892
|
-
type: EventType.KP_MP_SHOPIFY_LOGGED_IN;
|
|
893
|
-
userId?: string;
|
|
894
|
-
}
|
|
895
|
-
/**
|
|
896
|
-
* KP MP successfully logged out event
|
|
897
|
-
*/
|
|
898
|
-
interface IKPMPSuccessfullyLoggedOutEvent extends BaseEvent {
|
|
899
|
-
type: EventType.KP_MP_SUCCESSFULLY_LOGGED_OUT;
|
|
900
|
-
userId?: string;
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* KP WhatsApp logged in event
|
|
904
|
-
*/
|
|
905
|
-
interface IKPWhatsAppLoggedInEvent extends BaseEvent {
|
|
906
|
-
type: EventType.KP_WHATSAPP_LOGGED_IN;
|
|
907
|
-
phone?: string;
|
|
908
|
-
}
|
|
909
|
-
/**
|
|
910
|
-
* KP MP Truecaller logged in event
|
|
911
|
-
*/
|
|
912
|
-
interface IKPMPTruecallerLoggedInEvent extends BaseEvent {
|
|
913
|
-
type: EventType.KP_MP_TRUECALLER_LOGGED_IN;
|
|
914
|
-
phone?: string;
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* KP MP WhatsApp logged in event
|
|
918
|
-
*/
|
|
919
|
-
interface IKPMPWhatsAppLoggedInEvent extends BaseEvent {
|
|
920
|
-
type: EventType.KP_MP_WHATSAPP_LOGGED_IN;
|
|
921
|
-
phone?: string;
|
|
922
|
-
}
|
|
923
|
-
/**
|
|
924
|
-
* KP Truecaller logged in event
|
|
925
|
-
*/
|
|
926
|
-
interface IKPTruecallerLoggedInEvent extends BaseEvent {
|
|
927
|
-
type: EventType.KP_TRUECALLER_LOGGED_IN;
|
|
928
|
-
phone?: string;
|
|
929
|
-
}
|
|
930
|
-
/**
|
|
931
|
-
* KP Shopify logged in event
|
|
932
|
-
*/
|
|
933
|
-
interface IKPShopifyLoggedInEvent extends BaseEvent {
|
|
934
|
-
type: EventType.KP_SHOPIFY_LOGGED_IN;
|
|
935
|
-
userId?: string;
|
|
936
|
-
}
|
|
937
|
-
/**
|
|
938
|
-
* KP successfully logged out event
|
|
939
|
-
*/
|
|
940
|
-
interface IKPSuccessfullyLoggedOutEvent extends BaseEvent {
|
|
941
|
-
type: EventType.KP_SUCCESSFULLY_LOGGED_OUT;
|
|
942
|
-
userId?: string;
|
|
943
|
-
}
|
|
944
|
-
/**
|
|
945
|
-
* Pages screens per session event
|
|
946
|
-
*/
|
|
947
|
-
interface IPagesScreensPerSessionEvent extends BaseEvent {
|
|
948
|
-
type: EventType.PAGES_SCREENS_PER_SESSION;
|
|
949
|
-
currency: string;
|
|
950
|
-
firebase_conversion: boolean;
|
|
951
|
-
ga_session_id: string;
|
|
952
|
-
ga_session_number: number;
|
|
953
|
-
synthetic_bundle: boolean;
|
|
954
|
-
value: number;
|
|
955
|
-
}
|
|
956
|
-
/**
|
|
957
|
-
* Started order event
|
|
958
|
-
*/
|
|
959
|
-
interface IStartedOrderEvent extends BaseEvent {
|
|
960
|
-
type: EventType.STARTED_ORDER;
|
|
961
|
-
cartValue: number;
|
|
962
|
-
currency?: string;
|
|
963
|
-
itemCount: number;
|
|
964
|
-
items: Array<{
|
|
965
|
-
productId: string;
|
|
966
|
-
productName: string;
|
|
967
|
-
price: number;
|
|
968
|
-
quantity: number;
|
|
969
|
-
}>;
|
|
970
|
-
event_category: string;
|
|
971
|
-
description: string;
|
|
972
|
-
}
|
|
973
637
|
/**
|
|
974
638
|
* Product view event
|
|
975
639
|
*/
|
|
@@ -986,6 +650,6 @@ interface IProductViewEvent extends BaseEvent {
|
|
|
986
650
|
/**
|
|
987
651
|
* Union type of all possible events
|
|
988
652
|
*/
|
|
989
|
-
type TEvent = IProductViewEvent | IPageViewEvent | IButtonClickEvent | IFormSubmissionEvent |
|
|
653
|
+
type TEvent = IProductViewEvent | IPageViewEvent | IButtonClickEvent | IFormSubmissionEvent | IViewItemEvent | IPCollectionViewEvent | IAddToCartEvent | IRemoveFromCartEvent | ICheckoutStartedEvent | ICheckoutCompletedEvent | ICartViewedEvent | ISearchEvent | IUserSignupEvent | IUserLoginEvent | IViewContentEvent | IPurchaseEvent | IViewSearchResultsEvent | IOrderPlacedEvent | IBeginCheckoutEvent | ICustomEvent | IUserEngagementEvent | ISessionStartEvent | IFirstVisitEvent | IScrollEvent | IFormStartEvent | IAddPaymentInfoEvent | IStartedCheckoutGKEvent | IMobileAddedGKEvent | IAddressSelectedGKEvent | IAddressCompletedGKEvent | IPaymentMethodSelectedGKEvent | IPaymentCompletedGKEvent | IOrderSuccessEvent | IOrderCompletedEvent | IPinCodeAddedGKEvent | IAddressAddedGKEvent | IViewedProductEvent | ICheckoutPaymentEvent;
|
|
990
654
|
|
|
991
|
-
export { type BaseEvent, EventType, type IAddPaymentInfoEvent, type IAddToCartEvent, type IAddressAddedGKEvent, type IAddressCompletedGKEvent, type IAddressSelectedGKEvent, type IBeginCheckoutEvent, type IButtonClickEvent, type
|
|
655
|
+
export { type BaseEvent, EventType, type IAddPaymentInfoEvent, type IAddToCartEvent, type IAddressAddedGKEvent, type IAddressCompletedGKEvent, type IAddressSelectedGKEvent, type IBeginCheckoutEvent, type IButtonClickEvent, type ICartViewedEvent, type ICheckoutCompletedEvent, type ICheckoutPaymentEvent, type ICheckoutStartedEvent, type ICustomEvent, type IFirstVisitEvent, type IFormStartEvent, type IFormSubmissionEvent, type IMobileAddedGKEvent, type IOrderCompletedEvent, type IOrderPlacedEvent, type IOrderSuccessEvent, type IPCollectionViewEvent, type IPageViewEvent, type IPaymentCompletedGKEvent, type IPaymentMethodSelectedGKEvent, type IPinCodeAddedGKEvent, type IProductViewEvent, type IPurchaseEvent, type IRemoveFromCartEvent, type IScrollEvent, type ISearchEvent, type ISessionStartEvent, type IStartedCheckoutGKEvent, type IUserEngagementEvent, type IUserLoginEvent, type IUserSignupEvent, type IViewContentEvent, type IViewItemEvent, type IViewSearchResultsEvent, type IViewedProductEvent, type TEvent };
|