npx skills add ...
npx skills add mbfinotti/advertising-skills --skill ad-campaign-consolidation
Evaluate a fragmented paid-ads account and recommend which campaigns and ad sets to merge, which splits to preserve, and how to migrate without resetting learning across the account - it plans the consolidation, it never executes it. Use whenever the user mentions too many campaigns or ad sets, merging or restructuring an ad account, ad sets stuck in learning or learning limited, budget spread too thin, account simplification, or campaigns competing with each other - even if they never say 'consolidation'. Covers B2B and B2C on search, paid social, video, and professional-network platforms. Do NOT use to find out why the account underperforms in the first place - use mbfinotti/advertising-skills@ad-account-diagnostic instead.
npx skills add mbfinotti/advertising-skills --skill ad-campaign-consolidation
Turn a fragmented multi-campaign account into a consolidation plan: what to merge, what to keep split, in what order, and how to judge the result. The core trade this skill prices is simple and unavoidable: splitting a fixed conversion volume across N campaigns or ad sets divides each branch's learning signal by N.
Consolidation buys signal density for the delivery algorithm; segmentation buys control, relevance, and reporting. Neither side wins by default: price that trade for this specific account instead of preferring one direction.
You recommend; you never execute. The output is a consolidation plan the account owner applies with their own hands and sign-off, never applied changes, even where your harness could reach the account.
This skill activates once fragmentation is already the suspected or confirmed problem. The broader "why is this account underperforming" root-cause work belongs to mbfinotti/advertising-skills@ad-account-diagnostic, which hands its fragmentation verdict to this skill - run the diagnostic first if nobody has established that fragmentation is the problem.
Consolidation is platform-endorsed, not a fringe opinion:
Treat consolidation as a hypothesis to test, never a guaranteed win. Do not oversell it in the plan.
Ask before analysing anything.
One question per message.
Offer multiple-choice answers where possible.
Skip anything already supplied by the user, the data, or a diagnostic handoff.
Which platform(s)? (search / paid social / short-video / professional-network / several)
B2B or B2C/ecommerce?
Monthly spend, and monthly conversion count on the event the account actually optimises to? (This single pair decides most of what follows.)
Current structure: how many campaigns, ad sets/ad groups, and active ads?
What can you export, and at what granularity? (Per-branch per-day conversion counts are the working minimum.)
What is the target CPA or ROAS - and is it derived from unit economics (margin, deal size, close rate) or inherited from a dashboard?
Which segments exist as separate campaigns/ad sets today, and why was each one split out? (The load-bearing question - answers like "for the 2024 launch" or "the previous manager reported that way" versus "different margin per segment" decide the whole plan.)
Who controls the budget, and is any split externally mandated (client contract, finance, a guaranteed spend per line of business)?
What reporting does the business need preserved after the merge? (Contractual or operational - not "nice to have".)
Are any branches currently in the learning phase, and is there an active cost spike or panic driving this request?
How long is the sales cycle, when is the next peak season, and by what date must the result land? (A hard date promotes the fast, contained moves - prune, then merge - and rules out anything whose payoff needs a learning cycle plus a sales cycle.)
Do you want a one-off win on this quarter's numbers, or a structure that keeps paying? (One-off promotes prune and re-parent; a compounding mandate promotes merge and, in low-volume B2B, up-funnel.)
What is the effort ceiling: rebuild hours available, who must sign off, how much political capital the split owners cost you, and how reversible the change must stay? (A low ceiling caps the plan at prune and re-parent; only a high one funds a multi-phase merge.)
Assign every branch (campaign or ad set) exactly one state, each with a one-line justification citing the volume test, the budget test, and the preserve rules:
merge - below threshold (or budget-starved) and no preserve rule applies. Name the merge destination.keep - clears volume and budget on its own, or a preserve rule protects it. Name which.keep but re-parent - reporting or control must survive, but the bidding signal should pool. The branch stays separately reported under a shared budget and bid strategy (rung 3 below).insufficient evidence - the data cannot support any of the above. State what would clear it. This is a real state, not a failure to decide.Five moves chase the same goal - denser learning signal per branch. They are not equivalent, and the owner's real question is which one to spend this month's hours and sign-offs on.
prune > merge > re-parent > up-funnel > big-bangmerge == big-bang > up-funnel > re-parent > prunebig-bang > up-funnel > merge > re-parent > prunebig-bang > merge > up-funnel > re-parent == pruneprune - pause the branches nobody can justify and move their budget to the survivors in steps of roughly 20%. Near-zero build, instantly reversible (pausing does not reset learning), no sign-off past the budget owner. Fixes funding starvation, not duplicated audiences - which is why it leads the order without ending the job.merge - build one merged entity per group, shift budget, then pause the originals. Building takes about an hour plus one learning cycle of patience per phase, and it's the move that genuinely recovers divided signal, though it stays reversible only while the legacy structure remains paused. Start with the archaeological splits, where no one defends the split and the political capital cost is nil.re-parent - pool budget and bid strategy under a shared parent while each branch keeps reporting separately (the low-risk middle move practitioner Jyll Saskin Gales recommends for roughly-ten-campaign accounts), each with a minimum-spend floor. Same build effort as a merge, far less negotiation because the report survives - but it pools funding, not ad-set-level learning, so the volume test can still fail afterwards.up-funnel - move the optimisation event to a higher-volume proxy (see B2B and B2C). Needs the tracking and CRM owners, a consent and data review, and a standing job keeping the proxy honest against real outcomes. Slow and compounding, and the only move that works when even the fully merged structure cannot clear the threshold.big-bang - rebuild the whole account at once. Its theoretical value matches a phased merge; every branch relearns simultaneously, the result attributes to nothing, and any externally mandated split it dissolves needs finance, client, or legal sign-off first. Migration Mechanics rules it out for any live account - it is listed here so a plan can say why it was rejected.Default: run rung 1 across the account, then rung 2 on the groups the preserve rules leave unprotected. Move up a rung when the one below has run its no-touch window and the volume test still fails.
What this order starves is up-funnel. It is slow, it costs a second team plus a standing job, and it sits at rung 4, so the escalation rule above reaches it only after three rungs have each burned a no-touch window - which is months. That is exactly backwards for the account that needs it most: where the conversions do not exist, no amount of merging conjures them, and every rung below up-funnel spends a learning cycle proving that again.
Promote it straight to first, ahead of prune, on one condition: the volume test shows that even the fully merged structure would not clear the platform's threshold (see B2B and B2C). Do not walk the ladder to reach it - the arithmetic is available on day one.
This ordering is a default, not a law - it shifts with the account and with who executes it. Re-rank it against what you already know about this user:
prune nearly worthless and re-parent the real first move.Their Interview answers move it directly too - a hard date promotes prune and merge, a compounding mandate promotes up-funnel.
A constraint the user actually stated does something different from re-ranking: it removes the rung. Delete it from the ladder and name it as deleted in the plan, with the constraint that killed it and what would revive it - the way rung 5 is already listed only so the plan can say why it was rejected.
up-funnel.merge and everything above it, leaving prune and re-parent as the whole plan.Say so outright rather than ranking the deleted rung last. A move parked at the bottom of a ladder reads as future scope, and it comes back next quarter as a fresh proposal to whoever forgot the constraint.
Refuse to produce a merge plan on data that cannot support it. All of these must hold before any merge classification becomes a plan:
insufficient evidence, not merge. (Practitioner starting point: at a true cost-per-conversion equal to target, 3x spend showing zero conversions is about 5% probability. Recalibrate against the account's own variance.)When the gate fails, state the arithmetic of what clears it and offer the clearing moves in this order - efficiency: missing export or access > more days at current volume > concentrating budget into fewer branches to accumulate per-branch spend faster.
A split survives only for a business reason, never for comfort or habit. Test each split against this list; anything unprotected is a merge candidate. This list is what keeps the skill honest - a plan that only ever says "merge" is wrong roughly as often as one that never does.
Keep the split when:
keep but re-parent preserves the report while pooling the signal.The mirror failure is real too: over-consolidation into one undifferentiated pool lets the algorithm park on its easiest slice and never reach the rest - mixed account lists get over-served to the largest companies and stall. Consolidation is not monotonically good; the plan states where merging stops.
This is how the plan answers "consolidate without losing audience segmentation control" on algorithmic platforms: move the audience knowledge from the targeting filters into the creative. Merge the ad sets, then run one creative variant per segment inside the merged set - each variant speaks that segment's language - and let delivery match variant to viewer.
The anti-pattern this replaces: generic creative propped up by a stack of narrow filters. Twelve stacked interests, three demographic filters, and a custom audience over a bland ad produces a small audience that all see a bad ad. If segment knowledge exists, spend it on the message, not the filter.
This move applies to B2B and B2C alike - the segments differ (personas and account tiers vs demographics and intent stages) but the mechanic is identical. It does not apply where a preserve rule above forces structural separation (regulation, unit economics, budget mandates): creative variants cannot substitute for a separate budget or a separate bid target. Hand the actual per-segment creative work to mbfinotti/advertising-skills@ad-creative-test-plan.
Two formulas carry the quantitative plan; the derivations are durable even as platform numbers drift.
Practitioner starting points worth using with their conditions attached - all recalibrate against the account's own data, none are platform law:
The plan is the easy half; migrations get reverted on day three. Sequence it so the account never resets everything at once:
Window lengths stretch with the sales cycle. Whoever owns budget guarantees (finance, the client) signs the plan before phase one, not after.
The method is identical in both: same inventory, same volume-and-budget tests, same preserve rules, same gate, same migration discipline. What diverges is whether the threshold is reachable at all.
B2C/ecommerce: volume usually supports the full arithmetic. The dominant risk is pooling unequal-cost branches (Budget Mathematics) and retargeting eating prospecting.
B2B low-volume reality: when even the fully merged structure cannot clear the platform's threshold on the target event, consolidation alone is not the answer - no amount of merging conjures conversions that do not exist. Say this plainly in the plan, then take (a) before (b):
(a) up-funnel: move the optimisation event to a higher-volume proxy (qualified visit, form open, MQL) and retarget converters - the platform-advised path when the bottom-funnel event is unreachable - feeding CRM outcomes back so the proxy stays honest.
(b) accept manual or volume-independent bidding for that branch and judge it on leading metrics.
value: (a) > (b) - only (a) restores an optimisation signal; (b) just stops pretending there is one.
effort: (a) > (b) - (a) needs the tracking and CRM owners plus a standing job policing the proxy; (b) is a settings change.
Take (b) first when there is no tracking owner to coordinate with, or when the effort ceiling from the Interview rules (a) out.
This is the case the thresholds are hardest for and the one most often botched: a plan that merges a 5-conversions/month account into one campaign and declares victory has changed nothing.
Judge against the account's own pre-merge history, never industry benchmarks, over a full lag-mature window at equal attribution maturity on both sides. Expect and forecast the transient dip - a plan that does not predict the dip gets reverted inside it.
Baseline: the pre-merge window's blended cost per conversion (or MER/blended CAC where revenue data exists) and the share of spend sitting in learning-limited or under-threshold branches.
Pass threshold (this skill's own working target, not a researched constant), at the re-check date - one full learning cycle plus one sales cycle after the final phase:
mbfinotti/advertising-skills@ad-account-diagnostic.Rollback trigger, defined before phase one: blended cost per conversion worse than roughly 1.5x baseline after the no-touch window matures (starting point - set it from the account's own variance), or a preserved-for-a-reason segment starved below its floor. Rolling back means shifting budget back to the paused legacy structure - which is why it was paused, not deleted.
Prefer incrementality over platform-reported ROAS for the verdict. The most common consolidation failure hands budget to already-converting audiences that report beautifully; reported retargeting ROAS is cited as overstating true incremental ROAS by 40-70%. Three ways to settle it, and the axes disagree:
Run the lift study by default. Escalate to a geo holdout when the merge moved a large share of the account's budget, or when the platform grading its own homework is exactly what is in dispute. Isolate confounders - seasonality, creative refreshes, price/promo moves, tracking or consent changes - by segmenting pre/post data, never blending it.
| Failure | What it looks like | Fix |
|---|---|---|
| Pool starvation | One cheap branch (brand search, retargeting) eats the shared budget; blended numbers look great, growth branches go blind | Pool only comparable-cost branches; minimum-spend floors; keep brand and retargeting on their own budgets |
| Retargeting absorbed into prospecting | Reported ROAS jumps, incrementality collapses - budget locked onto users who would have converted anyway | Separate funnel stages structurally; verify with a holdout, not the dashboard |
| New creative starved | Net-new concepts in a pool with proven ads get nothing within 48 hours | Isolate net-new concepts with a protected test budget |
| Over-consolidation | One undifferentiated pool; the algorithm parks on the easiest slice and never reaches the rest | Re-split into homogeneous bands with their own budgets - consolidation has a floor |
| Day-3 reversion | The predicted relearning dip arrives, nobody pre-committed, the merge is rolled back before it can work | Written no-touch window and evaluation date, signed before phase one |
| Big-bang reset | Whole account restructured at once; everything relearns simultaneously; the outcome cannot be attributed | Phase the migration; keep a control |
| Edit-in-place reset | "Just retargeting the existing campaign" silently resets its learning | Build new alongside, shift budget, pause the old |
| Panic merge | Restructuring mid cost-spike or mid learning phase as a reflex | Evidence Gate: diagnose first; a reset often costs more than the spike |
| Threshold folklore | Applying one platform's conversion threshold, or a universal budget-to-CPA ratio, to a platform that documents no such thing | Use each platform's documented number or none; teach the derivation, re-verify live pages |
| Merged across economics | Segments with different margin/LTV pooled under one target | Preserve rule one: different unit economics keep their split |
"We run 14 search campaigns and 9 paid-social ad sets on about $9K/month, maybe 40 conversions total. What should we merge?"
Run the Interview, inventory every branch, compute per-branch volume against threshold, test each split against the preserve rules, classify, gate, then deliver the plan. See ./references/worked-invocation-example.md for the full worked walkthrough.
Skip this section for a tool-agnostic plan; read it when the user names a platform. Documented from each platform's own help pages - re-verify against the live page before quoting, these numbers drift:
Folklore to actively debunk when the user repeats it (most competing advice presents these as fact):
mbfinotti/advertising-skills@ad-bidding-strategy - chooses the bidding method the merged structure runs on.mbfinotti/advertising-skills@ad-spend-allocation - splits the total budget across the resulting campaigns and platforms.mbfinotti/advertising-skills@ad-negative-keywords - search-term routing so merged search campaigns do not self-compete.mbfinotti/advertising-skills@retargeting-funnel - stage design when prospecting/retargeting separation is preserved.mbfinotti/advertising-skills@ad-audience-targeting - designs the targeting inside the consolidated structure.mbfinotti/advertising-skills@ad-budget-pacing - daily pacing once the new structure is live.