At Vidora, we’ve seen that one of the highest value ways a consumer-facing team can use Machine Learning (ML) is for onsite decision-making. If a customer is actively browsing your site or product, you already have their attention. It’s important to capitalize on this short-lived opportunity by making quick, automated decisions about which offers and experiences to serve.

That’s where ML can help. By making predictions about each user’s preferences and future behavior, and wrapping those predictions in automated decision-making frameworks, businesses can optimize the onsite experience for every single user. For example, an ML-powered decision engine might be configured to only show a promotion towards those customers predicted as most likely to buy. These sorts of initiatives – often referred to as next-best-action, next-best-offer, or dynamic decisioning – can be a powerful tool for driving key business metrics.

Real-time ML is particularly well-suited for these use cases. Using in-session behavior to update decisions in real-time offers two significant benefits: (1) better accuracy, and (2) the ability to target first time users. Implementing real-time ML, however, can be quite challenging. In this post, we describe how Vidora’s unique best-of-both-worlds approach navigates these challenges by blending batch and real-time data to maximize business value.

Advantages and Challenges of Real-Time

To help illustrate the benefits of real-time decisioning, let’s first consider a simpler batch framework. Once we have a trained ML model, the batch approach might involve scheduling a recurring process to do the following –

  1. Aggregate behavioral events into ML features for each existing user
  2. Feed those features into our model to generate predictions for each user
  3. Transform those features into decisions about how to treat each user

These batch decisions can be cached for fast retrieval onsite, but they won’t take into account critical information from the current session – What device is the user on? Are they quickly checking something, or deeply engaged in a long session? Batch decisions also won’t be available for any first-time or anonymous user with no prior behavioral history, an increasingly salient issue given secular pressure on 3rd-party cookies. By leveraging the most up-to-date information possible, real-time decisioning bridges these gaps to generate a smarter set of decisions for a wider set of users. 

These benefits, however, usually come at the cost of complexity and latency. To make the best possible decisions, we want to incorporate both past and present behaviors. But to provide the best experience we need next-best-actions to be chosen within 50-100ms. With these constraints in mind, let’s consider a feature which describes: “what percentage of this user’s lifetime clicks are on category ‘Sports’?” To recompute long-term features like this in real-time, we would have to load and query the user’s entire behavioral history – possibly years’ of data. Now recall that we may need thousands of features for millions of users and this task becomes prohibitively slow and expensive.

Because of these challenges, B2C organizations are often forced to choose between two imperfect solutions: generate real-time decisions based on data only from the current session, or generate batch decisions using only historical data.

Vidora’s Best-of-Both Worlds Approach

Vidora’s approach to real-time ML sidesteps this tradeoff by making decisions based on a combination of historical features (pre-computed in batch) and in-session features (computed in real-time). This framework allows us to capture each user’s full history without having to recompute our entire feature set.

How does it work? Every day, a set of historical features is generated via a batch process which queries past user behavior. One such feature that might be generated by this process could describe “how many click events has each user completed in the past 30 days?”

Meanwhile, another set of in-session features is built on-the-fly during each browsing session. For example, the client might build a feature to describe “how many click events has this user completed in the current session?”

When a decision is requested for this user, their historical features are joined with the in-session features and supplied to the model for decisioning. While it’s quite difficult to compute in real-time the user’s total clicks over the past 31 days, the combination of these two features allows us to capture the same information at a fraction of the complexity. This approach provides the best of both worlds for onsite decisioning: sophisticated historical features plus up-to-date behavioral signals generating, with latency < 100ms.

An Example: Subscription Promotion

Let’s consider a media company looking to dynamically decide whether to promote a paid subscription to each active user. Onsite pop-ups can be obtrusive, and if overdone, can damage brand perception. So, this organization only wants to promote the subscription to customers who may actually convert if targeted.

A real-time decisioning engine powered by ML is a great solution. First, we train a model to predict each user’s likelihood to subscribe if shown the promotion. The features we use to generate these predictions are a combination of historical and in-session behaviors, providing a full picture of both (a) the user’s long-term engagement patterns, and (b) the user’s current state of mind. Finally, we translate these predictions into decisions about whether each user should be targeted, based on their likelihood to subscribe. If we build automation around these decisions, we can optimize each user’s journey in order to drive as many subscriptions as possible.

Vidora’s partners who have deployed similar experiences to this one have seen strong results. Moving from batch to real-time decisions has resulted in 30-40% more conversions, driven by 5-10% improvement in model accuracy and 30-50% more targetable users (depending on the proportion of traffic owed to anonymous / first-time users).

Want to learn more?

Real-time inference can dramatically improve the efficacy of onsite decisioning strategies. By leveraging Vidora’s best-of-both-worlds system of feature engineering which sources from data both past and present, B2C organizations can generate better decisions for a larger set of users. The result? More conversions and more revenue for your business.

Contact us at to learn more!

Want to Learn More?

Schedule a demo and talk to a product specialist about how Vidora’s machine learning pipelines can speed up your ML deployment and ultimately save you money.