@@ -11,6 +11,16 @@ function isObject(val) {
11
11
return val != null && typeof val === 'object' && Array . isArray ( val ) === false ;
12
12
}
13
13
14
+ var isobject = /*#__PURE__*/ Object . freeze ( {
15
+ 'default' : isObject
16
+ } ) ;
17
+
18
+ function getCjsExportFromNamespace ( n ) {
19
+ return n && n [ 'default' ] || n ;
20
+ }
21
+
22
+ var isobject$1 = getCjsExportFromNamespace ( isobject ) ;
23
+
14
24
/* eslint-disable no-undef */
15
25
// Copyright 2015 mParticle, Inc.
16
26
//
@@ -156,8 +166,8 @@ function isObject(val) {
156
166
157
167
var eventName ,
158
168
totalValue ,
159
- params = cloneEventAttributes ( event ) ;
160
-
169
+ params = cloneEventAttributes ( event ) ,
170
+ eventID = createEventId ( event ) ;
161
171
params [ 'currency' ] = event . CurrencyCode || 'USD' ;
162
172
163
173
if ( event . EventName ) {
@@ -247,12 +257,12 @@ function isObject(val) {
247
257
248
258
params [ 'value' ] = totalValue ;
249
259
250
- fbq ( 'trackCustom' , eventName || 'customEvent' , params ) ;
260
+ fbq ( 'trackCustom' , eventName || 'customEvent' , params , eventID ) ;
251
261
return true ;
252
262
}
253
263
254
264
if ( eventName ) {
255
- fbq ( 'track' , eventName , params ) ;
265
+ fbq ( 'track' , eventName , params , eventID ) ;
256
266
}
257
267
else {
258
268
return false ;
@@ -270,11 +280,13 @@ function isObject(val) {
270
280
271
281
function logPageEvent ( event , eventName ) {
272
282
var params = cloneEventAttributes ( event ) ;
283
+ var eventID = createEventId ( event ) ;
284
+
273
285
eventName = eventName || event . EventName ;
274
286
if ( event . EventName ) {
275
287
params [ 'content_name' ] = event . EventName ;
276
288
}
277
- fbq ( 'trackCustom' , eventName || 'customEvent' , params ) ;
289
+ fbq ( 'trackCustom' , eventName || 'customEvent' , params , eventID ) ;
278
290
}
279
291
280
292
function cloneEventAttributes ( event ) {
@@ -319,6 +331,13 @@ function isObject(val) {
319
331
return null ;
320
332
}
321
333
334
+ // https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events#event-deduplication-options
335
+ function createEventId ( event ) {
336
+ return {
337
+ eventID : event . SourceMessageId || null
338
+ }
339
+ }
340
+
322
341
this . init = initForwarder ;
323
342
this . process = processEvent ;
324
343
} ;
@@ -329,16 +348,16 @@ function isObject(val) {
329
348
330
349
function register ( config ) {
331
350
if ( ! config ) {
332
- window . console . log ( 'You must pass a config object to register the kit ' + name ) ;
351
+ console . log ( 'You must pass a config object to register the kit ' + name ) ;
333
352
return ;
334
353
}
335
354
336
- if ( ! isObject ( config ) ) {
337
- window . console . log ( '\'config\' must be an object. You passed in a ' + typeof config ) ;
355
+ if ( ! isobject$1 ( config ) ) {
356
+ console . log ( '\'config\' must be an object. You passed in a ' + typeof config ) ;
338
357
return ;
339
358
}
340
359
341
- if ( isObject ( config . kits ) ) {
360
+ if ( isobject$1 ( config . kits ) ) {
342
361
config . kits [ name ] = {
343
362
constructor : constructor
344
363
} ;
@@ -348,15 +367,17 @@ function isObject(val) {
348
367
constructor : constructor
349
368
} ;
350
369
}
351
- window . console . log ( 'Successfully registered ' + name + ' to your mParticle configuration' ) ;
370
+ console . log ( 'Successfully registered ' + name + ' to your mParticle configuration' ) ;
352
371
}
353
372
354
- if ( window && window . mParticle && window . mParticle . addForwarder ) {
355
- window . mParticle . addForwarder ( {
356
- name : name ,
357
- constructor : constructor ,
358
- getId : getId
359
- } ) ;
373
+ if ( typeof window !== 'undefined' ) {
374
+ if ( window && window . mParticle && window . mParticle . addForwarder ) {
375
+ window . mParticle . addForwarder ( {
376
+ name : name ,
377
+ constructor : constructor ,
378
+ getId : getId
379
+ } ) ;
380
+ }
360
381
}
361
382
362
383
var FacebookEventForwarder = {
0 commit comments