I’m facing an issue with Adobe Analytics event tracking specifically on Safari browsers (iOS and macOS).
We have two separate analytics events that are triggered consecutively inside the same click handler for an anchor link. The sequence looks like this:
_satellite.track("eventA");
_satellite.track("eventB");
The problem is that Safari often redirects the page before both requests are fully sent, which results in incomplete or mismatched event counts in our analytics dashboard.
On desktop Chrome/Edge, the implementation works fine, and both events are consistently recorded. However, after filtering analytics data by operating system, the discrepancies mainly appear for Apple iOS and Apple macOS.
To confirm the cause, we temporarily prevented the native link navigation using JavaScript.
When navigation was blocked, both events fired correctly every time. This suggests that Safari cancels the second tracking request during page unload/navigation.
Has anyone encountered this issue before?
Is there a recommended way to ensure both tracking events are reliably sent before Safari redirects the user to the next page?
We're looking for a solution that:
Works on Safari (iOS + macOS)
Allows consecutive analytics events to be sent before navigation
Avoids blocking the user experience with long delays
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Total Likes
Hi @Nesan
modern browsers tend to cancel open requests when a browser navigation is initiated.
This tells the browser to send the request as "ping" which is a different request type that the standard POST.
Side note: this flag makes it impossible for your browser extensions to debug the request payload. So, to validate the payload data, you must look into the network request itself (filter for "/ss" for Analytics, "/ee" for Web SDK).
https://experienceleague.adobe.com/en/docs/analytics/implementation/vars/config-vars/usebeacon#
This could happen on any browser, it all depends on how fast the next page loads and if the open request gets cancelled.
I haven't tried the s.useBeacon = true method (we are using AppMeasurement.js), but we also have very limited click trackers now... we have really worked hard to limit these to reduce server calls. When I need more than Activity Map can provide, I have actually used sessionStorage variables to do a quick "save details to a variable" on the initial page, then read the values on the next page and attach to the page view... (then remove the SS so that I can't accidentally re-send the same info)
If you need the "click" then sometimes you also have to reduce the "daisy-chaining" to make the tracking call process and track quicker... the more steps you have to perform, the more risk there is of the tracking getting lost... and even the items that Bjorn posted might not work, if it only applies to the last rule in the sequence...
Hopefully Bjorn's suggestion is enough.
Good luck!
Views
Replies
Total Likes
Hi @Nesan,
I suspect that due to the fast redirection, the analytics server calls are failing. One possible way to address this is by using the "onmousedown" event instead of "onclick", as mousedown triggers immediately when the button is pressed.
Sometimes even a slight delay can make a significant difference, so I’d recommend trying this approach as well.
Thanks
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies