@@ -11,6 +11,16 @@ function isObject(val) {
1111 return val != null && typeof val === 'object' && Array . isArray ( val ) === false ;
1212}
1313
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+
1424/* eslint-disable no-undef */
1525// Copyright 2015 mParticle, Inc.
1626//
@@ -156,8 +166,8 @@ function isObject(val) {
156166
157167 var eventName ,
158168 totalValue ,
159- params = cloneEventAttributes ( event ) ;
160-
169+ params = cloneEventAttributes ( event ) ,
170+ eventID = createEventId ( event ) ;
161171 params [ 'currency' ] = event . CurrencyCode || 'USD' ;
162172
163173 if ( event . EventName ) {
@@ -247,12 +257,12 @@ function isObject(val) {
247257
248258 params [ 'value' ] = totalValue ;
249259
250- fbq ( 'trackCustom' , eventName || 'customEvent' , params ) ;
260+ fbq ( 'trackCustom' , eventName || 'customEvent' , params , eventID ) ;
251261 return true ;
252262 }
253263
254264 if ( eventName ) {
255- fbq ( 'track' , eventName , params ) ;
265+ fbq ( 'track' , eventName , params , eventID ) ;
256266 }
257267 else {
258268 return false ;
@@ -270,11 +280,13 @@ function isObject(val) {
270280
271281 function logPageEvent ( event , eventName ) {
272282 var params = cloneEventAttributes ( event ) ;
283+ var eventID = createEventId ( event ) ;
284+
273285 eventName = eventName || event . EventName ;
274286 if ( event . EventName ) {
275287 params [ 'content_name' ] = event . EventName ;
276288 }
277- fbq ( 'trackCustom' , eventName || 'customEvent' , params ) ;
289+ fbq ( 'trackCustom' , eventName || 'customEvent' , params , eventID ) ;
278290 }
279291
280292 function cloneEventAttributes ( event ) {
@@ -319,6 +331,13 @@ function isObject(val) {
319331 return null ;
320332 }
321333
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+
322341 this . init = initForwarder ;
323342 this . process = processEvent ;
324343 } ;
@@ -329,16 +348,16 @@ function isObject(val) {
329348
330349 function register ( config ) {
331350 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 ) ;
333352 return ;
334353 }
335354
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 ) ;
338357 return ;
339358 }
340359
341- if ( isObject ( config . kits ) ) {
360+ if ( isobject$1 ( config . kits ) ) {
342361 config . kits [ name ] = {
343362 constructor : constructor
344363 } ;
@@ -348,15 +367,17 @@ function isObject(val) {
348367 constructor : constructor
349368 } ;
350369 }
351- window . console . log ( 'Successfully registered ' + name + ' to your mParticle configuration' ) ;
370+ console . log ( 'Successfully registered ' + name + ' to your mParticle configuration' ) ;
352371 }
353372
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+ }
360381 }
361382
362383 var FacebookEventForwarder = {
0 commit comments