@technoapple/ga4 1.0.4 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.github/workflows/node.js.yml +31 -31
  2. package/.prettierignore +1 -1
  3. package/LICENSE +21 -21
  4. package/README.md +386 -48
  5. package/REQUIREMENTS.md +548 -0
  6. package/babel.config.js +5 -5
  7. package/build/main/ga4/ga4.d.ts +13 -0
  8. package/build/main/ga4/ga4.js +24 -1
  9. package/build/main/helpers/debounce.d.ts +5 -0
  10. package/build/main/helpers/debounce.js +23 -0
  11. package/build/main/helpers/delegate.d.ts +8 -0
  12. package/build/main/helpers/delegate.js +37 -0
  13. package/build/main/helpers/dom-ready.d.ts +1 -0
  14. package/build/main/helpers/dom-ready.js +13 -0
  15. package/build/main/helpers/parse-url.d.ts +11 -0
  16. package/build/main/helpers/parse-url.js +32 -0
  17. package/build/main/helpers/session.d.ts +4 -0
  18. package/build/main/helpers/session.js +50 -0
  19. package/build/main/index.d.ts +9 -0
  20. package/build/main/index.js +19 -2
  21. package/build/main/plugins/clean-url-tracker.d.ts +17 -0
  22. package/build/main/plugins/clean-url-tracker.js +105 -0
  23. package/build/main/plugins/event-tracker.d.ts +27 -0
  24. package/build/main/plugins/event-tracker.js +76 -0
  25. package/build/main/plugins/impression-tracker.d.ts +32 -0
  26. package/build/main/plugins/impression-tracker.js +202 -0
  27. package/build/main/plugins/index.d.ts +8 -0
  28. package/build/main/plugins/index.js +20 -0
  29. package/build/main/plugins/media-query-tracker.d.ts +20 -0
  30. package/build/main/plugins/media-query-tracker.js +96 -0
  31. package/build/main/plugins/outbound-form-tracker.d.ts +17 -0
  32. package/build/main/plugins/outbound-form-tracker.js +55 -0
  33. package/build/main/plugins/outbound-link-tracker.d.ts +19 -0
  34. package/build/main/plugins/outbound-link-tracker.js +63 -0
  35. package/build/main/plugins/page-visibility-tracker.d.ts +24 -0
  36. package/build/main/plugins/page-visibility-tracker.js +93 -0
  37. package/build/main/plugins/url-change-tracker.d.ts +20 -0
  38. package/build/main/plugins/url-change-tracker.js +76 -0
  39. package/build/main/types/plugins.d.ts +78 -0
  40. package/build/main/types/plugins.js +3 -0
  41. package/build/tsconfig.tsbuildinfo +1 -1
  42. package/docs/examples/react.md +95 -0
  43. package/docs/examples/vanilla.md +65 -0
  44. package/docs/examples/vue.md +87 -0
  45. package/jest.config.ts +195 -195
  46. package/package.json +56 -56
  47. package/src/dataLayer.ts +85 -85
  48. package/src/ga4/ga4.ts +69 -40
  49. package/src/ga4/ga4option.ts +4 -4
  50. package/src/ga4/index.ts +4 -4
  51. package/src/helpers/debounce.ts +28 -0
  52. package/src/helpers/delegate.ts +51 -0
  53. package/src/helpers/dom-ready.ts +7 -0
  54. package/src/helpers/parse-url.ts +37 -0
  55. package/src/helpers/session.ts +39 -0
  56. package/src/index.ts +34 -7
  57. package/src/plugins/clean-url-tracker.ts +112 -0
  58. package/src/plugins/event-tracker.ts +90 -0
  59. package/src/plugins/impression-tracker.ts +230 -0
  60. package/src/plugins/index.ts +8 -0
  61. package/src/plugins/media-query-tracker.ts +116 -0
  62. package/src/plugins/outbound-form-tracker.ts +65 -0
  63. package/src/plugins/outbound-link-tracker.ts +72 -0
  64. package/src/plugins/page-visibility-tracker.ts +104 -0
  65. package/src/plugins/url-change-tracker.ts +84 -0
  66. package/src/types/dataLayer.ts +9 -9
  67. package/src/types/global.ts +12 -12
  68. package/src/types/gtag.ts +259 -259
  69. package/src/types/plugins.ts +98 -0
  70. package/src/util.ts +18 -18
  71. package/test/dataLayer.spec.ts +55 -55
  72. package/test/ga4.spec.ts +36 -36
  73. package/tsconfig.json +28 -28
  74. package/tsconfig.module.json +11 -11
@@ -0,0 +1,84 @@
1
+ import { GA4Plugin, SendFunction, UrlChangeTrackerOptions } from '../types/plugins';
2
+
3
+ /**
4
+ * Automatically tracks URL changes in Single Page Applications.
5
+ *
6
+ * Intercepts `history.pushState()`, optionally `history.replaceState()`,
7
+ * and `popstate` events, sending a `page_view` event for each navigation.
8
+ */
9
+ export class UrlChangeTracker implements GA4Plugin {
10
+ private send: SendFunction;
11
+ private trackReplaceState: boolean;
12
+ private shouldTrackUrlChange?: UrlChangeTrackerOptions['shouldTrackUrlChange'];
13
+ private hitFilter?: UrlChangeTrackerOptions['hitFilter'];
14
+ private currentPath: string;
15
+ private originalPushState: History['pushState'];
16
+ private originalReplaceState: History['replaceState'];
17
+ private boundPopState: () => void;
18
+
19
+ constructor(send: SendFunction, options?: UrlChangeTrackerOptions) {
20
+ this.send = send;
21
+ this.trackReplaceState = options?.trackReplaceState ?? false;
22
+ this.shouldTrackUrlChange = options?.shouldTrackUrlChange;
23
+ this.hitFilter = options?.hitFilter;
24
+
25
+ this.currentPath = location.pathname + location.search;
26
+ this.originalPushState = history.pushState;
27
+ this.originalReplaceState = history.replaceState;
28
+ this.boundPopState = this.onUrlChange.bind(this);
29
+
30
+ // Monkey-patch history.pushState
31
+ const self = this;
32
+ history.pushState = function (...args: Parameters<History['pushState']>) {
33
+ self.originalPushState.apply(history, args);
34
+ self.onUrlChange();
35
+ };
36
+
37
+ // Optionally monkey-patch history.replaceState
38
+ if (this.trackReplaceState) {
39
+ history.replaceState = function (...args: Parameters<History['replaceState']>) {
40
+ self.originalReplaceState.apply(history, args);
41
+ self.onUrlChange();
42
+ };
43
+ }
44
+
45
+ window.addEventListener('popstate', this.boundPopState);
46
+ }
47
+
48
+ private onUrlChange(): void {
49
+ // Use setTimeout to ensure the URL has been updated
50
+ setTimeout(() => {
51
+ const newPath = location.pathname + location.search;
52
+
53
+ const shouldTrack = this.shouldTrackUrlChange
54
+ ? this.shouldTrackUrlChange(newPath, this.currentPath)
55
+ : newPath !== this.currentPath;
56
+
57
+ if (!shouldTrack) return;
58
+
59
+ this.currentPath = newPath;
60
+
61
+ let params: Record<string, unknown> = {
62
+ page_path: location.pathname,
63
+ page_title: document.title,
64
+ page_location: location.href,
65
+ };
66
+
67
+ if (this.hitFilter) {
68
+ const filtered = this.hitFilter(params);
69
+ if (filtered === null) return;
70
+ params = filtered;
71
+ }
72
+
73
+ this.send('page_view', params);
74
+ }, 0);
75
+ }
76
+
77
+ remove(): void {
78
+ window.removeEventListener('popstate', this.boundPopState);
79
+ history.pushState = this.originalPushState;
80
+ if (this.trackReplaceState) {
81
+ history.replaceState = this.originalReplaceState;
82
+ }
83
+ }
84
+ }
@@ -1,10 +1,10 @@
1
- interface KeyValuePair {
2
- [key:string|number]: any;
3
- }
4
-
5
- interface DataLayerObject extends KeyValuePair{
6
- event?: string;
7
- value?: string;
8
- }
9
-
1
+ interface KeyValuePair {
2
+ [key:string|number]: any;
3
+ }
4
+
5
+ interface DataLayerObject extends KeyValuePair{
6
+ event?: string;
7
+ value?: string;
8
+ }
9
+
10
10
  export {DataLayerObject};
@@ -1,13 +1,13 @@
1
- import { DataLayerObject } from "./dataLayer";
2
- import { gtag } from "./gtag";
3
-
4
- declare global {
5
-
6
-
7
- interface Window {
8
- dataLayer: Array<DataLayerObject>;
9
- gtag:gtag;
10
- }
11
- }
12
-
1
+ import { DataLayerObject } from "./dataLayer";
2
+ import { gtag } from "./gtag";
3
+
4
+ declare global {
5
+
6
+
7
+ interface Window {
8
+ dataLayer: Array<DataLayerObject>;
9
+ gtag:gtag;
10
+ }
11
+ }
12
+
13
13
  export {};
package/src/types/gtag.ts CHANGED
@@ -1,260 +1,260 @@
1
-
2
- /**
3
- * gtag definition, referenced via here https://developers.google.com/tag-platform/gtagjs/reference
4
- *
5
- */
6
- type requestedFieldCallback = (fieldName:string) => void;
7
- type eventCallback = () => void;
8
-
9
- interface KeyValueParams {
10
- [key:string]: string | number | boolean;
11
- }
12
-
13
- interface ConsentParams {
14
- ad_storage: 'granted' | 'denied';
15
- analytics_storage: 'granted' | 'denied';
16
- wait_for_update: number;
17
- }
18
-
19
- interface ControlParams {
20
- groups: string;
21
- send_to: string;
22
- event_callback:eventCallback;
23
- event_timeout:number;
24
- }
25
-
26
- interface ItemParameters {
27
- item_id: string;
28
- item_name: string;
29
- affiliation?:string;
30
- coupon?:string;
31
- discount?:number;
32
- index?:number;
33
- item_brand?:string;
34
- item_category?:string;
35
- item_category2?:string;
36
- item_category3?:string;
37
- item_category4?:string;
38
- item_category5?:string;
39
- item_list_id?:string;
40
- item_list_name?:string;
41
- item_variant?:string;
42
- location_id?:string;
43
- price?:number;
44
- quantity?:number;
45
- }
46
-
47
- interface PromotionParameters extends ItemParameters {
48
- creative_name?:string;
49
- creative_slot?:string;
50
- promotion_id?:string;
51
- promotion_name?:string;
52
- }
53
-
54
- interface AddPaymentInfo {
55
- currency: string;
56
- value: number;
57
- coupon?:string;
58
- payment_type?:string;
59
- items:Array<ItemParameters>;
60
- }
61
-
62
- interface AddShippingInfo {
63
- currency:string;
64
- value:number;
65
- coupon?:string;
66
- shipping_tier?:string;
67
- items: Array<ItemParameters>;
68
- }
69
-
70
- interface AddToCart {
71
- currency:string;
72
- value:number;
73
- items:Array<ItemParameters>;
74
- }
75
-
76
- interface AddToWishlistOrRemoveFromCart {
77
- currency:string;
78
- value:number;
79
- items:Array<ItemParameters>;
80
- }
81
-
82
- interface EarnVirtualCurrency {
83
- earn_virtual_currency?:string;
84
- value?:number;
85
- }
86
-
87
- interface Exception {
88
- description?:string;
89
- fatal?:boolean;
90
- }
91
-
92
- interface GenerateLead {
93
- currency:string;
94
- value:number;
95
- }
96
-
97
- interface LevelEnd {
98
- level_name?: string;
99
- success?:boolean;
100
- }
101
-
102
- interface LevelUp {
103
- level?: number;
104
- character?:string;
105
- }
106
-
107
- interface PageView {
108
- page_location?: string;
109
- client_id?: string;
110
- language?: string;
111
- page_encoding?: string;
112
- page_title?: string;
113
- user_agent?: string;
114
- }
115
-
116
- interface PostScore {
117
- score:number;
118
- level?:number;
119
- character?:string;
120
- }
121
-
122
- interface PurchaseRefund {
123
- currency:string;
124
- transaction_id:string;
125
- value:number;
126
- coupon?:string;
127
- shipping?:number;
128
- tax?:number;
129
- items:Array<ItemParameters>;
130
- }
131
-
132
- interface SelectContent {
133
- content_type?:string;
134
- content_id?:string;
135
- }
136
-
137
- interface SelectItem {
138
- item_list_id?:string;
139
- item_list_name?:string;
140
- items:Array<ItemParameters>;
141
- }
142
-
143
- interface SelectPromotion {
144
- creative_name?:string;
145
- creative_slot?:string;
146
- promotion_id?:string;
147
- promotion_name?:string;
148
- items:Array<PromotionParameters>;
149
- }
150
-
151
- interface Share {
152
- method?:string;
153
- content_type?:string;
154
- item_id?:string;
155
- }
156
-
157
- interface SignUp {
158
- method?:string;
159
- }
160
-
161
- interface SpendVirtualCurrency {
162
- value:number;
163
- virtual_currency_name:string;
164
- item_name:string;
165
- }
166
-
167
- interface UnlockAchievement {
168
- achievement_id:string;
169
- }
170
-
171
- interface ViewCart {
172
- currency:string;
173
- value:number;
174
- items: Array<ItemParameters>
175
- }
176
-
177
- interface ViewItem {
178
- currency:string;
179
- value:number;
180
- items:Array<ItemParameters>;
181
- }
182
-
183
- interface ViewItemList {
184
- item_list_id?:string;
185
- item_list_name?:string;
186
- items:Array<ItemParameters>;
187
- }
188
-
189
- interface ViewPromotion {
190
- creative_name?:string;
191
- creative_slot?:string;
192
- promotion_id?:string;
193
- promotion_name?:string;
194
- items:Array<PromotionParameters>;
195
- }
196
-
197
- interface ViewSearchResults {
198
- search_term?:string;
199
- }
200
-
201
- interface JoinGroup {
202
- group_id?:string;
203
- }
204
-
205
- interface LevelStart {
206
- level_name:string
207
- }
208
-
209
- interface Login {
210
- login?:string;
211
- }
212
-
213
- interface Search {
214
- search_term:string
215
- }
216
-
217
- interface gtag {
218
- (command:'config', TARGET_ID:string, configInfo?: KeyValueParams | ControlParams): void;
219
- (command:'js', value: Date):void;
220
- (command:'get', TARGET_ID:string, fieldName:string, callbackFunc: requestedFieldCallback): void;
221
- (command:'set', customerParameter: KeyValueParams | ControlParams):void;
222
- (command:'event', eventName:'add_payment_info', customerParameter:AddPaymentInfo | KeyValueParams | ControlParams):void;
223
- (command:'event', eventName:'add_shipping_info', customerParameter:AddShippingInfo | KeyValueParams | ControlParams):void;
224
- (command:'event', eventName:'add_to_cart', customerParameter:AddToCart | KeyValueParams | ControlParams):void;
225
- (command:'event', eventName:'add_to_wishlist', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
226
- (command:'event', eventName:'begin_checkout', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
227
- (command:'event', eventName:'earn_virtual_currency', customerParameter:EarnVirtualCurrency | KeyValueParams | ControlParams):void;
228
- (command:'event', eventName:'exception', customerParameter:Exception | KeyValueParams | ControlParams):void;
229
- (command:'event', eventName:'generate_lead', customerParameter:GenerateLead | KeyValueParams | ControlParams):void;
230
- (command:'event', eventName:'join_group', customerParameter:JoinGroup | KeyValueParams | ControlParams):void;
231
- (command:'event', eventName:'level_end', customerParameter:LevelEnd | KeyValueParams | ControlParams):void;
232
- (command:'event', eventName:'level_start', customerParameter:LevelStart | KeyValueParams | ControlParams):void;
233
- (command:'event', eventName:'level_up', customerParameter:LevelUp | KeyValueParams | ControlParams):void;
234
- (command:'event', eventName:'login', customerParameter:Login | KeyValueParams | ControlParams):void;
235
- (command:'event', eventName:'page_view', customerParameter:PageView | KeyValueParams | ControlParams):void;
236
- (command:'event', eventName:'post_score', customerParameter:PostScore | KeyValueParams | ControlParams):void;
237
- (command:'event', eventName:'purchase', customerParameter:PurchaseRefund | KeyValueParams | ControlParams):void;
238
- (command:'event', eventName:'refund', customerParameter:PurchaseRefund | KeyValueParams | ControlParams):void;
239
- (command:'event', eventName:'remove_from_cart', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
240
- (command:'event', eventName:'search', customerParameter:Search | KeyValueParams | ControlParams):void;
241
- (command:'event', eventName:'select_content', customerParameter:SelectContent | KeyValueParams | ControlParams):void;
242
- (command:'event', eventName:'select_item', customerParameter:SelectItem | KeyValueParams | ControlParams):void;
243
- (command:'event', eventName:'select_promotion', customerParameter:SelectPromotion | KeyValueParams | ControlParams):void;
244
- (command:'event', eventName:'share', customerParameter:Share | KeyValueParams | ControlParams):void;
245
- (command:'event', eventName:'sign_up', customerParameter:SignUp | KeyValueParams | ControlParams):void;
246
- (command:'event', eventName:'spend_virtual_currency', customerParameter:SpendVirtualCurrency | KeyValueParams | ControlParams):void;
247
- (command:'event', eventName:'tutorial_begin', customerParameter:KeyValueParams | ControlParams):void;
248
- (command:'event', eventName:'tutorial_complete', customerParameter:KeyValueParams | ControlParams):void;
249
- (command:'event', eventName:'unlock_achievement', customerParameter:UnlockAchievement | KeyValueParams | ControlParams):void;
250
- (command:'event', eventName:'view_cart', customerParameter:ViewCart | KeyValueParams | ControlParams):void;
251
- (command:'event', eventName:'view_item', customerParameter:ViewItem | KeyValueParams | ControlParams):void;
252
- (command:'event', eventName:'view_item_list', customerParameter:ViewItemList | KeyValueParams | ControlParams):void;
253
- (command:'event', eventName:'view_promotion', customerParameter:ViewPromotion | KeyValueParams | ControlParams):void;
254
- (command:'event', eventName:'view_search_results', customerParameter:ViewSearchResults | KeyValueParams | ControlParams):void;
255
- (command:'event', eventName:string, customerParameter:KeyValueParams | ControlParams):void;
256
- (command:'consent', consent:'default', customerParameter:ConsentParams | KeyValueParams):void;
257
- (command:'consent', consent:'update', customerParameter:ConsentParams | KeyValueParams):void;
258
- }
259
-
1
+
2
+ /**
3
+ * gtag definition, referenced via here https://developers.google.com/tag-platform/gtagjs/reference
4
+ *
5
+ */
6
+ type requestedFieldCallback = (fieldName:string) => void;
7
+ type eventCallback = () => void;
8
+
9
+ interface KeyValueParams {
10
+ [key:string]: string | number | boolean;
11
+ }
12
+
13
+ interface ConsentParams {
14
+ ad_storage: 'granted' | 'denied';
15
+ analytics_storage: 'granted' | 'denied';
16
+ wait_for_update: number;
17
+ }
18
+
19
+ interface ControlParams {
20
+ groups: string;
21
+ send_to: string;
22
+ event_callback:eventCallback;
23
+ event_timeout:number;
24
+ }
25
+
26
+ interface ItemParameters {
27
+ item_id: string;
28
+ item_name: string;
29
+ affiliation?:string;
30
+ coupon?:string;
31
+ discount?:number;
32
+ index?:number;
33
+ item_brand?:string;
34
+ item_category?:string;
35
+ item_category2?:string;
36
+ item_category3?:string;
37
+ item_category4?:string;
38
+ item_category5?:string;
39
+ item_list_id?:string;
40
+ item_list_name?:string;
41
+ item_variant?:string;
42
+ location_id?:string;
43
+ price?:number;
44
+ quantity?:number;
45
+ }
46
+
47
+ interface PromotionParameters extends ItemParameters {
48
+ creative_name?:string;
49
+ creative_slot?:string;
50
+ promotion_id?:string;
51
+ promotion_name?:string;
52
+ }
53
+
54
+ interface AddPaymentInfo {
55
+ currency: string;
56
+ value: number;
57
+ coupon?:string;
58
+ payment_type?:string;
59
+ items:Array<ItemParameters>;
60
+ }
61
+
62
+ interface AddShippingInfo {
63
+ currency:string;
64
+ value:number;
65
+ coupon?:string;
66
+ shipping_tier?:string;
67
+ items: Array<ItemParameters>;
68
+ }
69
+
70
+ interface AddToCart {
71
+ currency:string;
72
+ value:number;
73
+ items:Array<ItemParameters>;
74
+ }
75
+
76
+ interface AddToWishlistOrRemoveFromCart {
77
+ currency:string;
78
+ value:number;
79
+ items:Array<ItemParameters>;
80
+ }
81
+
82
+ interface EarnVirtualCurrency {
83
+ earn_virtual_currency?:string;
84
+ value?:number;
85
+ }
86
+
87
+ interface Exception {
88
+ description?:string;
89
+ fatal?:boolean;
90
+ }
91
+
92
+ interface GenerateLead {
93
+ currency:string;
94
+ value:number;
95
+ }
96
+
97
+ interface LevelEnd {
98
+ level_name?: string;
99
+ success?:boolean;
100
+ }
101
+
102
+ interface LevelUp {
103
+ level?: number;
104
+ character?:string;
105
+ }
106
+
107
+ interface PageView {
108
+ page_location?: string;
109
+ client_id?: string;
110
+ language?: string;
111
+ page_encoding?: string;
112
+ page_title?: string;
113
+ user_agent?: string;
114
+ }
115
+
116
+ interface PostScore {
117
+ score:number;
118
+ level?:number;
119
+ character?:string;
120
+ }
121
+
122
+ interface PurchaseRefund {
123
+ currency:string;
124
+ transaction_id:string;
125
+ value:number;
126
+ coupon?:string;
127
+ shipping?:number;
128
+ tax?:number;
129
+ items:Array<ItemParameters>;
130
+ }
131
+
132
+ interface SelectContent {
133
+ content_type?:string;
134
+ content_id?:string;
135
+ }
136
+
137
+ interface SelectItem {
138
+ item_list_id?:string;
139
+ item_list_name?:string;
140
+ items:Array<ItemParameters>;
141
+ }
142
+
143
+ interface SelectPromotion {
144
+ creative_name?:string;
145
+ creative_slot?:string;
146
+ promotion_id?:string;
147
+ promotion_name?:string;
148
+ items:Array<PromotionParameters>;
149
+ }
150
+
151
+ interface Share {
152
+ method?:string;
153
+ content_type?:string;
154
+ item_id?:string;
155
+ }
156
+
157
+ interface SignUp {
158
+ method?:string;
159
+ }
160
+
161
+ interface SpendVirtualCurrency {
162
+ value:number;
163
+ virtual_currency_name:string;
164
+ item_name:string;
165
+ }
166
+
167
+ interface UnlockAchievement {
168
+ achievement_id:string;
169
+ }
170
+
171
+ interface ViewCart {
172
+ currency:string;
173
+ value:number;
174
+ items: Array<ItemParameters>
175
+ }
176
+
177
+ interface ViewItem {
178
+ currency:string;
179
+ value:number;
180
+ items:Array<ItemParameters>;
181
+ }
182
+
183
+ interface ViewItemList {
184
+ item_list_id?:string;
185
+ item_list_name?:string;
186
+ items:Array<ItemParameters>;
187
+ }
188
+
189
+ interface ViewPromotion {
190
+ creative_name?:string;
191
+ creative_slot?:string;
192
+ promotion_id?:string;
193
+ promotion_name?:string;
194
+ items:Array<PromotionParameters>;
195
+ }
196
+
197
+ interface ViewSearchResults {
198
+ search_term?:string;
199
+ }
200
+
201
+ interface JoinGroup {
202
+ group_id?:string;
203
+ }
204
+
205
+ interface LevelStart {
206
+ level_name:string
207
+ }
208
+
209
+ interface Login {
210
+ login?:string;
211
+ }
212
+
213
+ interface Search {
214
+ search_term:string
215
+ }
216
+
217
+ interface gtag {
218
+ (command:'config', TARGET_ID:string, configInfo?: KeyValueParams | ControlParams): void;
219
+ (command:'js', value: Date):void;
220
+ (command:'get', TARGET_ID:string, fieldName:string, callbackFunc: requestedFieldCallback): void;
221
+ (command:'set', customerParameter: KeyValueParams | ControlParams):void;
222
+ (command:'event', eventName:'add_payment_info', customerParameter:AddPaymentInfo | KeyValueParams | ControlParams):void;
223
+ (command:'event', eventName:'add_shipping_info', customerParameter:AddShippingInfo | KeyValueParams | ControlParams):void;
224
+ (command:'event', eventName:'add_to_cart', customerParameter:AddToCart | KeyValueParams | ControlParams):void;
225
+ (command:'event', eventName:'add_to_wishlist', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
226
+ (command:'event', eventName:'begin_checkout', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
227
+ (command:'event', eventName:'earn_virtual_currency', customerParameter:EarnVirtualCurrency | KeyValueParams | ControlParams):void;
228
+ (command:'event', eventName:'exception', customerParameter:Exception | KeyValueParams | ControlParams):void;
229
+ (command:'event', eventName:'generate_lead', customerParameter:GenerateLead | KeyValueParams | ControlParams):void;
230
+ (command:'event', eventName:'join_group', customerParameter:JoinGroup | KeyValueParams | ControlParams):void;
231
+ (command:'event', eventName:'level_end', customerParameter:LevelEnd | KeyValueParams | ControlParams):void;
232
+ (command:'event', eventName:'level_start', customerParameter:LevelStart | KeyValueParams | ControlParams):void;
233
+ (command:'event', eventName:'level_up', customerParameter:LevelUp | KeyValueParams | ControlParams):void;
234
+ (command:'event', eventName:'login', customerParameter:Login | KeyValueParams | ControlParams):void;
235
+ (command:'event', eventName:'page_view', customerParameter:PageView | KeyValueParams | ControlParams):void;
236
+ (command:'event', eventName:'post_score', customerParameter:PostScore | KeyValueParams | ControlParams):void;
237
+ (command:'event', eventName:'purchase', customerParameter:PurchaseRefund | KeyValueParams | ControlParams):void;
238
+ (command:'event', eventName:'refund', customerParameter:PurchaseRefund | KeyValueParams | ControlParams):void;
239
+ (command:'event', eventName:'remove_from_cart', customerParameter:AddToWishlistOrRemoveFromCart | KeyValueParams | ControlParams):void;
240
+ (command:'event', eventName:'search', customerParameter:Search | KeyValueParams | ControlParams):void;
241
+ (command:'event', eventName:'select_content', customerParameter:SelectContent | KeyValueParams | ControlParams):void;
242
+ (command:'event', eventName:'select_item', customerParameter:SelectItem | KeyValueParams | ControlParams):void;
243
+ (command:'event', eventName:'select_promotion', customerParameter:SelectPromotion | KeyValueParams | ControlParams):void;
244
+ (command:'event', eventName:'share', customerParameter:Share | KeyValueParams | ControlParams):void;
245
+ (command:'event', eventName:'sign_up', customerParameter:SignUp | KeyValueParams | ControlParams):void;
246
+ (command:'event', eventName:'spend_virtual_currency', customerParameter:SpendVirtualCurrency | KeyValueParams | ControlParams):void;
247
+ (command:'event', eventName:'tutorial_begin', customerParameter:KeyValueParams | ControlParams):void;
248
+ (command:'event', eventName:'tutorial_complete', customerParameter:KeyValueParams | ControlParams):void;
249
+ (command:'event', eventName:'unlock_achievement', customerParameter:UnlockAchievement | KeyValueParams | ControlParams):void;
250
+ (command:'event', eventName:'view_cart', customerParameter:ViewCart | KeyValueParams | ControlParams):void;
251
+ (command:'event', eventName:'view_item', customerParameter:ViewItem | KeyValueParams | ControlParams):void;
252
+ (command:'event', eventName:'view_item_list', customerParameter:ViewItemList | KeyValueParams | ControlParams):void;
253
+ (command:'event', eventName:'view_promotion', customerParameter:ViewPromotion | KeyValueParams | ControlParams):void;
254
+ (command:'event', eventName:'view_search_results', customerParameter:ViewSearchResults | KeyValueParams | ControlParams):void;
255
+ (command:'event', eventName:string, customerParameter:KeyValueParams | ControlParams):void;
256
+ (command:'consent', consent:'default', customerParameter:ConsentParams | KeyValueParams):void;
257
+ (command:'consent', consent:'update', customerParameter:ConsentParams | KeyValueParams):void;
258
+ }
259
+
260
260
  export {gtag, KeyValueParams};