@@ -62,19 +62,24 @@ public function __construct(
62
62
* @param string|null $eventId
63
63
* @return Event
64
64
*/
65
- public function newEvent ($ eventName , $ eventId = null )
65
+ public function newEvent ($ eventName , $ additionalPayloadData , $ eventId = null )
66
66
{
67
67
// Capture default user-data parameters passed down from the client browser.
68
+
69
+ $ userAgent = $ this ->getValueOrFallback ('user_agent ' , $ additionalPayloadData , [Util::class, 'getHttpUserAgent ' ]);
70
+ $ fbp = $ this ->getValueOrFallback ('fbp ' , $ additionalPayloadData , [Util::class, 'getFbp ' ]);
71
+ $ fbc = $ this ->getValueOrFallback ('fbc ' , $ additionalPayloadData , [Util::class, 'getFbc ' ]);
68
72
$ userData = (new UserData ())
69
73
->setClientIpAddress ($ this ->getIpAddress ())
70
- ->setClientUserAgent (Util:: getHttpUserAgent () )
71
- ->setFbp (Util:: getFbp () )
72
- ->setFbc (Util:: getFbc () );
74
+ ->setClientUserAgent ($ userAgent )
75
+ ->setFbp ($ fbp )
76
+ ->setFbc ($ fbc );
73
77
78
+ $ requestUri = $ this ->getValueOrFallback ('request_uri ' , $ additionalPayloadData , [Util::class, 'getRequestUri ' ]);
74
79
$ event = (new Event ())
75
80
->setEventName ($ eventName )
76
81
->setEventTime (time ())
77
- ->setEventSourceUrl (Util:: getRequestUri () )
82
+ ->setEventSourceUrl ($ requestUri )
78
83
->setActionSource ('website ' )
79
84
->setUserData ($ userData )
80
85
->setCustomData (new CustomData ());
@@ -88,6 +93,11 @@ public function newEvent($eventName, $eventId = null)
88
93
return $ event ;
89
94
}
90
95
96
+ private function getValueOrFallback ($ key , $ data , $ fallbackCallback )
97
+ {
98
+ return (!empty ($ data [$ key ])) ? $ data [$ key ] : $ fallbackCallback ();
99
+ }
100
+
91
101
/**
92
102
* Get the IP address from the $_SERVER variable
93
103
*
@@ -178,9 +188,9 @@ private function addCustomData($event, $data)
178
188
* @param string|null $eventId
179
189
* @return Event
180
190
*/
181
- public function createEvent ($ eventName , $ data , $ eventId = null )
191
+ public function createEvent ($ eventName , $ data , $ additionalPayloadData , $ eventId = null )
182
192
{
183
- $ event = $ this ->newEvent ($ eventName , $ eventId );
193
+ $ event = $ this ->newEvent ($ eventName , $ additionalPayloadData , $ eventId );
184
194
185
195
return $ this ->addCustomData ($ event , $ data );
186
196
}
0 commit comments