Expand my Community achievements bar.

Event Tracking Issue on Safari - Analytics Calls Not Firing Before Page Redirect

Avatar

Level 2

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

Topics help categorize Community content and increase your ability to discover relevant content.

3 Replies

Avatar

Community Advisor and Adobe Champion

Hi @Nesan 

modern browsers tend to cancel open requests when a browser navigation is initiated.

  • In Adobe Analytics, you can try setting "s.useBeacon = true" before you send your request
  • in Web SDK, you can set the "document will unload" flag

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#

 

Cheers from Switzerland!


Avatar

Community Advisor and Adobe Champion

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!

Avatar

Level 2

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