@mparticle/web-optimizely-kit 2.1.6 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OptimizelyKit.common.js +117 -61
- package/package.json +7 -3
|
@@ -8,11 +8,11 @@ var common = Common;
|
|
|
8
8
|
|
|
9
9
|
var optimizelyXDefinedEvents = {
|
|
10
10
|
pages: {},
|
|
11
|
-
events: {}
|
|
11
|
+
events: {},
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
var optimizelyFsDefinedEvents = {
|
|
15
|
-
events: {}
|
|
15
|
+
events: {},
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
var helpers = {
|
|
@@ -21,7 +21,7 @@ var helpers = {
|
|
|
21
21
|
obj[item[keyField]] = item;
|
|
22
22
|
return obj;
|
|
23
23
|
}, {});
|
|
24
|
-
|
|
24
|
+
return newObj;
|
|
25
25
|
},
|
|
26
26
|
loadScript: function(src, callback) {
|
|
27
27
|
var script = document.createElement('script');
|
|
@@ -34,7 +34,7 @@ var helpers = {
|
|
|
34
34
|
var identities = window.mParticle.Identity.getCurrentUser().getUserIdentities();
|
|
35
35
|
var userIdentities = identities['userIdentities'];
|
|
36
36
|
var userId;
|
|
37
|
-
switch(userIdField) {
|
|
37
|
+
switch (userIdField) {
|
|
38
38
|
// The server returns `customerId` as part of the `userIdField` setting
|
|
39
39
|
// but the API for identity requies it to be cased as `customerid`
|
|
40
40
|
case 'customerId':
|
|
@@ -81,24 +81,27 @@ function CommerceHandler(common) {
|
|
|
81
81
|
|
|
82
82
|
CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
83
83
|
var self = this;
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
var expandedEcommerceEvents = mParticle.eCommerce.expandCommerceEvent(
|
|
86
86
|
event
|
|
87
87
|
);
|
|
88
88
|
|
|
89
89
|
expandedEcommerceEvents.forEach(function(expandedEvent) {
|
|
90
|
-
if (
|
|
91
|
-
|
|
90
|
+
if (
|
|
91
|
+
!self.common.useFullStack &&
|
|
92
|
+
optimizelyXDefinedEvents.events[expandedEvent.EventName]
|
|
93
|
+
) {
|
|
92
94
|
var optimizelyWebXEvent = {
|
|
93
95
|
type: 'event',
|
|
94
96
|
eventName: event.EventName,
|
|
95
|
-
tags: {}
|
|
97
|
+
tags: {},
|
|
96
98
|
};
|
|
97
99
|
optimizelyWebXEvent.tags = expandedEvent.EventAttributes || {};
|
|
98
100
|
if (
|
|
99
101
|
event.EventCategory ===
|
|
100
102
|
mParticle.CommerceEventType.ProductPurchase ||
|
|
101
|
-
event.EventCategory ===
|
|
103
|
+
event.EventCategory ===
|
|
104
|
+
mParticle.CommerceEventType.ProductRefund
|
|
102
105
|
) {
|
|
103
106
|
if (expandedEvent.EventName.indexOf('Total') > -1) {
|
|
104
107
|
if (
|
|
@@ -153,7 +156,12 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
153
156
|
|
|
154
157
|
// if optimizely full stack is being used
|
|
155
158
|
if (self.common.useFullStack && window.optimizelyClientInstance) {
|
|
156
|
-
if (
|
|
159
|
+
if (
|
|
160
|
+
optimizelyFsDefinedEvents.events[expandedEvent.EventName] ||
|
|
161
|
+
optimizelyFsDefinedEvents.events[
|
|
162
|
+
event.CustomFlags['OptimizelyFullStack.EventName']
|
|
163
|
+
]
|
|
164
|
+
) {
|
|
157
165
|
var eventKey = expandedEvent.EventName,
|
|
158
166
|
userId,
|
|
159
167
|
userAttributes = self.common.userAttributes,
|
|
@@ -168,7 +176,8 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
168
176
|
if (
|
|
169
177
|
event.EventCategory ===
|
|
170
178
|
mParticle.CommerceEventType.ProductPurchase ||
|
|
171
|
-
event.EventCategory ===
|
|
179
|
+
event.EventCategory ===
|
|
180
|
+
mParticle.CommerceEventType.ProductRefund
|
|
172
181
|
) {
|
|
173
182
|
if (expandedEvent.EventName.indexOf('Total') > -1) {
|
|
174
183
|
if (
|
|
@@ -176,7 +185,9 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
176
185
|
event.CustomFlags['OptimizelyFullStack.EventName']
|
|
177
186
|
) {
|
|
178
187
|
eventKey =
|
|
179
|
-
event.CustomFlags[
|
|
188
|
+
event.CustomFlags[
|
|
189
|
+
'OptimizelyFullStack.EventName'
|
|
190
|
+
];
|
|
180
191
|
} else {
|
|
181
192
|
eventKey = expandedEvent.EventName;
|
|
182
193
|
}
|
|
@@ -187,7 +198,8 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
187
198
|
expandedEvent.EventAttributes['Total Amount']
|
|
188
199
|
) {
|
|
189
200
|
eventTags.revenue =
|
|
190
|
-
expandedEvent.EventAttributes['Total Amount'] *
|
|
201
|
+
expandedEvent.EventAttributes['Total Amount'] *
|
|
202
|
+
100;
|
|
191
203
|
}
|
|
192
204
|
// other individual product events should not have revenue tags
|
|
193
205
|
// which are added via the expandCommerceEvent method above
|
|
@@ -197,7 +209,9 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
197
209
|
event.CustomFlags['OptimizelyFullStack.EventName']
|
|
198
210
|
) {
|
|
199
211
|
eventKey =
|
|
200
|
-
event.CustomFlags[
|
|
212
|
+
event.CustomFlags[
|
|
213
|
+
'OptimizelyFullStack.EventName'
|
|
214
|
+
];
|
|
201
215
|
}
|
|
202
216
|
if (eventTags.revenue) {
|
|
203
217
|
delete eventTags.revenue;
|
|
@@ -213,10 +227,14 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
|
|
|
213
227
|
event.CustomFlags['OptimizelyFullStack.EventName'];
|
|
214
228
|
}
|
|
215
229
|
}
|
|
216
|
-
window['optimizelyClientInstance'].track(
|
|
230
|
+
window['optimizelyClientInstance'].track(
|
|
231
|
+
eventKey,
|
|
232
|
+
userId,
|
|
233
|
+
userAttributes,
|
|
234
|
+
eventTags
|
|
235
|
+
);
|
|
217
236
|
}
|
|
218
237
|
}
|
|
219
|
-
|
|
220
238
|
});
|
|
221
239
|
};
|
|
222
240
|
|
|
@@ -227,10 +245,13 @@ function EventHandler(common) {
|
|
|
227
245
|
}
|
|
228
246
|
|
|
229
247
|
EventHandler.prototype.logEvent = function(event) {
|
|
230
|
-
if (
|
|
248
|
+
if (
|
|
249
|
+
!this.common.useFullStack &&
|
|
250
|
+
optimizelyXDefinedEvents.events[event.EventName]
|
|
251
|
+
) {
|
|
231
252
|
var optimizelyWebXEvent = {
|
|
232
253
|
type: 'event',
|
|
233
|
-
eventName: event.EventName
|
|
254
|
+
eventName: event.EventName,
|
|
234
255
|
};
|
|
235
256
|
|
|
236
257
|
if (event.EventAttributes) {
|
|
@@ -238,13 +259,18 @@ EventHandler.prototype.logEvent = function(event) {
|
|
|
238
259
|
}
|
|
239
260
|
|
|
240
261
|
if (event.CustomFlags && event.CustomFlags['Optimizely.Value']) {
|
|
241
|
-
optimizelyWebXEvent.tags.value =
|
|
262
|
+
optimizelyWebXEvent.tags.value =
|
|
263
|
+
event.CustomFlags['Optimizely.Value'];
|
|
242
264
|
}
|
|
243
265
|
window['optimizely'].push(optimizelyWebXEvent);
|
|
244
266
|
}
|
|
245
267
|
|
|
246
268
|
// if optimizely full stack is being used
|
|
247
|
-
if (
|
|
269
|
+
if (
|
|
270
|
+
this.common.useFullStack &&
|
|
271
|
+
window.optimizelyClientInstance &&
|
|
272
|
+
optimizelyFsDefinedEvents.events[event.EventName]
|
|
273
|
+
) {
|
|
248
274
|
var eventKey = event.EventName,
|
|
249
275
|
userId,
|
|
250
276
|
userAttributes = this.common.userAttributes,
|
|
@@ -258,21 +284,32 @@ EventHandler.prototype.logEvent = function(event) {
|
|
|
258
284
|
eventTags = event.EventAttributes;
|
|
259
285
|
}
|
|
260
286
|
|
|
261
|
-
if (
|
|
287
|
+
if (
|
|
288
|
+
event.CustomFlags &&
|
|
289
|
+
event.CustomFlags['OptimizelyFullStack.Value']
|
|
290
|
+
) {
|
|
262
291
|
eventTags.value = event.CustomFlags['OptimizelyFullStack.Value'];
|
|
263
292
|
}
|
|
264
293
|
|
|
265
|
-
window['optimizelyClientInstance'].track(
|
|
294
|
+
window['optimizelyClientInstance'].track(
|
|
295
|
+
eventKey,
|
|
296
|
+
userId,
|
|
297
|
+
userAttributes,
|
|
298
|
+
eventTags
|
|
299
|
+
);
|
|
266
300
|
}
|
|
267
301
|
};
|
|
268
302
|
|
|
269
303
|
EventHandler.prototype.logPageView = function(event) {
|
|
270
304
|
var self = this;
|
|
271
305
|
|
|
272
|
-
if (
|
|
306
|
+
if (
|
|
307
|
+
!self.common.useFullStack &&
|
|
308
|
+
optimizelyXDefinedEvents.pages[event.EventName]
|
|
309
|
+
) {
|
|
273
310
|
var optimizelyWebXEvent = {
|
|
274
311
|
type: 'page',
|
|
275
|
-
pageName: event.EventName
|
|
312
|
+
pageName: event.EventName,
|
|
276
313
|
};
|
|
277
314
|
|
|
278
315
|
if (event.EventAttributes) {
|
|
@@ -340,14 +377,28 @@ IdentityHandler.prototype.onSetUserIdentity = function(
|
|
|
340
377
|
|
|
341
378
|
var identityHandler = IdentityHandler;
|
|
342
379
|
|
|
343
|
-
var optimizelyFsSdkUrl =
|
|
380
|
+
var optimizelyFsSdkUrl =
|
|
381
|
+
'https://unpkg.com/@optimizely/optimizely-sdk@3.5.0/dist/optimizely.browser.umd.min.js',
|
|
344
382
|
dataFilePrefix = 'https://cdn.optimizely.com/datafiles/',
|
|
345
383
|
dataFileURLending = '.json/tag.js';
|
|
346
384
|
|
|
347
385
|
var initialization = {
|
|
348
386
|
name: 'Optimizely',
|
|
349
387
|
moduleId: 54,
|
|
350
|
-
initForwarder: function(
|
|
388
|
+
initForwarder: function(
|
|
389
|
+
settings,
|
|
390
|
+
testMode,
|
|
391
|
+
userAttributes,
|
|
392
|
+
userIdentities,
|
|
393
|
+
processEvent,
|
|
394
|
+
eventQueue,
|
|
395
|
+
isInitialized,
|
|
396
|
+
common,
|
|
397
|
+
appVersion,
|
|
398
|
+
appName,
|
|
399
|
+
customFlags,
|
|
400
|
+
clientId
|
|
401
|
+
) {
|
|
351
402
|
common.useFullStack = settings.useFullStack === 'True';
|
|
352
403
|
|
|
353
404
|
if (!testMode) {
|
|
@@ -355,8 +406,14 @@ var initialization = {
|
|
|
355
406
|
var optimizelyScript = document.createElement('script');
|
|
356
407
|
optimizelyScript.type = 'text/javascript';
|
|
357
408
|
optimizelyScript.async = true;
|
|
358
|
-
optimizelyScript.src =
|
|
359
|
-
|
|
409
|
+
optimizelyScript.src =
|
|
410
|
+
'https://cdn.optimizely.com/js/' +
|
|
411
|
+
settings.projectId +
|
|
412
|
+
'.js';
|
|
413
|
+
(
|
|
414
|
+
document.getElementsByTagName('head')[0] ||
|
|
415
|
+
document.getElementsByTagName('body')[0]
|
|
416
|
+
).appendChild(optimizelyScript);
|
|
360
417
|
optimizelyScript.onload = function() {
|
|
361
418
|
|
|
362
419
|
loadWebXEventsAndPages();
|
|
@@ -377,37 +434,38 @@ var initialization = {
|
|
|
377
434
|
common.userAttributes = userAttributes;
|
|
378
435
|
var errorHandler = function() {};
|
|
379
436
|
|
|
380
|
-
if (
|
|
381
|
-
|
|
437
|
+
if (
|
|
438
|
+
customFlags &&
|
|
439
|
+
customFlags['OptimizelyFullStack.ErrorHandler']
|
|
440
|
+
) {
|
|
441
|
+
errorHandler =
|
|
442
|
+
customFlags['OptimizelyFullStack.ErrorHandler'];
|
|
382
443
|
}
|
|
383
444
|
|
|
384
445
|
var instantiateFSClient = function() {
|
|
385
|
-
window.optimizelyClientInstance = window.optimizelySdk.createInstance(
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
446
|
+
window.optimizelyClientInstance = window.optimizelySdk.createInstance(
|
|
447
|
+
{
|
|
448
|
+
datafile: window.optimizelyDatafile,
|
|
449
|
+
errorHandler: { handleError: errorHandler },
|
|
450
|
+
}
|
|
451
|
+
);
|
|
389
452
|
|
|
390
|
-
window.optimizelyClientInstance.onReady().then(function(){
|
|
453
|
+
window.optimizelyClientInstance.onReady().then(function() {
|
|
391
454
|
loadFullStackEvents();
|
|
392
|
-
});
|
|
455
|
+
});
|
|
393
456
|
};
|
|
394
457
|
|
|
395
|
-
helpers_1.loadScript(optimizelyFsSdkUrl,
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
instantiateFSClient
|
|
402
|
-
);
|
|
403
|
-
}
|
|
404
|
-
);
|
|
405
|
-
|
|
458
|
+
helpers_1.loadScript(optimizelyFsSdkUrl, function() {
|
|
459
|
+
helpers_1.loadScript(
|
|
460
|
+
dataFilePrefix + settings.projectId + dataFileURLending,
|
|
461
|
+
instantiateFSClient
|
|
462
|
+
);
|
|
463
|
+
});
|
|
406
464
|
} else {
|
|
407
465
|
common.userIdField = settings.userIdField;
|
|
408
466
|
common.userAttributes = userAttributes;
|
|
409
467
|
loadFullStackEvents();
|
|
410
|
-
}
|
|
468
|
+
}
|
|
411
469
|
} else {
|
|
412
470
|
if (!common.useFullStack) {
|
|
413
471
|
loadWebXEventsAndPages();
|
|
@@ -418,7 +476,7 @@ var initialization = {
|
|
|
418
476
|
loadFullStackEvents();
|
|
419
477
|
}
|
|
420
478
|
}
|
|
421
|
-
}
|
|
479
|
+
},
|
|
422
480
|
};
|
|
423
481
|
|
|
424
482
|
function loadWebXEventsAndPages() {
|
|
@@ -444,11 +502,13 @@ function loadWebXEventsAndPages() {
|
|
|
444
502
|
|
|
445
503
|
function loadFullStackEvents() {
|
|
446
504
|
var fullStackData,
|
|
447
|
-
|
|
448
|
-
|
|
505
|
+
fullStackEvents = {};
|
|
449
506
|
|
|
450
507
|
if (window.optimizelyDatafile) {
|
|
451
|
-
fullStackData = helpers_1.arrayToObject(
|
|
508
|
+
fullStackData = helpers_1.arrayToObject(
|
|
509
|
+
window.optimizelyDatafile.events,
|
|
510
|
+
'id'
|
|
511
|
+
);
|
|
452
512
|
|
|
453
513
|
for (var event in fullStackData) {
|
|
454
514
|
fullStackEvents[fullStackData[event].key] = 1;
|
|
@@ -461,12 +521,8 @@ function loadFullStackEvents() {
|
|
|
461
521
|
var initialization_1 = initialization;
|
|
462
522
|
|
|
463
523
|
var sessionHandler = {
|
|
464
|
-
onSessionStart: function(event) {
|
|
465
|
-
|
|
466
|
-
},
|
|
467
|
-
onSessionEnd: function(event) {
|
|
468
|
-
|
|
469
|
-
}
|
|
524
|
+
onSessionStart: function(event) {},
|
|
525
|
+
onSessionEnd: function(event) {},
|
|
470
526
|
};
|
|
471
527
|
|
|
472
528
|
var sessionHandler_1 = sessionHandler;
|
|
@@ -481,7 +537,7 @@ UserAttributeHandler.prototype.onRemoveUserAttribute = function(key) {
|
|
|
481
537
|
attribute[key] = null;
|
|
482
538
|
window['optimizely'].push({
|
|
483
539
|
type: 'user',
|
|
484
|
-
attributes: attribute
|
|
540
|
+
attributes: attribute,
|
|
485
541
|
});
|
|
486
542
|
}
|
|
487
543
|
if (this.common.useFullStack && window.optimizelyClientInstance) {
|
|
@@ -496,13 +552,13 @@ UserAttributeHandler.prototype.onSetUserAttribute = function(key, value) {
|
|
|
496
552
|
attribute[key] = value;
|
|
497
553
|
window['optimizely'].push({
|
|
498
554
|
type: 'user',
|
|
499
|
-
attributes: attribute
|
|
555
|
+
attributes: attribute,
|
|
500
556
|
});
|
|
501
557
|
}
|
|
502
558
|
if (this.common.useFullStack && window.optimizelyClientInstance) {
|
|
503
559
|
var self = this;
|
|
504
560
|
self.common.userAttributes[key] = value;
|
|
505
|
-
}
|
|
561
|
+
}
|
|
506
562
|
};
|
|
507
563
|
|
|
508
564
|
var userAttributeHandler = UserAttributeHandler;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mparticle/web-optimizely-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"author": "mParticle Developers <developers@mparticle.com> (https://www.mparticle.com)",
|
|
5
5
|
"description": "mParticle integration sdk for Optimizely",
|
|
6
6
|
"main": "dist/OptimizelyKit.common.js",
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
"files": [
|
|
9
9
|
"dist/OptimizelyKit.common.js"
|
|
10
10
|
],
|
|
11
|
-
"repository":
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/mParticle/mparticle-web-sdk",
|
|
14
|
+
"directory": "kits/optimizely"
|
|
15
|
+
},
|
|
12
16
|
"scripts": {
|
|
13
17
|
"test": "npm run testKarma",
|
|
14
18
|
"testKarma": "node test/boilerplate/test-karma.js",
|
|
@@ -37,7 +41,7 @@
|
|
|
37
41
|
},
|
|
38
42
|
"dependencies": {
|
|
39
43
|
"isobject": "^4.0.0",
|
|
40
|
-
"@mparticle/web-sdk": "^
|
|
44
|
+
"@mparticle/web-sdk": "^3.0.0"
|
|
41
45
|
},
|
|
42
46
|
"license": "Apache-2.0"
|
|
43
47
|
}
|