Blog Article
Moloco has been building AI for performance advertising since 2013 and today we’re sharing more about our approach. We call our AI system CARA, short for Compound Ad Recommendation Architecture.
For Moloco Ads, CARA orchestrates models, agents, and specialized software organized across six technical domains: Campaign Automation, Supply, Ad Recommendations, Bidding, Creative, and Signals. Each domain is designed to solve the unique challenges of the open internet, and you can read about them here.
I've spent more than twenty years building large-scale recommender systems, and much of that time on one of the hardest applications I know: making an ad relevant to a user and effective for an advertiser. I left my PhD program in 2004 to join Google, drawn by the opportunity to apply cutting-edge ML to real-world problems at scale. I spent over sixteen years there, first on web search, and then on research and performance advertising, building some of Google's most widely deployed ML systems.
That's where my path first crossed with Ikkjin Ahn, Moloco's co-founder and CEO. In 2009, his team at YouTube was the first to deploy Sibyl, an ML platform I built with a small team at Google. Ikkjin was building YouTube's early monetization systems then, and that work is what convinced him there was a much bigger opportunity: bringing machine learning of that caliber to performance advertising beyond the walled gardens. He founded Moloco in 2013 to pursue it.
After Google and more than a year leading AI at Snowflake, I took a close look at Moloco in 2023 and realized three things: Moloco had built one of the most advanced AI-powered systems I'd seen in my career. It would be extraordinarily hard for anyone else to replicate. And performance advertising is a rare problem where better AI translates directly into measurable value for customers, which in turn makes the business stronger.
What makes Moloco's AI system so advanced? The challenge of the open internet demanded it.
Google and Meta operate walled gardens: logged-in users, deterministic identity, dense first-party engagement history, one auction they control end to end. The open internet offers none of that.
Most auctions are first-price and closed, so a bidder never sees competing bids at decision time or afterwards: only whether it won, and sometimes the minimum bid it would have taken to win. Numerous exchanges and mediation platforms carry overlapping inventory, so the same impression can reach you through several routes with different fees and other characteristics, and bidding without recognizing the overlap means competing against yourself, inflating your own price. That mix of ecosystem participants is non-stationary too: new exchanges enter while others die out or consolidate, and each one may be a partner you rely on and often a competitor you're bidding against at the same time.
The system we build has to contend with an ecosystem that spans billions of users, over a trillion daily ad opportunities, thousands of advertisers, and millions of apps, with decisions made in tens of milliseconds. Most combinations of user, advertiser, publisher, supply path, and creative format have never happened before. They're not in the training data, so the system has to generalize across an enormous space, exactly the regime where models can go wrong, mistaking coincidence for pattern (overfitting) or missing the pattern entirely (underfitting).
Identity exists in fragments. There is no logged-in user graph and a meaningful share of traffic carries no device identifier at all. Instead of looking up a profile, the system must generalize from context: app, placement, geography, time, sequence of prior events. These signals don't arrive cleanly. They show up at different times, in different formats, at different levels of aggregation, or sometimes not at all.
The outcomes a system uses to improve prediction arrive at different latencies and in different states of completeness. A purchase might land seven or twenty-eight days after the install, get relayed through an attribution provider, or compressed through privacy frameworks like SKAdNetwork that strip user-level detail entirely.
And the decision is never just whether to bid. Each opportunity calls for a choice: which ad, which format, which creative variant, and the best choice differs per user, per impression. Every one of these decisions happens in tens of milliseconds, more than a trillion times a day on average.¹

Which ad to recommend, how much to bid for it, which creative to show, which supply path to choose, and how to turn fragmented signals into something a model can act on — any one of these would be a respectable AI problem on its own. On the open internet, all of them have to be decided at the same time, nearly instantly. And all of them can be improved, so what we needed was a system where progress in one compounds across the rest.
CARA is that system. Each of CARA’s six domains attacks one of these problems. Signals, for example, turns fragmented, late-arriving data into features every other CARA domain uses to improve prediction. Bidding optimizes bid strategy in real time. Creative optimizes which ad, which format, and which creative variant to show per user and per impression.

The compound architecture of CARA allows each domain to build on others’ improvements. Users and apps change, creatives fatigue, and auction dynamics evolve, so we had to build a system capable of continuous learning.
Take Ad Recommendations. When its predictions get more accurate, Bidding gets a better estimate of what each impression is worth. Better estimates win more impressions where the economics work for the advertiser, across both third-party exchanges and Moloco’s own SDK. More wins mean more outcome data, and that data retrains every domain in the system, including Ad Recommendations, which started the loop.
The same is true for Creative. Better creative selection drives more engagement, which enriches the training data with a deeper picture of how users behave. This then strengthens the representations in the Signals domain, which allows our sequence and multi-head models to learn across all interactions, giving the system a richer understanding of behavior. These gains propagate to all domains, letting Moloco continuously improve how it serves ads that can reach more than 2 billion daily active users2 across 2.8 million independent apps.3
The opportunities to improve performance advertising on the open internet are unbounded, and the best approach within one domain today may not be the best tomorrow. The process is like hill climbing, an algorithm from classical AI: take a model, try some variations, keep the best one, repeat. Gains are steep early on, and then saturate when you've reached the top of that hill. That's where many companies stall once the obvious optimizations are exhausted.
Continuous improvement requires finding new hills to climb, and that takes engineering creativity, deep talent, and infrastructure that lets teams train many models and run many experiments in parallel. That infrastructure is worth a closer look.
All six domains run on the same infrastructure, which includes training, serving, real-time features, and experimentation, built for the particular constraints of the open internet.
Training: The core challenge here is generalization: the system must predict outcomes for combinations of impression, ad format, user, advertiser, event value, creative variant, and auction path that it has never seen, using signals that are sparse and occasionally not available at all. We train deep learning architectures including multi-head models, transformer-based and other sequence models, and deep cross networks. The sequence models learn from cross-app event histories to build dense user representations that generalize even to sparse-signal users. Our training platform ingests events continuously and relies on CPUs, TPUs, and GPUs to achieve the training speed and cost-efficiency needed. Models retrain as new signals arrive and deploy to production as often as every two hours.4 The system learns from more than 6 billion events (impressions, clicks, installs, and in-app actions) every day on average.5
Serving: Training a sophisticated model is one problem; serving it inside an auction's latency constraint, worldwide, is another. The largest, most expensive models learn the best representations but can't run fast enough for live traffic. So they run offline, and we use knowledge distillation to compress what they learn into the compact models that serve traffic in real time, retraining continuously as new data arrives. Today we train primarily on TPUs and serve real-time inference on GPUs, but the architecture doesn't lock us in; the hardware mix evolves with the models. At Google, I watched a team build a model and then wait years to deploy it because the hardware only worked for training. Every day our ML experts work to find the efficient frontier of cost and performance through experimentation and engineering.
Real-time features: Raw signals become features the instant they arrive, computed consistently in training and serving, because training/serving skew can be a silent killer of production AI. The hard part isn’t just the speed. Signals arrive at different times, and any single one tells an incomplete story, so on every request we face a tradeoff: wait for the complete picture and act on data that may be stale, or rely on the freshest data, which may be incomplete. Our predictions combine our historical understanding of a user with what their most recent activity tells us. This requires sophisticated caching and real-time feature management.
Experimentation: There's always a better model. In theory, deep learning can approximate any function. But the "no free lunch" theorem says there is no universally best learner: averaged across all possible problems, every approach performs the same. A model only wins by matching its assumptions to the problem in front of it. Those assumptions are called inductive bias, and they are where domain expertise lives. There is no way to derive the right ones from theory, so our teams continuously train new models and experiment with new architectures to encode what we know about performance advertising. Offline evaluation can't substitute for live testing: you never observe the outcome of the bids you didn't place. We can run over a hundred concurrent experiments against live traffic,6 layered so they overlap without contaminating one another, measured precisely enough to detect fractional-percent effects. Experimentation is embedded at the core of Moloco's architecture, so nearly every configuration in the stack can be tested live as we bring AI to each new problem.
Generative AI is advancing at an astonishing rate, and it's exciting to think about how all those innovations will transform performance advertising. Are frontier models anywhere close to doing what CARA does, including predicting whether a specific user will install an app and how much they will spend in it over the next thirty days? No, and for many reasons. Frontier models don't understand performance advertising from the advertiser's or the ecosystem's perspective. They don't have the rich behavioral signals to understand users and apps. They can't make precise value predictions, and they can't evaluate a trillion ad opportunities a day, each within tens of milliseconds.¹
At the same time, generative AI is a force multiplier for us. We use it to generate creative components at scale, and to understand natural language, images, and videos. Those capabilities provide richer signals and more assets to CARA. The models we develop build upon foundational generative AI research, including transformer architectures and multi-task learning. We use agents internally to accelerate our own work, we are developing specialized agents that configure, troubleshoot, and optimize campaigns, and we are building interfaces that let our customers' agents interact with our products directly.
CARA's compounding shows up in the numbers. In 2025, out of the thousands of controlled experiments we ran, we validated 65 model improvements for Moloco Ads and rolled them out to production. Together, those 65 lowered cost per install by 14%, lowered cost per action by 17%, and improved return on ad spend by 27% for Moloco advertisers.7
For years I've said that the first rule of AI is you do not talk about AI. What I mean is that you start with the customer's problem, and then find innovative ways to apply AI. I've now talked about AI for an entire article. Unlike Fight Club, though, everything here is real and running in production. And the rule still held where it mattered: this piece began with the problem, and the AI came after.
What I'm proudest of at Moloco isn't any individual model or the AI and data infrastructure underneath it all. It's how deeply we understand the problems of performance advertising on the open internet, and the ways we've experimented and applied AI to solve them. All of that work is in service of one goal: delivering outcomes for our customers.
Matching products and services to users is the heart of performance advertising, and it offers a nearly infinite number of hills to climb. That's exactly why I love this work, and why I've been doing it for more than twenty years.
1. Moloco internal data; average daily ad opportunities received by Moloco Ads, January–March 2026. Figure is an estimate derived from sampled infrastructure data scaled to total volume.
2. Daily active users (DAU), for the purposes of this claim, is defined as the average number of unique consumer devices observed across Moloco's integrated exchange partners and proprietary SDK on Android and iOS devices globally per business day. Based on Moloco internal estimate of potential daily user reach across an average of five sample business days in March and April 2026. Each device is assigned to a single country to prevent double-counting; tablets are excluded through deterministic classification using exchange signals and device model matching; and country-specific device-to-user calibration factors are applied to translate device counts to estimated unique users.
3. Moloco Internal Data; count of distinct app bundles (iOS and Android cumulative total) where Moloco received at least one RTB (real time bid) request in the 90-day period ending April 3, 2026, worldwide. ‘Independent’ refers to apps not operated by Walled Gardens (e.g., Facebook, Instagram, TikTok, Amazon Shopping, YouTube).
4. Moloco ExpLab platform data, Q4 2025.
5. Moloco internal platform data, daily average of events January 2025 to December 2025.
6. Moloco ExpLab platform data, 2025.
7. Moloco internal platform data. Reflects the combined impact of model updates released during 2025, each validated through a controlled A/B experiment before full deployment.
Chief AI Officer, Moloco
Is your channel mix resilient in an AI-disrupted world?AI isn’t just altering how we work. It’s fundamentally changing consumer behavior.

Peak demand during major sporting events is predictable—but often mistimed. Learn how aligning spend with high-intent moments can drive stronger acquisition and efficiency, based on Cheltenham performance insights.

Moloco appears on 27 leaderboards, placing us fifth overall for leaderboard appearances.
