@jetshop/core 5.15.0-alpha.705c3635 → 5.15.0-alpha.c587c420

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,6 +3,7 @@ import { SelectedChannel } from '../components/ChannelContext/ChannelContext';
3
3
  import { BootOptions } from '../components/ConfigProvider';
4
4
  import { TrackerRegistry } from './trackerRegistry';
5
5
  import { Scalars } from '../types';
6
+ import { Cookies } from 'react-cookie';
6
7
  export interface AnalyticsConfigReleware {
7
8
  enabled: boolean;
8
9
  baseUrl: Scalars['Uri'];
@@ -19,6 +20,7 @@ export interface AnalyticsConfig {
19
20
  };
20
21
  releware?: AnalyticsConfigReleware;
21
22
  trackingAllowed: boolean;
23
+ consentedToTracking: boolean;
22
24
  }
23
25
  export interface AnalyticsProviderContext {
24
26
  config: AnalyticsConfig;
@@ -27,6 +29,7 @@ export interface AnalyticsProviderContext {
27
29
  export declare const AnalyticsContext: Context<AnalyticsProviderContext>;
28
30
  export interface AnalyticsProviderProps {
29
31
  releware?: AnalyticsConfigReleware;
32
+ cookies: Cookies;
30
33
  }
31
34
  export declare const getFacebookCapi: (selectedChannel: SelectedChannel) => {
32
35
  token: string;
@@ -24,7 +24,8 @@ const initialAnalyticsConfig = {
24
24
  baseUrl: null,
25
25
  uid: null
26
26
  },
27
- trackingAllowed: false
27
+ trackingAllowed: false,
28
+ consentedToTracking: false
28
29
  };
29
30
  export const AnalyticsContext = createContext({
30
31
  config: initialAnalyticsConfig,
@@ -72,6 +73,7 @@ export const getGoogleAnalytics = (config, selectedChannel) => {
72
73
  const AnalyticsProvider = function AnalyticsProvider(props) {
73
74
  const shopConfig = useShopConfig();
74
75
  const { selectedChannel } = useContext(ChannelContext);
76
+ const consentedToTracking = props.cookies.get('cookieConsent');
75
77
  const { tagManagerID, trackingID, useArticleNumberAsId, additionalGtagTrackingIds } = getGoogleAnalytics(shopConfig, selectedChannel);
76
78
  const { pixelId, token } = getFacebookCapi(selectedChannel);
77
79
  const trackingAllowed = allowsTrackingWithDNT();
@@ -85,14 +87,16 @@ const AnalyticsProvider = function AnalyticsProvider(props) {
85
87
  containerId: tagManagerID
86
88
  },
87
89
  releware: props.releware,
88
- trackingAllowed: trackingAllowed
90
+ trackingAllowed: trackingAllowed,
91
+ consentedToTracking: consentedToTracking === 'agreed'
89
92
  }), [
90
- props.releware,
91
- tagManagerID,
92
93
  trackingID,
93
94
  additionalGtagTrackingIds,
94
95
  useArticleNumberAsId,
95
- trackingAllowed
96
+ tagManagerID,
97
+ props.releware,
98
+ trackingAllowed,
99
+ consentedToTracking
96
100
  ]);
97
101
  const { gtm, gtag, releware } = analyticsConfig;
98
102
  const registry = useMemo(() => trackerRegistry({
@@ -109,7 +113,7 @@ const AnalyticsProvider = function AnalyticsProvider(props) {
109
113
  useArticleNumberAsId: gtag.useArticleNumberAsId
110
114
  }));
111
115
  }
112
- else {
116
+ else if (gtag === null || gtag === void 0 ? void 0 : gtag.trackingId) {
113
117
  registry.add(gtagTracker({
114
118
  currency: selectedChannel.currency.format.code,
115
119
  trackingId: gtag.trackingId,
@@ -130,6 +134,16 @@ const AnalyticsProvider = function AnalyticsProvider(props) {
130
134
  brandCustomField: shopConfig.brandCustomField,
131
135
  useArticleNumberAsId
132
136
  }));
137
+ const registred = registry.trackers();
138
+ if (!registred.includes('ga4') && !registred.includes('gtag')) {
139
+ registry.add(gtagTracker({
140
+ currency: selectedChannel.currency.format.code,
141
+ trackingId: gtm.containerId,
142
+ additionalGtagTrackingIds: [],
143
+ brandCustomField: shopConfig.brandCustomField,
144
+ useArticleNumberAsId
145
+ }));
146
+ }
133
147
  }
134
148
  if (shopConfig.trackers) {
135
149
  shopConfig.trackers.forEach((tracker) => {
@@ -151,8 +165,8 @@ const AnalyticsProvider = function AnalyticsProvider(props) {
151
165
  };
152
166
  }, [analyticsConfig, registry]);
153
167
  const preconnectLinks = usePreconnectLinks({
154
- ga: !!(gtag === null || gtag === void 0 ? void 0 : gtag.trackingId),
155
- gtm: !!(gtm === null || gtm === void 0 ? void 0 : gtm.containerId)
168
+ ga: consentedToTracking && !!(gtag === null || gtag === void 0 ? void 0 : gtag.trackingId),
169
+ gtm: consentedToTracking && !!(gtm === null || gtm === void 0 ? void 0 : gtm.containerId)
156
170
  });
157
171
  return (React.createElement(AnalyticsContext.Provider, { value: value },
158
172
  React.createElement(Helmet, null, preconnectLinks.map(({ href, crossOrigin }) => (React.createElement("link", Object.assign({ rel: "preconnect", href: href }, (crossOrigin && { crossOrigin }), { key: href }))))),
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["AnalyticsProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["AnalyticsProvider.tsx"],"names":[],"mappings":"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"}
@@ -17,8 +17,7 @@ function productToItem(product, selectedVariation, useArticleNumberAsId = false,
17
17
  export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currency, brandCustomField, useArticleNumberAsId = false }) {
18
18
  return {
19
19
  name: 'ga4',
20
- initBrowser() {
21
- const script = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;
20
+ initBrowser({ config }) {
22
21
  const w = window;
23
22
  w.dataLayer = w.dataLayer || [];
24
23
  w.dataLayer.push({
@@ -33,6 +32,25 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
33
32
  w.gtag = function gtag() {
34
33
  w.dataLayer.push(arguments);
35
34
  };
35
+ /**
36
+ NB:
37
+ Only cookieless pings will be sent to Google servers.
38
+ There’s also a wait time of 500 milliseconds before any Google tags are allowed to fire,
39
+ to give time for the update command to be invoked.
40
+ */
41
+ const consent = config.consentedToTracking ? 'granted' : 'denied';
42
+ gtag()('consent', 'default', {
43
+ ad_storage: consent,
44
+ // https://www.simoahava.com/analytics/consent-mode-google-tags/#restrict-advertising-storage
45
+ analytics_storage: consent,
46
+ personalization_storage: consent,
47
+ functionality_storage: 'granted',
48
+ security_storage: 'granted',
49
+ wait_for_update: 500
50
+ });
51
+ // NB: This only works when you set ad_storage to denied.
52
+ // https://developers.google.com/tag-platform/devguides/consent#redact_ads_data
53
+ gtag()('set', 'ads_data_redaction', true);
36
54
  w.gtag('js', new Date());
37
55
  if (process.env.REACT_APP_DEBUG_MODE === 'true') {
38
56
  gtag()('config', trackingId, {
@@ -45,10 +63,21 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
45
63
  additionalGtagTrackingIds.forEach((id) => {
46
64
  gtag()('config', id);
47
65
  });
48
- injectScript({ src: script });
66
+ injectScript({
67
+ src: `https://www.googletagmanager.com/gtag/js?id=${trackingId}`
68
+ });
49
69
  gtag();
50
70
  },
51
- trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context) {
71
+ consent(consents) {
72
+ gtag()('consent', 'update', consents
73
+ ? Object.assign(Object.assign({}, consents), { functionality_storage: 'granted' }) : {
74
+ ad_storage: 'granted',
75
+ analytics_storage: 'granted',
76
+ personalization_storage: 'granted',
77
+ security_storage: 'granted'
78
+ });
79
+ },
80
+ trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context, eventId) {
52
81
  const productItem = Object.assign(Object.assign({}, productToItem(product, selectedVariation, useArticleNumberAsId, brandCustomField, category)), { quantity, item_list_name: list || listName || context.list, index: index });
53
82
  switch (action) {
54
83
  case 'click':
@@ -56,28 +85,32 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
56
85
  content_type: 'product',
57
86
  currency,
58
87
  value: product.price.incVat,
59
- items: [productItem]
88
+ items: [productItem],
89
+ eventId
60
90
  });
61
91
  break;
62
92
  case 'view':
63
93
  gtag()('event', 'view_item', {
64
94
  currency,
65
95
  value: product.price.incVat,
66
- items: [productItem]
96
+ items: [productItem],
97
+ eventId
67
98
  });
68
99
  break;
69
100
  case 'add':
70
101
  gtag()('event', 'add_to_cart', {
71
102
  currency,
72
103
  value: product.price.incVat,
73
- items: [productItem]
104
+ items: [productItem],
105
+ eventId
74
106
  });
75
107
  break;
76
108
  case 'remove':
77
109
  gtag()('event', 'remove_from_cart', {
78
110
  currency,
79
111
  value: product.price.incVat,
80
- items: [productItem]
112
+ items: [productItem],
113
+ eventId
81
114
  });
82
115
  break;
83
116
  default:
@@ -102,14 +135,15 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
102
135
  // items
103
136
  // });
104
137
  // },
105
- trackPageView({ pathname, title }, _context) {
138
+ trackPageView({ pathname, title }, _context, eventId) {
106
139
  gtag()('event', 'page_view', {
107
140
  currency,
108
141
  page_path: pathname,
109
- page_title: title
142
+ page_title: title,
143
+ eventId
110
144
  });
111
145
  },
112
- trackList({ listName, products, category }, _context) {
146
+ trackList({ listName, products, category }, _context, eventId) {
113
147
  const items = products.map((product, i) => {
114
148
  var _a;
115
149
  return (Object.assign(Object.assign({}, productToItem(product, null, useArticleNumberAsId, brandCustomField)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, item_list_name: listName, index: i }));
@@ -117,27 +151,30 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
117
151
  gtag()('event', 'view_item_list', {
118
152
  item_list_id: category,
119
153
  item_list_name: listName,
120
- items
154
+ items,
155
+ eventId
121
156
  });
122
157
  },
123
- trackExperiment({ id, variant }, _context) {
158
+ trackExperiment({ id, variant }, _context, eventId) {
124
159
  gtag()('config', trackingId, {
125
- experiments: [{ id, variant }]
160
+ experiments: [{ id, variant }],
161
+ eventId
126
162
  });
127
163
  },
128
- trackUser({ userId }, _context) {
129
- gtag()('event', 'authentication', { user_id: userId });
164
+ trackUser({ userId }, _context, eventId) {
165
+ gtag()('event', 'authentication', { user_id: userId, eventId });
130
166
  },
131
- trackLogin(_props, _context) {
132
- gtag()('event', 'login', { trackingId });
167
+ trackLogin(_props, _context, eventId) {
168
+ gtag()('event', 'login', { trackingId, eventId });
133
169
  },
134
- trackRegister(_props, _context) {
135
- gtag()('event', 'sign_up', { trackingId });
170
+ trackRegister(_props, _context, eventId) {
171
+ gtag()('event', 'sign_up', { trackingId, eventId });
136
172
  },
137
- trackAddToWishList({ articleNumber, productName }, _context) {
173
+ trackAddToWishList({ articleNumber, productName }, _context, eventId) {
138
174
  gtag()('event', 'add_to_wishlist', {
139
175
  articleNumber,
140
- productName
176
+ productName,
177
+ eventId
141
178
  });
142
179
  }
143
180
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ga4.js","sourceRoot":"","sources":["ga4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ga4.js","sourceRoot":"","sources":["ga4.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,7 @@ function getProductData({ product, selectedVariation, useArticleNumberAsId = fal
33
33
  }
34
34
  export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], currency, brandCustomField, useArticleNumberAsId = false }) => ({
35
35
  name: 'gtag',
36
- initBrowser() {
37
- const script = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;
36
+ initBrowser({ config }) {
38
37
  const w = window;
39
38
  w.dataLayer = w.dataLayer || [];
40
39
  w.dataLayer.push({
@@ -49,6 +48,25 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
49
48
  w.gtag = function gtag() {
50
49
  w.dataLayer.push(arguments); // I'm not sure why but this dosen't work using rest params. Don't change this line
51
50
  };
51
+ /**
52
+ NB:
53
+ Only cookieless pings will be sent to Google servers.
54
+ There’s also a wait time of 500 milliseconds before any Google tags are allowed to fire,
55
+ to give time for the update command to be invoked.
56
+ */
57
+ const consent = config.consentedToTracking ? 'granted' : 'denied';
58
+ gtag()('consent', 'default', {
59
+ ad_storage: consent,
60
+ // https://www.simoahava.com/analytics/consent-mode-google-tags/#restrict-advertising-storage
61
+ analytics_storage: consent,
62
+ personalization_storage: consent,
63
+ functionality_storage: 'granted',
64
+ security_storage: 'granted',
65
+ wait_for_update: 500
66
+ });
67
+ // NB: This only works when you set ad_storage to denied.
68
+ // https://developers.google.com/tag-platform/devguides/consent#redact_ads_data
69
+ gtag()('set', 'ads_data_redaction', true);
52
70
  w.gtag('js', new Date());
53
71
  gtag()('config', trackingId, {
54
72
  currency,
@@ -60,9 +78,20 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
60
78
  send_page_view: false
61
79
  });
62
80
  });
63
- injectScript({ src: script });
81
+ injectScript({
82
+ src: `https://www.googletagmanager.com/gtag/js?id=${trackingId}`
83
+ });
64
84
  gtag();
65
85
  },
86
+ consent(consents) {
87
+ gtag()('consent', 'update', consents
88
+ ? Object.assign(Object.assign({}, consents), { functionality_storage: 'granted' }) : {
89
+ ad_storage: 'granted',
90
+ analytics_storage: 'granted',
91
+ personalization_storage: 'granted',
92
+ security_storage: 'granted'
93
+ });
94
+ },
66
95
  trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context, eventId) {
67
96
  const productData = Object.assign(Object.assign({}, getProductData({
68
97
  product,
@@ -1 +1 @@
1
- {"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Tracker } from './../../trackerRegistry';
2
+ declare global {
3
+ interface Window {
4
+ dataLayer: any[];
5
+ }
6
+ }
7
+ export declare const gtmTracker: ({ containerId, currency, useArticleNumberAsId, brandCustomField }: {
8
+ containerId: string;
9
+ currency: string;
10
+ brandCustomField?: string;
11
+ useArticleNumberAsId?: boolean;
12
+ }) => Tracker;
@@ -0,0 +1,234 @@
1
+ import { injectScript } from '../../utils/script';
2
+ import { getBrand } from '@jetshop/core/components/OpenGraph/OpenGraphProductData';
3
+ import { unSlugify } from '../unslugify';
4
+ import { breadcrumbsWithoutProduct } from '../../utils/breadcrumbsWithoutProduct';
5
+ function push(event) {
6
+ if (window.dataLayer) {
7
+ if (event.ecommerce) {
8
+ window.dataLayer.push({ ecommerce: null });
9
+ }
10
+ window.dataLayer.push(event);
11
+ }
12
+ }
13
+ function getProductData({ product, selectedVariation, useArticleNumberAsId = false, brandCustomField, category = '' }) {
14
+ if (useArticleNumberAsId) {
15
+ return {
16
+ id: (selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber) || product.articleNumber,
17
+ productId: product.id,
18
+ productSKU: product.articleNumber,
19
+ variant: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.values.join('_'),
20
+ variantSKU: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber,
21
+ name: product.name,
22
+ base_product: product.articleNumber,
23
+ category,
24
+ brand: getBrand(product, brandCustomField)
25
+ };
26
+ }
27
+ else {
28
+ // This is kept as backwards compatibility. Some shops rely on the product id being the internal Jetshop id, instead of the article number.
29
+ // Changing this could affect the statistics in Google Ads/Merchant/Analytics, so we want the new behaviour to be opt-in.
30
+ return {
31
+ id: product.id,
32
+ variant: selectedVariation
33
+ ? selectedVariation.articleNumber
34
+ : product.articleNumber,
35
+ name: product.name,
36
+ base_product: product.articleNumber,
37
+ category,
38
+ brand: getBrand(product, brandCustomField)
39
+ };
40
+ }
41
+ }
42
+ export const gtmTracker = ({ containerId, currency, useArticleNumberAsId = false, brandCustomField }) => ({
43
+ name: 'gtm',
44
+ initBrowser({ config }) {
45
+ const script = `https://www.googletagmanager.com/gtm.js?id=${containerId}`;
46
+ const w = window;
47
+ w.dataLayer = w.dataLayer || [];
48
+ w.dataLayer.push({
49
+ 'gtm.start': new Date().getTime(),
50
+ event: 'gtm.js',
51
+ originalLocation: document.location.protocol +
52
+ '//' +
53
+ document.location.hostname +
54
+ document.location.pathname +
55
+ document.location.search
56
+ });
57
+ const consent = config.consentedToTracking ? 'granted' : 'denied';
58
+ /**
59
+ NB:
60
+ Only cookieless pings will be sent to Google servers.
61
+ There’s also a wait time of 500 milliseconds before any Google tags are allowed to fire,
62
+ to give time for the update command to be invoked.
63
+ */
64
+ w.dataLayer.push({
65
+ event: 'gtm_consent_default',
66
+ ad_storage: consent,
67
+ // https://www.simoahava.com/analytics/consent-mode-google-tags/#restrict-advertising-storage
68
+ analytics_storage: consent,
69
+ personalization_storage: consent,
70
+ functionality_storage: 'granted',
71
+ security_storage: 'granted',
72
+ wait_for_update: 500
73
+ });
74
+ injectScript({ src: script });
75
+ },
76
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
77
+ consent() {
78
+ // Consent updated should be handled from inside GTM
79
+ },
80
+ trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context, eventId) {
81
+ const productData = Object.assign(Object.assign({}, getProductData({
82
+ product,
83
+ selectedVariation,
84
+ useArticleNumberAsId,
85
+ brandCustomField,
86
+ category
87
+ })), { price: (selectedVariation && selectedVariation.price.incVat) ||
88
+ (product.price && product.price.incVat), quantity, position: index });
89
+ switch (action) {
90
+ case 'click':
91
+ push({
92
+ event: 'productClick',
93
+ productIds: product.articleNumber,
94
+ ecommerce: {
95
+ click: {
96
+ actionField: { list: list || listName || context.list },
97
+ products: [productData]
98
+ }
99
+ },
100
+ eventId
101
+ });
102
+ break;
103
+ case 'view':
104
+ push({
105
+ event: 'productDetails',
106
+ ecommerce: {
107
+ currencyCode: currency,
108
+ detail: {
109
+ products: [productData]
110
+ }
111
+ },
112
+ eventId
113
+ });
114
+ break;
115
+ case 'add':
116
+ push({
117
+ event: 'addToCart',
118
+ productIds: product.articleNumber,
119
+ ecommerce: {
120
+ actionField: {
121
+ list: list || listName || context.list
122
+ },
123
+ currencyCode: currency,
124
+ add: {
125
+ products: [productData]
126
+ }
127
+ },
128
+ eventId
129
+ });
130
+ break;
131
+ case 'remove':
132
+ push({
133
+ event: 'removeFromCart',
134
+ productIds: product.articleNumber,
135
+ pageType: 'cart',
136
+ ecommerce: {
137
+ currencyCode: currency,
138
+ remove: {
139
+ products: [productData]
140
+ }
141
+ },
142
+ eventId
143
+ });
144
+ break;
145
+ default:
146
+ console.log('Error: Gtag can not track action ' + action);
147
+ break;
148
+ }
149
+ },
150
+ trackCartCheckout({ cart }, _, eventId) {
151
+ const items = cart.items.map((item) => {
152
+ var _a, _b, _c;
153
+ return (Object.assign(Object.assign({}, getProductData({
154
+ product: item.product,
155
+ selectedVariation: item.variant,
156
+ useArticleNumberAsId,
157
+ brandCustomField,
158
+ category: breadcrumbsWithoutProduct((_a = item.product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
159
+ unSlugify((_c = (_b = item.product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
160
+ ''
161
+ })), { price: item.total.incVat, quantity: item.quantity }));
162
+ });
163
+ push({
164
+ event: 'checkout',
165
+ ecommerce: {
166
+ products: items
167
+ },
168
+ eventId
169
+ });
170
+ },
171
+ trackPageView({ pathname, title }, _, eventId) {
172
+ push({
173
+ event: 'pageView',
174
+ pagePath: pathname,
175
+ pageTitle: title,
176
+ eventId
177
+ });
178
+ },
179
+ trackList({ listName, products, category }, _, eventId) {
180
+ const productData = products.map((product, i) => {
181
+ var _a, _b, _c, _d;
182
+ return (Object.assign(Object.assign({}, getProductData({
183
+ product,
184
+ selectedVariation: null,
185
+ useArticleNumberAsId,
186
+ brandCustomField,
187
+ category: category ||
188
+ breadcrumbsWithoutProduct((_a = product === null || product === void 0 ? void 0 : product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
189
+ unSlugify((_c = (_b = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path)
190
+ })), { price: (_d = product.price) === null || _d === void 0 ? void 0 : _d.incVat, position: i, list: listName }));
191
+ });
192
+ push({
193
+ event: 'productList',
194
+ ecommerce: {
195
+ currencyCode: currency,
196
+ impressions: productData
197
+ },
198
+ eventId
199
+ });
200
+ },
201
+ trackExperiment({ id, variant }, _, eventId) {
202
+ push({
203
+ experiment: `${id}.${variant}`,
204
+ eventId
205
+ });
206
+ },
207
+ trackUser({ userId }, _, eventId) {
208
+ push({
209
+ userId,
210
+ eventId
211
+ });
212
+ },
213
+ trackLogin(_, __, eventId) {
214
+ push({
215
+ event: 'login',
216
+ eventId
217
+ });
218
+ },
219
+ trackRegister(_, __, eventId) {
220
+ push({
221
+ event: 'register',
222
+ eventId
223
+ });
224
+ },
225
+ trackAddToWishList({ articleNumber, productName }, _, eventId) {
226
+ push({
227
+ event: 'addToWishlist',
228
+ articleNumber,
229
+ productName,
230
+ eventId
231
+ });
232
+ }
233
+ });
234
+ //# sourceMappingURL=gtm.js.map