About this document
This document explains how Ometria works when collecting abandoned baskets events and triggering emails. Customers can expect to see some difference in the number of baskets generated when moving to Ometria, as different platforms define abandoned baskets differently.
How we collect interaction data
The Ometria system records and processes two types of data (which we combine within the system):
- Interaction level data: Visits, page views and site ecommerce events such as add to basket, login, transaction, form validation errors.
- Ecommerce data: Includes all details on products, categories, transactions and customers.
To explain how we capture and process abandoned basket events, we will focus on interaction data.
Once an event is recorded, it is processed by the ‘real-time’ system. This system records a small in-memory object for each active visitor across all the sites being tracked. This per-visitor information includes:
- Country (IP geolocation)
- Number of pages viewed
- Time on site
- Time of last interaction
- Unique visitor ID (stored in persistent cookie)
- Number of previous visits from this visitor ID
- Landing page URL
- Last page viewed URL
- Products and categories viewed in the visit
- Channel that sent the visit (e.g. search, CPC, referral) along with contextual information about the source (e.g. search keywords, referring page URL)
- Device type (mobile/computer/tablet) and browser (ie/firefox/chrome/safari)
- Contents of shopping basket (id, products, quantity and value)
- Previous visitor information (e.g. identity and customer information)
Each incoming event updates the active session record for the visitor that sent the event.
Visits, or sessions, are said to be 'complete' after 30 minutes of inactivity. So, if no page view (or other) events have been received for 30 minutes, the visit is 'closed' and sent for further processing. Only after this point are abandoned baskets and profile identification events processed.
Ometria’s abandoned basket logic
Once a visitor session starts, if they add anything to their basket we will record this event (with product id, quantity and total) against their visit. This is the point where ometria.setBasket() is called. After 30 minutes of inactivity their session will ‘close’, at which point Ometria will check if both the conditions below are met:
- If the visit is identified. E.g. has called the ometria.identify method in this session or a previous one and has a cookie.
- If the ometria.trackTransaction method is not called in that session. E.g. no order occurred in that session and was tracked by JS.
If both 1 and 2 are true, then the abandoned basket event is processed and the 'time of abandonment' is the time of the session being closed.
Additionally, at the point of entry in an automation campaign using an abandoned basket trigger, Ometria checks that the contact has placed no orders, or completed any orders, in the past 24 hours. That is 24 hours before the abandoned cart event. This check is in place to prevent sending an abandoned basket email to customers who place orders via phone or in case there are any technical issues with the website tracking.
So, in effect, the abandoned basket event will be processed if all apply:
- A contact has added something to their basket
- Has not completed an order in the 24 hours before the event
- Is identified (in this session or a previous one) 30 minutes after the last tracker event.
These additional product-specific criteria will also be checked
- The product added to basket has a valid URL passed to Ometria.
If the abandoned basket has only one product, that doesn't have a valid product URL then essentially there aren't any products in the basket and the abandoned basket campaign will not be triggered.
On the other hand, if there are, e.g., 4 items in the basket and one of them has a missing or invalid product URL, then the basket will be triggered based on the items that have a valid product URL only
- The abandon basket campaign will only be triggered if one or more products passed to Ometria contain the field: "is_active"=true
The diagram below summarises the Ometria abandoned basket logic.