If you’re using one of the Swrve SDKs, you may be wondering how to ensure that batched events are received in the order they are sent. Below is a list of how events are processed for funnels. Use this as a guideline for ensuring event order in funnels:
- Swrve creates a timestamp for each event when it is received by Swrve.
- Swrve preserves the order of events in which they were queued on the device.
- Swrve determines event order in funnels using the timestamp of the events on the server (which represents the time when they were received by Swrve).
- A set of batched events all share the same timestamp, but are processed in the order they were batched on the device.
- If multiple events in a funnel share the same timestamp, they are counted towards the funnel in the order in which they were batched.
- Each step in a funnel is represented by an event. The step is counted when the first instance of the associated event is received for the user after the funnel was created (that is, if the first step of the event was Session_Start, Swrve counts the first Session_Start event received after the funnel was created).
- Sending or batching the same event multiple times does not end a funnel and the step is only counted once.
- Sending or batching an event out of order ends the funnel and the step is not counted (that is, if the event for step 3 is sent before the event for step 2, the funnel ends and neither event is counted towards the funnel).
- Events must be sent or batched in the order of the associated steps for funnel progress.