How the allocator decides
It runs every hour over the last 14 days, across every active campaign on every platform.
-
A response curve per campaign
Results grow with spend raised to the exponent 0.7, the usual shape of paid auctions: doubling a budget buys about 1.6 times the result.
-
A light prior
Each campaign starts from platform benchmarks for its funnel stage, worth only two conversions, so a week of real data outweighs it.
-
Pipeline when there is any
The objective is pipeline value: opportunities credited to the campaign through the account’s first paid touch. Before any pipeline exists, conversions. A campaign with its own target uses the conversions Demander measured for it, and their value for a ROAS target.
-
Thompson draws
Thousands of draws from each campaign’s posterior each give a best split of the budget. Their average is the target, which hedges the campaigns the data is still unsure about.
-
Projected onto your limits
The total stays within your daily cap. Each campaign moves at most your daily change limit (20 percent by default) and stays above its platform minimum. Campaigns younger than 7 days keep at least 5 percent of the budget, increases stop where cost per conversion is credibly above your maximum CPA, and moves under 5 percent are skipped.
Pipeline goes back to the platforms
Every hour, SQLs, new opportunities and closed-won deals from your CRM go back as offline conversions to Google (through the Data Manager API), Meta (Conversions API), LinkedIn, Microsoft, TikTok and Reddit. Each event is joined to the account’s last consented click id on that platform and, where a contact consented, to the SHA-256 hash of their e-mail. The platforms’ own bidding then learns which clicks turn into pipeline.
Conversions you defined yourself join the upload when you mark them for the ad platforms. Nothing is sent outside live mode, and the upload marker only moves after a successful live upload, so switching to live sends the backlog. See offline conversions.
Managed bidding, campaign by campaign
Each campaign runs either on the platform’s own bidding or on bids Demander sets from pipeline value. Switching is per campaign, gated and reversible.
| Platform | Bids Demander can set |
|---|---|
| Google Ads, Microsoft Advertising, Sklik | Maximum CPC |
| Meta | Cost cap and bid cap |
| LinkedIn, TikTok | CPC, CPM or cost cap |
| CPC or CPM | |
| X | Maximum bid (CPC or CPM) and target bid |
The bid is the cost per lead you can afford (your target CPA, or pipeline value per lead minus a 25 percent margin) times a deliberately low estimate of the conversion rate, so thin data never leads to overbidding. Bids move at most 20 percent per run and come down only after 40 clicks. Sklik has no automated bidding to switch back to.
Creatives that evolve
-
01
A bandit per campaign
Every ad has a posterior on its click-through rate (awareness) or conversion rate (later stages), with the campaign average as the prior. The probability that each ad is best is estimated by simulation.
-
02
Losers paused on evidence
An ad below a 5 percent chance of being best is paused once it has at least 1,000 impressions and 30 of spend (your defaults), and only if two ads stay active. Otherwise a challenger is written first and the loser is paused once it is live.
-
03
Fatigue
When recent click-through falls below 70 percent of the ad’s early rate while frequency is above the platform’s threshold, a fresh variant is written that keeps the angle.
-
04
Challengers learn from winners
A new variant takes the winning ad’s angle and hook first, then changes one thing at a time. It passes the same claims, brand and writing checks as every creative.
-
05
Personas re-weighted
Persona budget shares follow pipeline per unit of spend, and new personas keep a 10 percent floor so they get a fair test.
What runs on its own, by autonomy level
| Action | Runs without approval from |
|---|---|
| Shift budget between campaigns, total unchanged | L2 |
| Change a bid | L2 |
| Pause a losing ad | L2 |
| Re-weight personas | L2 |
| Set a budget | L3 |
| Write a challenger creative and add it to the campaign | L3 |
An action also needs confidence of at least 80 percent and must stay inside the daily change limit to run on its own. Plans cap the level: Starter L1, Growth L2, Scale L3. Every change can be undone. See guardrails.
Questions people ask
Does this replace Performance Max or Advantage+?
It works with them. A campaign can stay on the platform’s own bidding, which then learns from the pipeline Demander sends back. Demander adds what no single platform does: moving money between platforms by what reaches your CRM.
How fast does budget move?
At most your daily change limit per campaign, 20 percent by default. A larger move waits for approval, moves under 5 percent are skipped, and the total never exceeds your daily cap.
What happens while there is little data?
Priors from platform benchmarks carry the first days, campaigns younger than a week keep an exploration share, and no ad is judged before 1,000 impressions and 30 of spend. Small or uncertain moves are held back.
Can I cap cost per lead?
Yes. Set a maximum CPA and the allocator stops raising budgets where the cost per conversion is credibly above it. Campaigns on Demander bidding use your target CPA to set their bids.