Autotrader gains a clearer view of high-intent car shoppers
How the UK’s largest automotive marketplace uses Snowplow Identities to personalize shopping and give retailers better buyer insights.

"The Snowplow Identities product has helped us move from thinking about devices to thinking about people, which gives us a more complete view of our consumer behavior."
Fiona Pye, Senior Data Scientist at Autotrader
Background
Autotrader is the UK’s largest automotive marketplace for buyers and sellers of vehicles. Its platforms attract 1.5 million visitors per day, who spend a combined 540 million minutes searching for vehicles every month across roughly 451,000 live listings.
Autotrader has used Snowplow for seven years to track user behavior across its platforms, including desktop, mobile apps and retailer tools, on both the client and server side. Its pipeline processes around 200 million events per day, equating to around half a terabyte of data.
That behavioral data underpins many of Autotrader’s data products. The company first adopted Snowplow to understand how people engaged with vehicle ads. Today the data also feeds a composable CDP, marketing campaigns and an in-house personalization engine.
Autotrader has spent the past five years building that engine. It powers personalized search, which tailors the listings at the top of search results to each shopper, and Buying Signals, a product that helps retailers understand shoppers’ vehicle preferences and buying intent so they can prioritize inquiries and tailor their response.
Challenges
Like many ecommerce companies, Autotrader doesn’t force visitors to sign in. Without a persistent account identifier on every event, its personalization engine relied heavily on device-level identifiers. A shopper who researched on desktop and then contacted a dealer from their phone could look like two different people.
Identity stitching itself wasn’t new at Autotrader. For years, the company had pieced these journeys together once a day, using a Spark batch job built on GraphFrames. When a shopper signed in, or a handover event connected two of Autotrader’s platforms, the process linked those identifiers in an identity graph. Each cluster was the company’s best approximation of a real person.
The catch was timing. GraphFrames rebuilds the entire graph from scratch on every run. At Autotrader’s scale, the job could run once an hour at most, and in practice it ran daily. That schedule worked well for batch analysis, but new connections between devices could take hours to reach the personalization engine.
"We personalize in real time, and as we produce more and more products based on the engine, it becomes more and more important that we capture all of those events in real time and stitch them together too."
Bethanie Garfin, Senior Software Engineer at Autotrader
Autotrader needed identity stitching to keep pace with its personalization engine, so those connections could inform the experience while a shopper was still active.
Solution
Autotrader’s first instinct was to build a new identity stitching solution. The team knew the problem and owned the existing batch job. Its plan was to turn that solution into a real-time application using Spark Streaming and the storage and processing tools it already ran.
At the same time, Snowplow introduced Snowplow Identities, which resolves identities inside the Snowplow pipeline. As an additional enrichment step, it would give downstream events a stitched identifier before they reached the personalization engine.
Autotrader tested both approaches in a month-long proof of concept.
The in-house solution got close to real time, with latencies in the tens of seconds. But it required the team to write a graph traversal library in Spark from scratch. Thousands of lines of complex code, and friction between the tools and the job they were doing, added to the engineering effort.
Snowplow Identities resolved identities in milliseconds, with the graph complexity handled by Snowplow. The in-house option looked slightly cheaper on infrastructure alone. But once the team included the engineering time needed to maintain it, costs were about the same.
Ultimately, the experiment concluded with Autotrader choosing Snowplow Identities and retiring its in-house build. Running both solutions gave the engineers a direct basis for comparing approaches and making the decision with confidence.
"The Identities product runs in our own Snowplow pipeline, so we get millisecond processing speed. The complex graph traversal is in Snowplow. We don’t have to care about it, and it fits really nicely into our existing infrastructure."
Bethanie Garfin, Senior Software Engineer at Autotrader
Inside the implementation
Snowplow Identities runs as part of enrichment in Autotrader’s existing Snowplow pipeline. Behind it sits a real-time identity graph, maintained by Snowplow, hosted on Autotrader’s infrastructure and backed by AlloyDB.
Every event carries identifiers such as a device ID or, when the shopper is signed in, an account ID. Identities checks these against the graph and adds a Snowplow ID: a shared identifier for devices the graph can link to the same person.
For example, a shopper might be signed in on their phone but browse anonymously on a laptop. Initially, those devices have separate Snowplow IDs. When the shopper signs in on the laptop, the shared account ID links them. Identities merges the IDs and emits a merge event, allowing earlier activity to be associated with the combined identity too.
The personalization engine’s Spark Streaming job then aggregates search views, ad views and dealer calls under the Snowplow ID. It derives behavioral summaries, such as the types of cars a shopper prefers, and applies propensity models stored in MLflow to score their likelihood of buying. The models can now use activity across linked devices when assessing intent.
"Up until now, we’ve effectively been profiling separate devices. What we actually care about is what humans are doing on Autotrader. The Snowplow identifier lets us build a much more complete view of what individuals are doing."
Richard Wilmer, Senior Software Engineer at Autotrader
The engine publishes each completed profile to Kafka and stores a copy in Bigtable under each of the shopper’s existing identifiers. Downstream services can continue looking up profiles using the IDs they already know, receiving the same combined profile whichever linked identifier they use.
Results
Autotrader’s analysis showed why stitching mattered most among shoppers approaching a purchase. Only around 4% of visitors on a typical day could be stitched across devices. Among visitors who contacted a dealer, that figure rose to 33%.
Fiona Pye, Senior Data Scientist at Autotrader, compared propensity-to-buy scores with and without stitched profiles. For general browsers, little changed. But among shoppers who went on to contact a dealer, some previously scored as unlikely buyers moved sharply toward high intent once their profiles were combined.
The stitched model correctly identified 82% of consumers who went on to contact a dealer, compared with 63% without stitching: a 19 percentage-point improvement. The activity indicating their intent had been there all along, spread across separate profiles.
"Capturing that cross-device behavior really improves our ML performance. This is a huge difference in performance, and you can really see how this is going to improve our personalization capability across the board."
Fiona Pye, Senior Data Scientist at Autotrader
Autotrader’s Buying Signals product now provides retailers with a better-informed view of the shoppers making inquiries. It also gives Autotrader’s personalization engine more context when deciding which vehicle listings to show.
Moving identity processing from a daily batch job to milliseconds means new links between devices can feed those decisions in real time. Autotrader achieved that speed at a comparable assessed cost to the in-house streaming option, without taking on its complex graph service to maintain.
Looking forward
With real-time stitching in place, Autotrader can build future personalization features around a more complete view of each shopper. On its consumer platforms, that means more context to inform experiences such as personalized search. For retailers using Buying Signals, it means a better understanding of the preferences and intent behind each inquiry.
That identity data can also become a foundation for analytics. Snowplow Identities’ dbt package can turn identity and merge events into resolved identity tables in the warehouse, helping analysts and data scientists study journeys across devices.
The same foundation positions Autotrader for what comes after personalization. As marketplaces explore AI assistants and agent-driven experiences, those systems will need context about the person they are serving. An agent advising a shopper needs to know that the person comparing hatchbacks on their laptop is the same person who later contacted a dealer from their phone. With identities resolved in real time, future experiences, from ranked results to conversational ones, can start with that shared understanding of who the shopper is.
As Autotrader develops new products, its teams can build on this shared identity data without having to solve the stitching problem again. That gives them more time to put what they know about shoppers to work. But most importantly, it helps people to find the right car and gives retailers a clearer understanding of the person making an inquiry.
Customer Case Studies
Explore real-life success stories from companies using Snowplow.




