
How to move budget between channels without losing the gain
The distribution check tells you there's an opportunity. Moving it all at once eats most of it. Here are three execution rules, and what to watch afterwards.

When performance flattens, the instinct is to make something new. New creative, new campaign, new channel. Each of those costs time, budget and a learning phase.
Meanwhile there's money you already spend sitting in the wrong place, and moving it costs nothing.
Sorting channels by return tells you which one beats which. It doesn't tell you how many riyals you can actually move.
An illustrative case: one channel takes 60% of the budget and returns 22% of revenue, while another takes 15% and returns 38%. The difference between spend share and revenue share is the money you can move this week.
For each channel, write its share of spend and its share of revenue, then subtract. The channel whose spend share clearly exceeds its revenue share is where the money comes from. The channel where it runs the other way is where it goes.
| New campaign | Reallocation | |
|---|---|---|
| Creative cost | Yes | No |
| Setup time | Yes | Minutes |
| Learning phase | Yes | No |
| Extra budget | Usually | None |
| Time to result | Weeks | Days |
A new campaign is sometimes the right answer, when you've genuinely exhausted a channel or need a new audience. It's rarely the first step. People reach for it because building something new feels more like progress than dragging a budget slider.
Per channel, two numbers on a shared basis:
Before you add anything up, fix the period and the attribution model across all channels. If you read one channel on first touch and another on last touch, the gap you see comes from how you read it rather than from how the budget sits.
The second number is the one that usually breaks. Rely on platform-reported conversions and each platform describes only itself. The sum runs past your real order count, so you start the calculation from a number that's already too high. See counting every order once.
Flowfy gives you the revenue side, with each order's source counted once. Connecting ad spend is on the roadmap and hasn't shipped, so the spend side comes from your ad accounts today. The whole check is a ten-minute spreadsheet: share of spend against share of revenue, per channel.
Three things to check first.
Roles differ. A channel whose job is introducing people to you has a low closing return by nature. That isn't misallocation, it's a different job. Look at its share of first appearances in the journey before you judge it. See designing the sequence.
The period is too short. If your product takes two weeks to decide on, a single week produces a phantom gap. Use a period that covers at least one full purchase cycle.
Returns aren't constant. Move budget into a high-return channel and that return usually drops as it scales. The arithmetic sizes the move, it doesn't forecast the result. See moving budget.
How you execute matters too. Move in small tranches with at least two weeks between them, so you can read the effect of each move before the next one. Moving it all at once mixes the budget effect with the platform's learning phase.
On frequency: monthly is enough for most stores. The gap builds slowly, because it's made of decisions that were right when they were made and nobody went back to them.
How big does a gap need to be before it's worth acting on? Around ten percentage points of share or more. Below that you're inside your own attribution noise.
What if the channel with the gap is my biggest one? Then it's also your biggest opportunity, and the strongest reason to move in tranches rather than all at once.
Does this replace campaign optimisation? No. Optimise inside campaigns, reallocate between them. They're separate jobs.
How do I know the move worked? Watch total orders and new customers over a full purchase cycle. Don't judge on attributed revenue alone, because it will improve simply because you moved money toward the channel your model credits.
Work out share of spend and share of revenue per channel before you open a new campaign. If the difference approaches ten points or more, move a small part first and watch orders and new customers for a full purchase cycle before moving more.

The distribution check tells you there's an opportunity. Moving it all at once eats most of it. Here are three execution rules, and what to watch afterwards.

Ranking channels best to worst assumes they all do the same job. The alternative is assigning roles. Here's how to read each channel's role from your own data, and what changes in the budget afterwards.

The browser pixel and server-side tracking complete each other. Without a shared event ID between them, the same order is counted twice and ROAS reads better than reality. Here's what each path sees, and where deduplication breaks.