@mparticle/web-rokt-kit 1.6.3 → 1.7.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.
@@ -33,6 +33,7 @@ var constructor = function () {
33
33
  self.filters = {};
34
34
  self.userAttributes = {};
35
35
  self.testHelpers = null;
36
+ self.placementEventMappingLookup = {};
36
37
 
37
38
  /**
38
39
  * Generates the Rokt launcher script URL with optional domain override and extensions
@@ -78,8 +79,16 @@ var constructor = function () {
78
79
  ) {
79
80
  var accountId = settings.accountId;
80
81
  var roktExtensions = extractRoktExtensions(settings.roktExtensions);
81
- self.userAttributes = filteredUserAttributes;
82
+ self.userAttributes = filteredUserAttributes || {};
82
83
  self.onboardingExpProvider = settings.onboardingExpProvider;
84
+
85
+ var placementEventMapping = parseSettingsString(
86
+ settings.placementEventMapping
87
+ );
88
+ self.placementEventMappingLookup = generateMappedEventLookup(
89
+ placementEventMapping
90
+ );
91
+
83
92
  var domain = window.mParticle.Rokt.domain;
84
93
  var launcherOptions = mergeObjects(
85
94
  {},
@@ -93,6 +102,9 @@ var constructor = function () {
93
102
  self.testHelpers = {
94
103
  generateLauncherScript: generateLauncherScript,
95
104
  extractRoktExtensions: extractRoktExtensions,
105
+ hashEventMessage: hashEventMessage,
106
+ parseSettingsString: parseSettingsString,
107
+ generateMappedEventLookup: generateMappedEventLookup,
96
108
  };
97
109
  attachLauncher(accountId, launcherOptions);
98
110
  return;
@@ -203,10 +215,20 @@ var constructor = function () {
203
215
 
204
216
  var filteredUserIdentities = returnUserIdentities(filteredUser);
205
217
 
218
+ var localSessionAttributes = {};
219
+
220
+ try {
221
+ localSessionAttributes =
222
+ window.mParticle.Rokt.getLocalSessionAttributes();
223
+ } catch (error) {
224
+ console.error('Error getting local session attributes:', error);
225
+ }
226
+
206
227
  var selectPlacementsAttributes = mergeObjects(
207
228
  filteredUserIdentities,
208
229
  replaceOtherWithEmailsha256(filteredAttributes),
209
230
  optimizelyAttributes,
231
+ localSessionAttributes,
210
232
  {
211
233
  mpid: mpid,
212
234
  }
@@ -235,6 +257,26 @@ var constructor = function () {
235
257
  window.Rokt.setExtensionData(partnerExtensionData);
236
258
  }
237
259
 
260
+ function processEvent(event) {
261
+ if (
262
+ !isKitReady() ||
263
+ typeof window.mParticle.Rokt.setLocalSessionAttribute !== 'function'
264
+ ) {
265
+ return;
266
+ }
267
+
268
+ var hashedEvent = hashEventMessage(
269
+ event.EventDataType,
270
+ event.EventCategory,
271
+ event.EventName
272
+ );
273
+
274
+ if (self.placementEventMappingLookup[hashedEvent]) {
275
+ var mappedValue = self.placementEventMappingLookup[hashedEvent];
276
+ window.mParticle.Rokt.setLocalSessionAttribute(mappedValue, true);
277
+ }
278
+ }
279
+
238
280
  function onUserIdentified(filteredUser) {
239
281
  self.filters.filteredUser = filteredUser;
240
282
  self.userAttributes = filteredUser.getAllUserAttributes();
@@ -334,6 +376,7 @@ var constructor = function () {
334
376
 
335
377
  // Kit Callback Methods
336
378
  this.init = initForwarder;
379
+ this.process = processEvent;
337
380
  this.setExtensionData = setExtensionData;
338
381
  this.setUserAttribute = setUserAttribute;
339
382
  this.onUserIdentified = onUserIdentified;
@@ -353,7 +396,7 @@ var constructor = function () {
353
396
 
354
397
  function generateIntegrationName(customIntegrationName) {
355
398
  var coreSdkVersion = window.mParticle.getVersion();
356
- var kitVersion = "1.6.3";
399
+ var kitVersion = "1.7.1";
357
400
  var name = 'mParticle_' + 'wsdkv_' + coreSdkVersion + '_kitv_' + kitVersion;
358
401
 
359
402
  if (customIntegrationName) {
@@ -414,6 +457,9 @@ function mergeObjects() {
414
457
  }
415
458
 
416
459
  function parseSettingsString(settingsString) {
460
+ if (!settingsString) {
461
+ return [];
462
+ }
417
463
  try {
418
464
  return JSON.parse(settingsString.replace(/"/g, '"'));
419
465
  } catch (error) {
@@ -433,6 +479,25 @@ function extractRoktExtensions(settingsString) {
433
479
  return roktExtensions;
434
480
  }
435
481
 
482
+ function generateMappedEventLookup(placementEventMapping) {
483
+ if (!placementEventMapping) {
484
+ return {};
485
+ }
486
+
487
+ var mappedEvents = {};
488
+ for (var i = 0; i < placementEventMapping.length; i++) {
489
+ var mapping = placementEventMapping[i];
490
+ mappedEvents[mapping.jsmap] = mapping.value;
491
+ }
492
+ return mappedEvents;
493
+ }
494
+
495
+ function hashEventMessage(messageType, eventType, eventName) {
496
+ return window.mParticle.generateHash(
497
+ [messageType, eventType, eventName].join('')
498
+ );
499
+ }
500
+
436
501
  if (window && window.mParticle && window.mParticle.addForwarder) {
437
502
  window.mParticle.addForwarder({
438
503
  name: name,
@@ -32,6 +32,7 @@ var RoktKit = (function (exports) {
32
32
  self.filters = {};
33
33
  self.userAttributes = {};
34
34
  self.testHelpers = null;
35
+ self.placementEventMappingLookup = {};
35
36
 
36
37
  /**
37
38
  * Generates the Rokt launcher script URL with optional domain override and extensions
@@ -77,8 +78,16 @@ var RoktKit = (function (exports) {
77
78
  ) {
78
79
  var accountId = settings.accountId;
79
80
  var roktExtensions = extractRoktExtensions(settings.roktExtensions);
80
- self.userAttributes = filteredUserAttributes;
81
+ self.userAttributes = filteredUserAttributes || {};
81
82
  self.onboardingExpProvider = settings.onboardingExpProvider;
83
+
84
+ var placementEventMapping = parseSettingsString(
85
+ settings.placementEventMapping
86
+ );
87
+ self.placementEventMappingLookup = generateMappedEventLookup(
88
+ placementEventMapping
89
+ );
90
+
82
91
  var domain = window.mParticle.Rokt.domain;
83
92
  var launcherOptions = mergeObjects(
84
93
  {},
@@ -92,6 +101,9 @@ var RoktKit = (function (exports) {
92
101
  self.testHelpers = {
93
102
  generateLauncherScript: generateLauncherScript,
94
103
  extractRoktExtensions: extractRoktExtensions,
104
+ hashEventMessage: hashEventMessage,
105
+ parseSettingsString: parseSettingsString,
106
+ generateMappedEventLookup: generateMappedEventLookup,
95
107
  };
96
108
  attachLauncher(accountId, launcherOptions);
97
109
  return;
@@ -202,10 +214,20 @@ var RoktKit = (function (exports) {
202
214
 
203
215
  var filteredUserIdentities = returnUserIdentities(filteredUser);
204
216
 
217
+ var localSessionAttributes = {};
218
+
219
+ try {
220
+ localSessionAttributes =
221
+ window.mParticle.Rokt.getLocalSessionAttributes();
222
+ } catch (error) {
223
+ console.error('Error getting local session attributes:', error);
224
+ }
225
+
205
226
  var selectPlacementsAttributes = mergeObjects(
206
227
  filteredUserIdentities,
207
228
  replaceOtherWithEmailsha256(filteredAttributes),
208
229
  optimizelyAttributes,
230
+ localSessionAttributes,
209
231
  {
210
232
  mpid: mpid,
211
233
  }
@@ -234,6 +256,26 @@ var RoktKit = (function (exports) {
234
256
  window.Rokt.setExtensionData(partnerExtensionData);
235
257
  }
236
258
 
259
+ function processEvent(event) {
260
+ if (
261
+ !isKitReady() ||
262
+ typeof window.mParticle.Rokt.setLocalSessionAttribute !== 'function'
263
+ ) {
264
+ return;
265
+ }
266
+
267
+ var hashedEvent = hashEventMessage(
268
+ event.EventDataType,
269
+ event.EventCategory,
270
+ event.EventName
271
+ );
272
+
273
+ if (self.placementEventMappingLookup[hashedEvent]) {
274
+ var mappedValue = self.placementEventMappingLookup[hashedEvent];
275
+ window.mParticle.Rokt.setLocalSessionAttribute(mappedValue, true);
276
+ }
277
+ }
278
+
237
279
  function onUserIdentified(filteredUser) {
238
280
  self.filters.filteredUser = filteredUser;
239
281
  self.userAttributes = filteredUser.getAllUserAttributes();
@@ -333,6 +375,7 @@ var RoktKit = (function (exports) {
333
375
 
334
376
  // Kit Callback Methods
335
377
  this.init = initForwarder;
378
+ this.process = processEvent;
336
379
  this.setExtensionData = setExtensionData;
337
380
  this.setUserAttribute = setUserAttribute;
338
381
  this.onUserIdentified = onUserIdentified;
@@ -352,7 +395,7 @@ var RoktKit = (function (exports) {
352
395
 
353
396
  function generateIntegrationName(customIntegrationName) {
354
397
  var coreSdkVersion = window.mParticle.getVersion();
355
- var kitVersion = "1.6.3";
398
+ var kitVersion = "1.7.1";
356
399
  var name = 'mParticle_' + 'wsdkv_' + coreSdkVersion + '_kitv_' + kitVersion;
357
400
 
358
401
  if (customIntegrationName) {
@@ -413,6 +456,9 @@ var RoktKit = (function (exports) {
413
456
  }
414
457
 
415
458
  function parseSettingsString(settingsString) {
459
+ if (!settingsString) {
460
+ return [];
461
+ }
416
462
  try {
417
463
  return JSON.parse(settingsString.replace(/&quot;/g, '"'));
418
464
  } catch (error) {
@@ -432,6 +478,25 @@ var RoktKit = (function (exports) {
432
478
  return roktExtensions;
433
479
  }
434
480
 
481
+ function generateMappedEventLookup(placementEventMapping) {
482
+ if (!placementEventMapping) {
483
+ return {};
484
+ }
485
+
486
+ var mappedEvents = {};
487
+ for (var i = 0; i < placementEventMapping.length; i++) {
488
+ var mapping = placementEventMapping[i];
489
+ mappedEvents[mapping.jsmap] = mapping.value;
490
+ }
491
+ return mappedEvents;
492
+ }
493
+
494
+ function hashEventMessage(messageType, eventType, eventName) {
495
+ return window.mParticle.generateHash(
496
+ [messageType, eventType, eventName].join('')
497
+ );
498
+ }
499
+
435
500
  if (window && window.mParticle && window.mParticle.addForwarder) {
436
501
  window.mParticle.addForwarder({
437
502
  name: name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mparticle/web-rokt-kit",
3
- "version": "1.6.3",
3
+ "version": "1.7.1",
4
4
  "description": "mParticle integration kit for Rokt",
5
5
  "main": "dist/Rokt-Kit.common.js",
6
6
  "files": [