4
4
DISPLAY_NAME ,
5
5
} from '@rudderstack/analytics-js-common/constants/integrations/XPixel/constants' ;
6
6
import Logger from '../../utils/logger' ;
7
+ import { getHashFromArrayWithDuplicate } from '../../utils/commonUtils' ;
8
+ import { getTrackResponse } from './utils' ;
7
9
import { loadNativeSdk } from './nativeSdkLoader' ;
8
10
9
11
const logger = new Logger ( DISPLAY_NAME ) ;
@@ -14,7 +16,7 @@ class XPixel {
14
16
}
15
17
this . analytics = analytics ;
16
18
this . pixelId = config . pixelId ;
17
- this . event = config . eventId ;
19
+ this . eventToEventIdMap = config . eventToEventIdMap ;
18
20
this . name = NAME ;
19
21
( {
20
22
shouldApplyDeviceModeTransformation : this . shouldApplyDeviceModeTransformation ,
@@ -36,19 +38,27 @@ class XPixel {
36
38
}
37
39
38
40
track ( rudderElement ) {
39
- const { event, properties } = rudderElement . message ;
40
-
41
+ const { event } = rudderElement . message ;
41
42
if ( ! event ) {
42
43
logger . error ( 'Event name is missing' ) ;
43
44
return ;
44
45
}
46
+ const properties = getTrackResponse ( rudderElement . message ) ;
47
+ const standardEventsMap = getHashFromArrayWithDuplicate ( this . eventsToStandard ) ;
48
+ const eventIds = standardEventsMap [ event ?. toLowerCase ( ) ] ;
49
+ eventIds . forEach ( eventId => {
50
+ window . twq ( 'event' , eventId , properties ) ;
51
+ } ) ;
52
+ }
45
53
46
- if ( properties ) {
47
- properties . isRudderEvents = true ;
48
- window . twq . track ( event , properties ) ;
49
- } else {
50
- window . twq . track ( event , { isRudderEvents : true } ) ;
51
- }
54
+ page ( rudderElement ) {
55
+ const event = 'Page View' ;
56
+ const properties = getTrackResponse ( rudderElement . message ) ;
57
+ const standardEventsMap = getHashFromArrayWithDuplicate ( this . eventsToStandard ) ;
58
+ const eventIds = standardEventsMap [ event ?. toLowerCase ( ) ] ;
59
+ eventIds . forEach ( eventId => {
60
+ window . twq ( 'event' , eventId , properties ) ;
61
+ } ) ;
52
62
}
53
63
}
54
64
export default XPixel ;
0 commit comments