Orova OROVA.VN Marketing AI Agent
Strategy

Cross-Platform Budget Allocation: Where the Next Dollar Goes

Orova 1 views
Cross-Platform Budget Allocation: Where the Next Dollar Goes

A media buyer I worked with once ran three channels with a tidy 33/33/33 split: a third of the monthly budget to Google, a third to Meta, a third to TikTok. It looked disciplined on the slide. It was also costing the business roughly a fifth of its potential revenue. When we pulled the numbers apart, Google was still returning $4.20 for every dollar at the margin, Meta was flat at $2.80, and TikTok had not yet hit the point where extra spend stopped paying. The "fair" split was starving the two channels that wanted more money and overfeeding the one that was tapped out. Reallocating the same total budget, without raising it a single dollar, lifted blended return on ad spend (ROAS) from 3.1 to 3.7 inside six weeks.

That story is the entire argument of this article in miniature. Even budget splits feel rational and they are almost always wrong. The question that actually matters in cross-platform budget allocation is not "how do we divide the pie fairly," it is "where does the next dollar earn the most?" Answering that question well, and answering it repeatedly, is the difference between a media plan that quietly leaks money and one that compounds.

Average ROAS lies to you. Marginal ROAS tells the truth.

Most allocation decisions are made off average ROAS: total revenue from a channel divided by total spend on that channel. It is the number that shows up on every dashboard, and it is exactly the wrong number to allocate against.

Average ROAS describes the dollars you have already spent. Allocation is a decision about the next dollar. Those are not the same thing, and confusing them is the single most common mistake in paid media.

Here is why the gap exists. The first dollars into any channel buy your cheapest, most obvious conversions: the people already searching for your brand, the lookalike audience that is basically your existing customers, the retargeting pool of people who abandoned a cart yesterday. Those dollars work hard. As you keep spending, the platform reaches deeper into colder, less qualified inventory. Each additional dollar buys a slightly worse conversion than the one before it. The average stays high for a while because it is dragged up by those golden early dollars, even as the dollars you are adding right now are barely breaking even.

Average ROAS is a rear-view mirror. Marginal ROAS is the windshield. You allocate by looking forward.

Marginal ROAS is the return on the incremental dollar at your current spend level. A channel can show a glorious 5.0 average while its marginal return has quietly collapsed to 1.4 because you have pushed it past its efficient ceiling. Another channel might show a mediocre 2.2 average while its marginal return is a healthy 3.8, simply because you have been underspending it and every new dollar is still landing in fertile ground.

A concrete worked example

Suppose you have $1,000 of new daily budget to place and two channels:

  • Channel A — average ROAS 4.5, but you are already spending heavily here. Modeling the spend curve, the next $1,000 would return about 1.9.
  • Channel B — average ROAS 2.6, lightly funded. The next $1,000 would return about 3.4.

Look only at averages and you pour the money into Channel A and feel smart about it. You would generate roughly $1,900 in revenue. Allocate by the margin and you put it into Channel B for roughly $3,400. Same budget, $1,500 more revenue, purely from asking the right question. Scale that decision across thirty days and three platforms and the difference stops being a rounding error and starts being the quarter.

How to estimate marginal ROAS without a PhD

You do not need a perfect model. You need a usable one. Three practical methods, in ascending order of rigor:

  1. Recent-tranche analysis. Look at the last meaningful budget increase on a channel. When you went from $300/day to $400/day, what did that extra $100 produce? That delta is a rough read on marginal return at that spend level. It is noisy but directionally honest.
  2. Spend-curve fitting. Plot daily spend against daily revenue over the last 60–90 days. The relationship is almost never linear; it bends. Fit a simple diminishing-returns curve (a logarithmic or power curve works fine) and read the slope at your current spend. The slope is your marginal ROAS.
  3. Geo or holdout testing. The gold standard. Hold spend flat in some markets, increase it in others, and measure the incremental lift. This isolates causation from correlation and catches the cannibalization that the other two methods miss.

The point is not precision to two decimal places. The point is to stop allocating against a number (average ROAS) that is structurally guaranteed to mislead you, and start allocating against one that, even when rough, points in the right direction.

Bar chart comparing marginal ROAS across Google, Meta and TikTok, with TikTok highest at 72, Google at 65 and Meta lowest at 50
Move the next dollar to the highest marginal return, not the biggest channel.

Diminishing returns and the saturation point

Every advertising channel has a saturation curve. Spend a little and returns climb steeply. Spend more and the curve flattens. Spend past a certain point and the curve goes flat or even bends down as you bid against yourself, fatigue your audience, and pay rising prices for falling-quality inventory.

The single most valuable thing you can know about each channel is roughly where on its curve you are sitting right now. Three zones matter:

The growth zone

Here marginal ROAS is comfortably above your break-even threshold, often above your average. Every additional dollar is profitable. This is where you want to be pushing money. The mistake advertisers make is leaving the growth zone too early because the channel "feels" maxed out, when in fact the data says keep going.

The efficient frontier

This is the sweet spot, the spend level where marginal ROAS exactly equals your target. One dollar more and you start funding conversions that do not clear your bar. In a perfectly allocated portfolio, every channel sits at the same marginal ROAS — your target threshold. That equal-marginal-return condition is the mathematical definition of an optimal allocation, and it is worth internalizing: when the marginals are equal across channels, no reshuffling of dollars can improve the total. When they are unequal, you are leaving money on the table by definition.

The saturation zone

Beyond the frontier, marginal ROAS drops below target. You are still generating revenue, the average still looks fine, but the newest dollars are losers. Audiences see your ads too often. Auction prices climb because you are competing for thinner inventory. Frequency creeps from a healthy 2–3 per week to 7, 8, 9, and click-through rates sag. Pull spend back from here and your average ROAS actually improves because you stop dragging in the worst conversions.

The goal is not to maximize spend on your best channel. It is to keep every channel parked exactly on its efficient frontier, then put leftover budget wherever the next dollar still beats your target.

A few signals that a channel has crossed into saturation, even before you have a clean curve:

  • Rising frequency with falling CTR. The same people are seeing you more and responding less. Classic fatigue.
  • CPM climbing faster than conversions. You are paying more to reach the same outcomes, a sign you have exhausted the cheap inventory.
  • Marginal ROAS materially below average ROAS. The clearest quantitative tell. If your average is 4.0 but your last budget bump returned 1.5, the curve has bent hard.
  • Diminishing lift from budget increases. You raised the budget 20% and revenue moved 6%. The channel is telling you it is full.

Why the curves differ by platform

Google, Meta and TikTok do not share a curve, and they rarely saturate at the same time. Search demand on Google is fundamentally capped by how many people are querying your terms — you can only capture intent that already exists, so search-heavy accounts saturate relatively fast and hard. Meta and TikTok sell against interest and behavior rather than declared intent, so their addressable audiences are larger and their curves bend more gently, but they fatigue creative faster. TikTok in particular tends to reward fresh creative and can open up new headroom the moment you ship a new winning ad, effectively resetting part of its curve. This is why a static split is doomed: the three curves are moving at different speeds, in different directions, every week.

Budget pacing interacts with all of this, and getting the within-day and within-month rhythm right is its own discipline. If you want to go deeper on keeping spend smooth and on-target rather than lumpy, the companion piece on budget pacing on autopilot covers how to avoid the front-loading and end-of-month panic spending that quietly wrecks marginal efficiency.

Allocation is a daily decision, not a quarterly plan

Here is the uncomfortable truth that the 33/33/33 split tries to avoid: the optimal allocation changes constantly. The numbers that justified your split on Monday are stale by Friday.

Consider what moves underneath you in a single week. A competitor launches a campaign and Meta CPMs jump 18%. A TikTok creative goes mildly viral and suddenly the channel has headroom it did not have on Tuesday. Google's auction tightens around a seasonal spike in your category. A new audience finally exits the learning phase and starts converting. Each of these events shifts a marginal ROAS curve, and a plan written last month has no way to know.

This is why a fixed allocation, however thoughtfully calculated, decays. It was correct for one snapshot of one week, and the world did not hold still. Treating allocation as a quarterly planning exercise guarantees you spend most of the quarter misallocated.

Flow diagram showing the continuous reallocation loop: measure marginal ROAS, find saturation point, shift the next dollar, then re-measure
Allocation is a daily decision, not a quarterly plan.

The continuous reallocation loop

The alternative is to run allocation as a loop rather than a plan. Four steps, repeated daily or close to it:

  1. Measure marginal ROAS on each channel using the most recent data. Where is the next dollar landing, today, not last month?
  2. Find the saturation point. Identify which channels are still in their growth zone, which sit on the frontier, and which have crossed into diminishing returns.
  3. Shift the next dollar toward the highest marginal return, and pull it back from anything below your target threshold. Small moves, made often.
  4. Re-measure. Every reallocation changes the curves — moving money into a channel pushes it along its own curve toward saturation. So you observe the effect and feed it back into the next decision.

The discipline of small, frequent moves matters. Yanking 40% of budget from one channel to another overnight throws every campaign back into a learning phase, spikes volatility, and makes the result impossible to read. Shifting 5–10% at a time keeps the system stable enough to measure while still chasing the gradient. Think of it as steering, not swerving.

Why humans struggle to do this

The loop is conceptually simple and operationally brutal for a person to run. To do it well by hand, every single day, you would need to:

  • Pull spend and revenue from three platforms with three different APIs, attribution windows and reporting lags.
  • Reconcile conversion definitions that do not match across platforms (Meta's 7-day click vs. Google's data-driven attribution vs. TikTok's own model).
  • Re-fit saturation curves on fresh data, for every channel, sometimes every campaign.
  • Compute marginal ROAS, compare against target, and decide the size and direction of each shift.
  • Make the changes inside three separate ad managers before the day's auctions move on.
  • Resist the behavioral pull toward the channel you personally like or the one that looks best on average.

Nobody does all of that, every day, across three platforms, without burning out or cutting corners. So in practice allocation gets revisited monthly at best, usually after a results meeting, usually with stale numbers and a heavy dose of gut feel. The loop that should run daily runs quarterly, and the gap between optimal and actual allocation widens for weeks at a time before anyone touches it.

What "good" looks like in practice

A well-run allocation system has a few recognizable traits. The blended ROAS is higher than the average of the individual channel ROAS figures — a sign that money is flowing to the margins rather than sitting in fixed buckets. Budget shares drift week to week rather than holding fixed numbers, because the system is responding to real movement. No channel is consistently running deep in its saturation zone. And when a new creative or audience opens up headroom, budget finds it within days, not at the next planning cycle.

If your channel splits have not changed in two months, you are not allocating. You are coasting.

Common allocation traps to avoid

Even teams that understand marginal return fall into predictable traps. A few worth naming:

Last-click tunnel vision

If you allocate purely on last-click conversions, you will systematically overfund bottom-funnel channels (often branded search) and starve the upper-funnel channels (often Meta and TikTok) that created the demand in the first place. The branded search dollar that "converted" only got the chance because a TikTok video planted the intent a week earlier. Marginal ROAS measured on last-click can point you toward cannibalizing your own demand generation. This is exactly where incrementality testing earns its keep.

Confusing volume with efficiency

The biggest channel by spend is not automatically the most deserving of the next dollar — usually the opposite, because it is the most likely to be saturated. Size tells you where you have been, not where the margin is.

Reallocating into the learning phase, then panicking

You shift budget aggressively, performance dips for three days while campaigns re-learn, you lose nerve and yank it back. Now you have paid the learning-phase tax twice and learned nothing. Move smaller, wait for the dust to settle, and judge the result on a clean window.

Ignoring the floor

Some channels deserve a minimum spend even when their marginal return dips — to keep audiences warm, keep the algorithm fed, and preserve optionality. Pure greedy allocation that zeroes out a channel can cost you when conditions shift and you want that channel back but it has gone cold. Allocation is greedy within sensible floors and ceilings, not recklessly so.

Setting the target threshold that drives everything

The entire allocation loop hinges on one number you choose: the marginal ROAS target. It is the bar that decides whether the next dollar gets spent or held back, and getting it right is more consequential than any individual reallocation. Set it too high and you leave profitable growth on the table by refusing dollars that would have cleared your real economics. Set it too low and you cheerfully fund conversions that lose money on the margin while the average ROAS still looks respectable.

The target is not your average ROAS and it is not a number borrowed from a benchmark report. It is derived from your unit economics. Start with your contribution margin — revenue minus the variable costs of fulfilling an order. If a $100 order carries $40 of product, shipping and payment costs, you have $60 of contribution to work with. Your break-even marginal ROAS is the point where the incremental ad dollar exactly equals the incremental contribution it generates. Above that line you grow profitably; below it you buy revenue at a loss.

Adjusting the target for the funnel

A single blanket target across all three platforms ignores that they play different roles. A break-even marginal target makes sense for bottom-funnel, high-intent spend like branded and non-branded search, where the conversion is close and attribution is relatively clean. For upper-funnel prospecting on Meta and TikTok, a strict last-click marginal target will look terrible and tempt you to defund the very channels that feed the rest of the system. The fix is to either measure those channels on an incremental or blended basis, or to deliberately set a lower last-click target for them that reflects their assisting role. The danger is allocating across channels on inconsistent yardsticks — comparing a Google last-click marginal ROAS to a TikTok view-through marginal ROAS is comparing two different things and will push money in the wrong direction.

Customer lifetime value changes the math

If your customers buy more than once, the first-order ROAS understates the true return of acquisition. A subscription business or a brand with strong repeat rates can profitably run a marginal ROAS below 1.0 on the first purchase because the lifetime value dwarfs the acquisition cost. The cleaner you can model the relationship between first-order ROAS and lifetime contribution, the more aggressively and correctly you can fund acquisition channels that look unprofitable on a single-purchase view. This is one of the most common ways disciplined allocators outspend their competitors safely — they are optimizing against a bigger, truer number.

Pick the wrong target and the most elegant allocation loop in the world will steer you efficiently in the wrong direction.

How an AI agent runs this loop for you

Everything above is a description of a control problem: measure a signal, compare to a target, make a proportional adjustment, observe the effect, repeat. Control problems are exactly what software is good at and humans are bad at sustaining. This is where an autonomous agent changes the economics of allocation.

An AI agent built for this reads spend and conversion data from Google, Meta and TikTok every day, on the same schedule, without forgetting and without fatigue. It fits and updates saturation curves per channel and per campaign as new data arrives. It computes marginal ROAS against your stated target, identifies which channels are below the frontier and which are above it, and proposes the next set of small, gradient-following shifts — move $80 from the saturated Meta campaign, add $120 to the TikTok ad set that just exited learning, hold Google at the frontier. Then, the next day, it measures what those moves did and adjusts again. The quarterly plan becomes a daily loop, run consistently, free of the channel loyalty and recency bias that trip up human buyers.

The agent does not just analyze, either. It can execute the reallocation directly — adjusting budgets, bids, and on/off states inside each platform — while keeping a human in the loop for approval and writing a full audit log of every change and its rationale. You get the discipline of a daily allocation loop without spending your day inside three ad managers, and you keep the control and visibility that any real budget owner needs.

The bottom line

Fairness is the wrong objective for a media budget. Splitting evenly across Google, Meta and TikTok optimizes for the appearance of balance and against the reality of returns. The next dollar belongs wherever its marginal return is highest, and that location moves every week as curves bend, creative fatigues, auctions tighten and audiences saturate. Measure marginal ROAS rather than average. Know where each channel sits on its saturation curve. Shift small and shift often. And accept that allocation is not a plan you write once but a loop you run continuously — which is precisely why it is a job worth handing to a system that never gets tired of running it.

Orova Ads is the AI agent that runs this loop for you. It reads your Google, Meta and TikTok data every day, finds where the next dollar earns the most, and executes the budget, bid, on/off and audience moves to put it there — with your approval and a full audit trail. Stop splitting evenly and start allocating by the margin at orova.vn/ads.

Let an AI Agent handle your SEO

Orova plans, writes, optimizes, and tracks rankings on its own — you just read the results.

Try it free