@ninetailed/experience.js-plugin-google-tagmanager 3.0.1-beta.4 → 3.0.2-beta.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.
package/package.json CHANGED
@@ -1,7 +1,23 @@
1
1
  {
2
2
  "name": "@ninetailed/experience.js-plugin-google-tagmanager",
3
- "version": "3.0.1-beta.4",
3
+ "version": "3.0.2-beta.1",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
- "typings": "./src/index.d.ts"
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@ninetailed/experience.js": "3.0.2-beta.1",
9
+ "@ninetailed/experience.js-shared": "3.0.2-beta.1",
10
+ "async-retry": "1.3.3",
11
+ "ts-toolbelt": "9.6.0",
12
+ "diary": "0.3.1",
13
+ "zod": "3.20.2",
14
+ "locale-enum": "1.1.1",
15
+ "i18n-iso-countries": "7.5.0",
16
+ "analytics": "0.8.1",
17
+ "lodash": "4.17.21",
18
+ "murmurhash-js": "1.0.0",
19
+ "@ninetailed/experience.js-plugin-analytics": "3.0.2-beta.1",
20
+ "tslib": "2.4.1"
21
+ },
22
+ "peerDependencies": {}
7
23
  }
@@ -0,0 +1,19 @@
1
+ import { NinetailedAnalyticsPlugin, SanitizedTrackExperienceProperties, TrackComponentProperties } from '@ninetailed/experience.js-plugin-analytics';
2
+ declare global {
3
+ interface Window {
4
+ dataLayer?: unknown[];
5
+ }
6
+ }
7
+ declare type NinetailedGoogleTagmanagerPluginOptions = {
8
+ actionTemplate?: string;
9
+ labelTemplate?: string;
10
+ };
11
+ export declare class NinetailedGoogleTagmanagerPlugin extends NinetailedAnalyticsPlugin {
12
+ private readonly options;
13
+ name: string;
14
+ constructor(options?: NinetailedGoogleTagmanagerPluginOptions);
15
+ initialize: () => void;
16
+ protected onTrackExperience(properties: SanitizedTrackExperienceProperties): Promise<void>;
17
+ protected onTrackComponent(properties: TrackComponentProperties): Promise<void>;
18
+ }
19
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NinetailedGoogleTagmanagerPlugin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const template_1 = tslib_1.__importDefault(require("lodash/template"));
6
+ const experience_js_plugin_analytics_1 = require("@ninetailed/experience.js-plugin-analytics");
7
+ const TEMPLATE_OPTIONS = {
8
+ interpolate: /{{([\s\S]+?)}}/g,
9
+ };
10
+ class NinetailedGoogleTagmanagerPlugin extends experience_js_plugin_analytics_1.NinetailedAnalyticsPlugin {
11
+ constructor(options = {}) {
12
+ super();
13
+ this.options = options;
14
+ this.name = 'ninetailed:googleTagmanager';
15
+ this.initialize = () => {
16
+ if (typeof window !== 'undefined') {
17
+ window.dataLayer = window.dataLayer || [];
18
+ }
19
+ };
20
+ }
21
+ onTrackExperience(properties) {
22
+ var _a;
23
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
24
+ const { experience, audience, selectedVariant, selectedVariantIndex } = properties;
25
+ (_a = window.dataLayer) === null || _a === void 0 ? void 0 : _a.push({
26
+ event: 'nt_experience',
27
+ ninetailed_variant: selectedVariantIndex === 0
28
+ ? 'control'
29
+ : `variant ${selectedVariantIndex}`,
30
+ ninetailed_experience: experience.id,
31
+ ninetailed_audience: audience.id,
32
+ ninetailed_component: selectedVariant.id,
33
+ });
34
+ });
35
+ }
36
+ onTrackComponent(properties) {
37
+ var _a;
38
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ const { variant, audience, isPersonalized } = properties;
40
+ const actionTemplate = (0, template_1.default)(this.options.actionTemplate || 'Has Seen Experience', TEMPLATE_OPTIONS);
41
+ const labelTemplate = (0, template_1.default)(this.options.labelTemplate ||
42
+ '{{ baselineOrVariant }}:{{ component.id }}', TEMPLATE_OPTIONS);
43
+ const action = actionTemplate({ component: variant, audience });
44
+ const label = labelTemplate({
45
+ component: variant,
46
+ audience,
47
+ baselineOrVariant: isPersonalized ? 'Variant' : 'Baseline',
48
+ });
49
+ (_a = window.dataLayer) === null || _a === void 0 ? void 0 : _a.push({
50
+ event: action,
51
+ properties: {
52
+ category: 'Ninetailed',
53
+ label,
54
+ nonInteraction: true,
55
+ },
56
+ });
57
+ });
58
+ }
59
+ }
60
+ exports.NinetailedGoogleTagmanagerPlugin = NinetailedGoogleTagmanagerPlugin;
61
+ //# sourceMappingURL=NinetailedGoogleTagmanagerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NinetailedGoogleTagmanagerPlugin.js","sourceRoot":"","sources":["../../../../../packages/plugins/google-tagmanager/src/NinetailedGoogleTagmanagerPlugin.ts"],"names":[],"mappings":";;;;AAAA,uEAAuC;AACvC,+FAKoD;AAapD,MAAM,gBAAgB,GAAG;IACvB,WAAW,EAAE,iBAAiB;CAC/B,CAAC;AAEF,MAAa,gCAAiC,SAAQ,0DAAyB;IAG7E,YACmB,UAAmD,EAAE;QAEtE,KAAK,EAAE,CAAC;QAFS,YAAO,GAAP,OAAO,CAA8C;QAHjE,SAAI,GAAG,6BAA6B,CAAC;QAQrC,eAAU,GAAG,GAAG,EAAE;YACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aAC3C;QACH,CAAC,CAAC;IANF,CAAC;IAQe,iBAAiB,CAC/B,UAA8C;;;YAE9C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,oBAAoB,EAAE,GACnE,UAAU,CAAC;YAEb,MAAA,MAAM,CAAC,SAAS,0CAAE,IAAI,CAAC;gBACrB,KAAK,EAAE,eAAe;gBACtB,kBAAkB,EAChB,oBAAoB,KAAK,CAAC;oBACxB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,WAAW,oBAAoB,EAAE;gBACvC,qBAAqB,EAAE,UAAU,CAAC,EAAE;gBACpC,mBAAmB,EAAE,QAAQ,CAAC,EAAE;gBAChC,oBAAoB,EAAE,eAAe,CAAC,EAAE;aACzC,CAAC,CAAC;;KACJ;IAEe,gBAAgB,CAC9B,UAAoC;;;YAEpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC;YAEzD,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,qBAAqB,EACpD,gBAAgB,CACjB,CAAC;YACF,MAAM,aAAa,GAAG,IAAA,kBAAQ,EAC5B,IAAI,CAAC,OAAO,CAAC,aAAa;gBACxB,4CAA4C,EAC9C,gBAAgB,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,aAAa,CAAC;gBAC1B,SAAS,EAAE,OAAO;gBAClB,QAAQ;gBACR,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;aAC3D,CAAC,CAAC;YAEH,MAAA,MAAM,CAAC,SAAS,0CAAE,IAAI,CAAC;gBACrB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,YAAY;oBACtB,KAAK;oBACL,cAAc,EAAE,IAAI;iBACrB;aACF,CAAC,CAAC;;KACJ;CACF;AAhED,4EAgEC"}
package/src/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { NinetailedGoogleTagmanagerPlugin } from './plugin';
2
- export { NinetailedGoogleTagmanagerPlugin as default } from './plugin';
1
+ export { NinetailedGoogleTagmanagerPlugin } from './NinetailedGoogleTagmanagerPlugin';
2
+ export { NinetailedGoogleTagmanagerPlugin as default } from './NinetailedGoogleTagmanagerPlugin';
package/src/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = exports.NinetailedGoogleTagmanagerPlugin = void 0;
4
- var plugin_1 = require("./plugin");
5
- Object.defineProperty(exports, "NinetailedGoogleTagmanagerPlugin", { enumerable: true, get: function () { return plugin_1.NinetailedGoogleTagmanagerPlugin; } });
6
- var plugin_2 = require("./plugin");
7
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return plugin_2.NinetailedGoogleTagmanagerPlugin; } });
4
+ var NinetailedGoogleTagmanagerPlugin_1 = require("./NinetailedGoogleTagmanagerPlugin");
5
+ Object.defineProperty(exports, "NinetailedGoogleTagmanagerPlugin", { enumerable: true, get: function () { return NinetailedGoogleTagmanagerPlugin_1.NinetailedGoogleTagmanagerPlugin; } });
6
+ var NinetailedGoogleTagmanagerPlugin_2 = require("./NinetailedGoogleTagmanagerPlugin");
7
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return NinetailedGoogleTagmanagerPlugin_2.NinetailedGoogleTagmanagerPlugin; } });
8
8
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/google-tagmanager/src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAAnD,0HAAA,gCAAgC,OAAA;AACzC,mCAAuE;AAA9D,iGAAA,gCAAgC,OAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/plugins/google-tagmanager/src/index.ts"],"names":[],"mappings":";;;AAAA,uFAAsF;AAA7E,oJAAA,gCAAgC,OAAA;AACzC,uFAAiG;AAAxF,2HAAA,gCAAgC,OAAW"}
@@ -1,241 +0,0 @@
1
- import { AnalyticsPlugin } from 'analytics';
2
- import { z } from 'zod';
3
- declare const TrackExperienceProperties: z.ZodObject<{
4
- experience: z.ZodObject<{
5
- id: z.ZodString;
6
- audience: z.ZodDefault<z.ZodObject<{
7
- id: z.ZodString;
8
- }, "strip", z.ZodTypeAny, {
9
- id: string;
10
- }, {
11
- id: string;
12
- }>>;
13
- }, "strip", z.ZodTypeAny, {
14
- id: string;
15
- audience: {
16
- id: string;
17
- };
18
- }, {
19
- audience?: {
20
- id: string;
21
- } | undefined;
22
- id: string;
23
- }>;
24
- variant: z.ZodNumber;
25
- component: z.ZodObject<{
26
- id: z.ZodString;
27
- }, "strip", z.ZodTypeAny, {
28
- id: string;
29
- }, {
30
- id: string;
31
- }>;
32
- }, "strip", z.ZodTypeAny, {
33
- experience: {
34
- id: string;
35
- audience: {
36
- id: string;
37
- };
38
- };
39
- variant: number;
40
- component: {
41
- id: string;
42
- };
43
- }, {
44
- experience: {
45
- audience?: {
46
- id: string;
47
- } | undefined;
48
- id: string;
49
- };
50
- variant: number;
51
- component: {
52
- id: string;
53
- };
54
- }>;
55
- export declare type TrackExperienceProperties = z.infer<typeof TrackExperienceProperties>;
56
- declare const TrackComponentProperties: z.ZodObject<{
57
- variant: z.ZodObject<{
58
- id: z.ZodString;
59
- }, "strip", z.ZodTypeAny, {
60
- id: string;
61
- }, {
62
- id: string;
63
- }>;
64
- audience: z.ZodObject<{
65
- id: z.ZodString;
66
- }, "strip", z.ZodTypeAny, {
67
- id: string;
68
- }, {
69
- id: string;
70
- }>;
71
- isPersonalized: z.ZodBoolean;
72
- }, "strip", z.ZodTypeAny, {
73
- audience: {
74
- id: string;
75
- };
76
- variant: {
77
- id: string;
78
- };
79
- isPersonalized: boolean;
80
- }, {
81
- audience: {
82
- id: string;
83
- };
84
- variant: {
85
- id: string;
86
- };
87
- isPersonalized: boolean;
88
- }>;
89
- export declare type TrackComponentProperties = z.infer<typeof TrackComponentProperties>;
90
- declare const TrackPayload: z.ZodDiscriminatedUnion<"event", z.Primitive, z.ZodObject<{
91
- event: z.ZodLiteral<"nt_experience">;
92
- properties: z.ZodObject<{
93
- experience: z.ZodObject<{
94
- id: z.ZodString;
95
- audience: z.ZodDefault<z.ZodObject<{
96
- id: z.ZodString;
97
- }, "strip", z.ZodTypeAny, {
98
- id: string;
99
- }, {
100
- id: string;
101
- }>>;
102
- }, "strip", z.ZodTypeAny, {
103
- id: string;
104
- audience: {
105
- id: string;
106
- };
107
- }, {
108
- audience?: {
109
- id: string;
110
- } | undefined;
111
- id: string;
112
- }>;
113
- variant: z.ZodNumber;
114
- component: z.ZodObject<{
115
- id: z.ZodString;
116
- }, "strip", z.ZodTypeAny, {
117
- id: string;
118
- }, {
119
- id: string;
120
- }>;
121
- }, "strip", z.ZodTypeAny, {
122
- experience: {
123
- id: string;
124
- audience: {
125
- id: string;
126
- };
127
- };
128
- variant: number;
129
- component: {
130
- id: string;
131
- };
132
- }, {
133
- experience: {
134
- audience?: {
135
- id: string;
136
- } | undefined;
137
- id: string;
138
- };
139
- variant: number;
140
- component: {
141
- id: string;
142
- };
143
- }>;
144
- }, "strip", z.ZodTypeAny, {
145
- event: "nt_experience";
146
- properties: {
147
- experience: {
148
- id: string;
149
- audience: {
150
- id: string;
151
- };
152
- };
153
- variant: number;
154
- component: {
155
- id: string;
156
- };
157
- };
158
- }, {
159
- event: "nt_experience";
160
- properties: {
161
- experience: {
162
- audience?: {
163
- id: string;
164
- } | undefined;
165
- id: string;
166
- };
167
- variant: number;
168
- component: {
169
- id: string;
170
- };
171
- };
172
- }> | z.ZodObject<{
173
- event: z.ZodLiteral<"hasSeenComponent">;
174
- properties: z.ZodObject<{
175
- variant: z.ZodObject<{
176
- id: z.ZodString;
177
- }, "strip", z.ZodTypeAny, {
178
- id: string;
179
- }, {
180
- id: string;
181
- }>;
182
- audience: z.ZodObject<{
183
- id: z.ZodString;
184
- }, "strip", z.ZodTypeAny, {
185
- id: string;
186
- }, {
187
- id: string;
188
- }>;
189
- isPersonalized: z.ZodBoolean;
190
- }, "strip", z.ZodTypeAny, {
191
- audience: {
192
- id: string;
193
- };
194
- variant: {
195
- id: string;
196
- };
197
- isPersonalized: boolean;
198
- }, {
199
- audience: {
200
- id: string;
201
- };
202
- variant: {
203
- id: string;
204
- };
205
- isPersonalized: boolean;
206
- }>;
207
- }, "strip", z.ZodTypeAny, {
208
- event: "hasSeenComponent";
209
- properties: {
210
- audience: {
211
- id: string;
212
- };
213
- variant: {
214
- id: string;
215
- };
216
- isPersonalized: boolean;
217
- };
218
- }, {
219
- event: "hasSeenComponent";
220
- properties: {
221
- audience: {
222
- id: string;
223
- };
224
- variant: {
225
- id: string;
226
- };
227
- isPersonalized: boolean;
228
- };
229
- }>>;
230
- declare type TrackPayload = z.infer<typeof TrackPayload>;
231
- declare type TrackArgs = {
232
- payload: TrackPayload;
233
- };
234
- export declare abstract class NinetailedAnalyticsPlugin implements AnalyticsPlugin {
235
- [x: string]: unknown;
236
- abstract readonly name: string;
237
- protected abstract onTrackExperience(properties: TrackExperienceProperties): Promise<void>;
238
- protected abstract onTrackComponent(properties: TrackComponentProperties): Promise<void>;
239
- track(data: TrackArgs): void;
240
- }
241
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NinetailedAnalyticsPlugin = void 0;
4
- const zod_1 = require("zod");
5
- const TrackExperienceProperties = zod_1.z.object({
6
- experience: zod_1.z.object({
7
- id: zod_1.z.string(),
8
- audience: zod_1.z.object({ id: zod_1.z.string() }).default({ id: 'ALL_VISITORS' }),
9
- }),
10
- variant: zod_1.z.number(),
11
- component: zod_1.z.object({ id: zod_1.z.string() }),
12
- });
13
- const TrackComponentProperties = zod_1.z.object({
14
- variant: zod_1.z.object({ id: zod_1.z.string() }),
15
- audience: zod_1.z.object({
16
- id: zod_1.z.string(),
17
- }),
18
- isPersonalized: zod_1.z.boolean(),
19
- });
20
- const TrackPayload = zod_1.z.discriminatedUnion('event', [
21
- zod_1.z.object({
22
- event: zod_1.z.literal('nt_experience'),
23
- properties: TrackExperienceProperties,
24
- }),
25
- zod_1.z.object({
26
- event: zod_1.z.literal('hasSeenComponent'),
27
- properties: TrackComponentProperties,
28
- }),
29
- ]);
30
- class NinetailedAnalyticsPlugin {
31
- track(data) {
32
- const payload = TrackPayload.parse(data.payload);
33
- if (payload.event === 'nt_experience') {
34
- this.onTrackExperience(payload.properties);
35
- }
36
- if (payload.event === 'hasSeenComponent') {
37
- this.onTrackComponent(payload.properties);
38
- }
39
- }
40
- }
41
- exports.NinetailedAnalyticsPlugin = NinetailedAnalyticsPlugin;
42
- //# sourceMappingURL=NinetailedAnalyticsPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NinetailedAnalyticsPlugin.js","sourceRoot":"","sources":["../../../../packages/google-tagmanager/src/NinetailedAnalyticsPlugin.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AAExB,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,CAAC;KACrE,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACrC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;QACjB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;KACf,CAAC;IACF,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,YAAY,GAAG,OAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACjD,OAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,OAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QACjC,UAAU,EAAE,yBAAyB;KACtC,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,OAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACpC,UAAU,EAAE,wBAAwB;KACrC,CAAC;CACH,CAAC,CAAC;AAOH,MAAsB,yBAAyB;IAQtC,KAAK,CAAC,IAAe;QAC1B,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,EAAE;YACnC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC9C;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,kBAAkB,EAAE;YACtC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC7C;IACH,CAAC;CACF;AAnBD,8DAmBC"}
package/src/plugin.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { AnalyticsPlugin } from 'analytics';
2
- declare global {
3
- interface Window {
4
- dataLayer?: unknown[];
5
- }
6
- }
7
- declare type NinetailedGoogleTagmanagerPluginOptions = {
8
- actionTemplate?: string;
9
- labelTemplate?: string;
10
- };
11
- export declare const NinetailedGoogleTagmanagerPlugin: (options?: NinetailedGoogleTagmanagerPluginOptions) => AnalyticsPlugin;
12
- export {};
package/src/plugin.js DELETED
@@ -1,66 +0,0 @@
1
- "use strict";
2
- // import template from 'lodash/template';
3
- // import {
4
- // NinetailedAnalyticsPlugin,
5
- // TrackExperienceProperties,
6
- // } from './NinetailedAnalyticsPlugin';
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.NinetailedGoogleTagmanagerPlugin = void 0;
9
- const tslib_1 = require("tslib");
10
- const template_1 = (0, tslib_1.__importDefault)(require("lodash/template"));
11
- const HAS_SEEN_COMPONENT = 'hasSeenComponent';
12
- const TEMPLATE_OPTIONS = {
13
- interpolate: /{{([\s\S]+?)}}/g,
14
- };
15
- const NinetailedGoogleTagmanagerPlugin = (options = {}) => {
16
- const handleHasSeenComponent = (payload) => {
17
- var _a;
18
- const { variant, audience, isPersonalized } = payload;
19
- const actionTemplate = (0, template_1.default)(options.actionTemplate || 'Has Seen Experience', TEMPLATE_OPTIONS);
20
- const labelTemplate = (0, template_1.default)(options.labelTemplate || '{{ baselineOrVariant }}:{{ component.id }}', TEMPLATE_OPTIONS);
21
- const action = actionTemplate({ component: variant, audience });
22
- const label = labelTemplate({
23
- component: variant,
24
- audience,
25
- baselineOrVariant: isPersonalized ? 'Variant' : 'Baseline',
26
- });
27
- (_a = window.dataLayer) === null || _a === void 0 ? void 0 : _a.push({
28
- event: action,
29
- properties: {
30
- category: 'Ninetailed',
31
- label,
32
- nonInteraction: true,
33
- },
34
- });
35
- };
36
- const handleTrackExperience = (payload) => {
37
- var _a, _b;
38
- const { variant, experience, component } = payload;
39
- (_a = window.dataLayer) === null || _a === void 0 ? void 0 : _a.push({
40
- event: 'nt_experience',
41
- 'ninetailed_variant': variant === 0 ? 'control' : `variant ${variant}`,
42
- 'ninetailed_experience': experience.id,
43
- 'ninetailed_audience': ((_b = experience.audience) === null || _b === void 0 ? void 0 : _b.id) || 'all visitors',
44
- 'ninetailed_component': component.id,
45
- });
46
- };
47
- return {
48
- name: 'ninetailed:googleTagmanager',
49
- initialize: () => {
50
- if (typeof window !== 'undefined') {
51
- window.dataLayer = window.dataLayer || [];
52
- }
53
- },
54
- track: ({ payload }) => {
55
- const { event, properties } = payload;
56
- if (event === HAS_SEEN_COMPONENT) {
57
- return handleHasSeenComponent(properties);
58
- }
59
- if (event === 'nt_experience') {
60
- return handleTrackExperience(properties);
61
- }
62
- },
63
- };
64
- };
65
- exports.NinetailedGoogleTagmanagerPlugin = NinetailedGoogleTagmanagerPlugin;
66
- //# sourceMappingURL=plugin.js.map
package/src/plugin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../packages/google-tagmanager/src/plugin.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,WAAW;AACX,+BAA+B;AAC/B,+BAA+B;AAC/B,wCAAwC;;;;AAwExC,4EAAuC;AAIvC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AA0B9C,MAAM,gBAAgB,GAAG;IACvB,WAAW,EAAE,iBAAiB;CAC/B,CAAC;AAEK,MAAM,gCAAgC,GAAG,CAC9C,UAAmD,EAAE,EACpC,EAAE;IACnB,MAAM,sBAAsB,GAAG,CAAC,OAAgC,EAAE,EAAE;;QAClE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEtD,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAC7B,OAAO,CAAC,cAAc,IAAI,qBAAqB,EAC/C,gBAAgB,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,kBAAQ,EAC5B,OAAO,CAAC,aAAa,IAAI,4CAA4C,EACrE,gBAAgB,CACjB,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,aAAa,CAAC;YAC1B,SAAS,EAAE,OAAO;YAClB,QAAQ;YACR,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;SAC3D,CAAC,CAAC;QAEH,MAAA,MAAM,CAAC,SAAS,0CAAE,IAAI,CAAC;YACrB,KAAK,EAAE,MAAM;YACb,UAAU,EAAE;gBACV,QAAQ,EAAE,YAAY;gBACtB,KAAK;gBACL,cAAc,EAAE,IAAI;aACrB;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;;QAChE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAEnD,MAAA,MAAM,CAAC,SAAS,0CAAE,IAAI,CAAC;YACrB,KAAK,EAAE,eAAe;YACtB,oBAAoB,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE;YACtE,uBAAuB,EAAE,UAAU,CAAC,EAAE;YACtC,qBAAqB,EAAE,CAAA,MAAA,UAAU,CAAC,QAAQ,0CAAE,EAAE,KAAI,cAAc;YAChE,sBAAsB,EAAE,SAAS,CAAC,EAAE;SACrC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,6BAA6B;QACnC,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aAC3C;QACH,CAAC;QACD,KAAK,EAAE,CAAC,EAAE,OAAO,EAAa,EAAE,EAAE;YAChC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YAEtC,IAAI,KAAK,KAAK,kBAAkB,EAAE;gBAChC,OAAO,sBAAsB,CAAC,UAAqC,CAAC,CAAC;aACtE;YAED,IAAI,KAAK,KAAK,eAAe,EAAE;gBAC7B,OAAO,qBAAqB,CAAC,UAAoC,CAAC,CAAC;aACpE;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AA/DW,QAAA,gCAAgC,oCA+D3C"}