Skip to main content

https://help.amplitude.com/hc/en-us/articles/229313067-User-Activity#Raw-Data-Fields
NOTE: If the difference between server_received_time and client_upload_time is less than 60 seconds, the event_time will not be adjusted and will equal the client_event_time. This is done automatically for newer projects, i.e, those with an ID of 243704 or higher. If you want this 60-second cutoff time to apply to an older project, please reach out to Amplitude Support.

I want to disable this feature and always have event_time calculated via formula:
event_time = client_event_time + (server_received_time - client_upload_time)


Motivation:

I have two event sources: backend and frontend.
Event 1 from frontend: User clicked on Buy button
Event 2 from backend: Purchase started

Suppose user device’s clock differs from amplitude’s  for 30seconds, then User clicked on Buy button timings may be:

  • Client Event Time = 3:44:50 pm UTC
  • Client Upload Time = 3:44:50 pm UTC
  • Server Upload Time = 3:45:22 pm UTC
  • Server Received Time = 3:45:22 pm UTC

Due to feature mentioned above, event_time will be 3:44:50 pm UTC. It causes that Purchase started event might have earlier event_time, if the lag between frontend request and backend logic is less than 30 seconds. This breaks out funnels and disturb our analytics very much 😅
If we could use the formula always, the User clicked on Buy button would be 3:45:22, synched with amplitude server time, as our backend time

Consider changing your funnels to “any order” - it might be easier than handling inconsistencies in the event sequence.


Reply