---
name: map-full-funnel-structure
description: >-
  Lays out a top-of-funnel (TOF) prospecting, mid-funnel (MOF) engagement, and bottom-of-funnel
  (BOF) retargeting campaign structure with hard audience exclusions between every stage, so the
  same warm user isn't served by three campaigns at once while cold prospecting starves. TOF runs
  broad, Advantage+ audience, or interest/lookalike stacks with no inbound exclusions; MOF targets
  engagers and site visitors; BOF retargets AddToCart/InitiateCheckout non-purchasers and product
  viewers. Splits budget prospecting-first (majority to TOF, since it is the only stage with real
  growth headroom) and caps BOF spend to what the retargeting pool can absorb without inflating
  frequency. Reach for it when standing up acquisition plus retargeting together, or auditing an
  existing account for missing exclusions between stages. It ends at a funnel map, the audiences
  themselves are built in build-custom-audiences / design-retargeting-ladder.
---
# Map a Full-Funnel Campaign Structure

## Purpose
Prospecting is the only stage with real headroom to grow; retargeting pools are finite and cheap to
over-fund. A full-funnel structure keeps strangers (TOF), engaged-but-unconverted people (MOF), and
near-purchasers (BOF) in separate campaigns with hard exclusions between them, so each stage's budget buys
the audience it is actually meant for. Without the exclusions, the same warm user gets hit by TOF, MOF,
and BOF ads simultaneously, frequency climbs, attribution gets muddy, and the account looks busy without
actually growing.

## When to run
- Standing up a new account that needs both acquisition and retargeting, not a single campaign.
- A prospecting-only account has enough site/engagement traffic to justify adding retargeting stages.
- A retargeting-heavy account has plateaued because prospecting is under-funded, the pool is a hard
  ceiling on how far BOF spend can scale.
- Auditing an existing multi-campaign account for missing exclusions between stages.

## When NOT to run
- The objective per stage isn't chosen yet → `select-campaign-objective`, run once per stage.
- The audiences themselves need to be built (custom audiences, lookalikes, retargeting windows) →
  `build-custom-audiences`, `design-retargeting-ladder`, this skill maps where they plug in, not how
  they're built.
- Budget placement within a single stage is the open question → `choose-cbo-vs-abo`.
- Ad-set/creative sizing within a single stage is the open question → `design-account-structure`.

## Prerequisites
- Objective decided per stage (`select-campaign-objective`): typically Awareness/Traffic for TOF,
  Engagement/Traffic for MOF, Sales/Leads for BOF.
- Pixel/CAPI events firing for `ViewContent`, `AddToCart`, `InitiateCheckout`, and purchase/lead, verified
  via `mads_list_pixels`, retargeting pool size depends on this signal existing.
- A rough size for each retargeting pool (site visitors over 30/60/90 days, engagers, cart abandoners),
  since pool size caps how much BOF budget is justified.
- `mads_list_campaigns` inventory if adding funnel stages to a live account rather than a greenfield build.

## Procedure
1. **Confirm which stages the business actually needs.** HUMAN STEP: not every account needs all three, a lead-gen account may run TOF plus BOF only. Confirm the stage list with the account owner before
   mapping.
2. **Assign one campaign (or campaign group) per stage.** TOF = prospecting (broad, Advantage+ audience,
   or interest/lookalike stacks, cold, no inbound exclusions needed). MOF = engagers and site visitors who
   haven't converted. BOF = retargeting (AddToCart/InitiateCheckout non-purchasers, product viewers, cart
   abandoners).
3. **Pick the objective per stage.** TOF typically `OUTCOME_AWARENESS` or `OUTCOME_TRAFFIC`; MOF typically
   `OUTCOME_ENGAGEMENT` or `OUTCOME_TRAFFIC`; BOF typically `OUTCOME_SALES` or `OUTCOME_LEADS` (the deepest
   event, since this audience is closest to converting). Run `select-campaign-objective` per stage if not
   already decided.
4. **Set exclusions between every stage.** TOF excludes existing customers and, once it exists, the
   BOF pool. MOF excludes the BOF pool and purchasers. BOF excludes recent purchasers via a
   purchase-event-based custom audience. This is what stops the same user appearing in three campaigns.
5. **Size the retargeting pool before setting BOF budget.** Pull the expected pool size (site
   visitors/engagers/cart abandoners over the relevant lookback window). IF the pool is only a few
   thousand people, THEN cap BOF's daily budget well below what would push frequency past a sane range, more budget against a small pool inflates frequency, not results.
6. **Split budget prospecting-first.** Default: roughly two-thirds or more of total budget to TOF, since
   it is the growth engine and the only stage with real headroom; MOF and BOF get the remainder, sized to
   their pool ceilings rather than to ambition. Express every figure in the currency's minor unit.
7. **Draw the map and get sign-off.** Stage → campaign → objective → audience source → exclusions-in →
   budget split, before any `mads_create_campaign`. Hand ad-set/creative sizing within each stage to
   `design-account-structure` and budget placement within each stage to `choose-cbo-vs-abo`.
8. **Build PAUSED, stage by stage.** Launch prospecting first, since it needs no downstream data; add
   MOF/BOF once enough pixel signal has accumulated to size their pools for real.

## Decision rules
- **TOF audience:** broad or Advantage+ audience, or interest stacks and lookalikes seeded from a
  purchase custom audience, always excludes existing customers and, once it exists, the BOF pool.
- **MOF audience:** engagers (video views, page/post/profile engagement) and site visitors who haven't
  hit a deep event, excludes the BOF pool and purchasers.
- **BOF audience:** AddToCart/InitiateCheckout non-purchasers, product viewers, cart abandoners, typically
  a 7-30 day window, excludes recent purchasers.
- **Budget split default:** prospecting majority (~65%+) when the goal is growth; shift weight toward BOF
  only when the pool is large and demonstrably underserved, or the business is deliberately in a
  harvest/efficiency phase rather than growth.
- **BOF budget ceiling:** IF the retargeting pool is under a few thousand people, THEN cap BOF budget to
  what keeps frequency sane, a bigger budget against a small pool buys frequency, not sales.
- **No stage without an exclusion.** IF a stage has no exclusion of the stage(s) below it, THEN the map is
  incomplete, this is the single most common funnel-structure defect.
- **Done means:** every planned stage has an objective, an audience source, an exclusion list referencing
  every stage it must not overlap, and a budget figure sized to either growth priority (TOF) or pool
  ceiling (MOF/BOF).

## Common failure modes
- **No exclusions between stages.** The same warm user gets served TOF, MOF, and BOF ads at once, wasted frequency and confused attribution.
- **BOF overfunded relative to pool size.** A few-thousand-person pool with a large daily budget produces
  high frequency and rising CPMs with no volume gain to show for it.
- **Prospecting starved to feed retargeting.** Retargeting looks efficient because it targets people
  already convinced, cutting TOF to fund it starves the pipeline that fills the retargeting pool at all.
- **Building BOF before pixel signal exists.** Without `ViewContent`/`AddToCart`/`InitiateCheckout`
  history the retargeting pools are empty or tiny; sequence TOF first and let signal accumulate.
- **One campaign holding all three stages as ad sets with no exclusions configured**, looks like a
  funnel but behaves like one large overlapping audience.

## Related skills
- Run after: `select-campaign-objective` (per stage).
- Feeds into: `design-account-structure` (ad-set/creative sizing within each stage), `choose-cbo-vs-abo`
  (budget placement within each stage).
- Related: `build-custom-audiences`, `design-retargeting-ladder` (build the audiences this map
  references), `set-exclusions-and-suppression` (implements the exclusion lists this skill specifies).
