Campaign Builder
Assemble finished creative and intel into a launch-ready campaign, and publish it through the firm's connected Meta account. This is the last mile: research → creative → live campaign.
What you need first
- Creative — exported ads + copy from
ad-creative-studio.
- Market intel — from Ranql:
market_size, ads_google_spend_history / competitor spend signals, ads_strategy_document for budget/headline guidance.
- The firm's offer, goal, and budget reality — ask if unknown (monthly budget, target: leads vs calls vs awareness).
- Meta access — the firm connected their Meta (Facebook Ads + Pages + Instagram) via their own Meta app + system-user token (Graph API). Confirm it's connected before promising a publish.
Step 1 — Campaign architecture
Decide and document (see references/campaign-plan-template.md):
- Objective — Leads (most PI/family/criminal), Traffic, or Awareness. Lead-gen or conversions for intake.
- Audience — geo (their service radius from the profile), age/gender skew by practice area, interests/behaviors. Plan a retargeting audience (site visitors, video viewers) separately — it's the cheapest conversion.
- Budget & structure — daily budget from the firm's monthly number; 1 campaign → 2–3 ad sets (e.g. cold-prospecting, retargeting) → 3–5 creative variations each for testing. Ground the number in market spend intel, not guesses.
- Creative-to-adset mapping — which variations test against which audience.
- Tracking — Meta Pixel / conversions API for lead events; UTM tags on links so Ranql and analytics can attribute.
Step 2 — Copy assembly
For each ad: primary text, headline, description, CTA button, and the destination URL (dedicated landing page > homepage). Pull proven language from the organic-content-analyzer hook/CTA banks and the teardown. Keep within Meta's text limits and the compliance rules in ad-creative-studio/references/legal-ad-patterns.md.
Step 3 — Publish to Meta (with a human checkpoint)
Publishing spends real money — always confirm the full plan with the partner before going live. Then, via the connected Meta tools (Graph API / Meta Ads tools):
- Upload the creative (images/video) to the ad account.
- Create the campaign (objective), ad sets (audience, budget, schedule, placements), and ads (creative + copy + CTA + URL).
- Launch PAUSED first. Review everything in Ads Manager, then have the firm flip it live. Never auto-activate a spend without explicit sign-off.
- Return the campaign/ad-set/ad IDs and a preview link.
If the Meta tools aren't connected or a step is blocked, produce the complete plan + assets and give the firm click-by-click Ads Manager instructions instead — don't fake a launch.
Step 4 — Close the loop with Ranql
- After a week live, re-run
competitor-ad-teardown on the firm's own page to confirm ads are showing, and intelligence_delta to track movement.
- Feed performance back: kill losers, scale the winner, and spin the next creative round (
ad-creative-studio).
Guardrails
- Confirm budget and audience before publish — twice if the number is large.
- Launch paused; human activates.
- Compliance-check every claim (attorney advertising).
- Never publish creative that failed the
ad-creative-studio quality bar.
1---2name: campaign-builder3description: Use when the user wants to assemble and launch a paid campaign — turn creative + intel into a real Meta (Facebook/Instagram) or Google campaign with objective, audience, budget, and copy, then publish it. Triggers include "launch a campaign", "set up these ads", "build the campaign", "upload to Facebook/Meta", "put these ads live", or planning the media buy. Uses Ranql for market/budget intel and the connected Meta ad tools to publish. Requires ad-creative-studio output.4---56# Campaign Builder78Assemble finished creative and intel into a launch-ready campaign, and publish it through the firm's connected Meta account. This is the last mile: research → creative → **live campaign**.910## What you need first11- **Creative** — exported ads + copy from `ad-creative-studio`.12- **Market intel** — from Ranql: `market_size`, `ads_google_spend_history` / competitor spend signals, `ads_strategy_document` for budget/headline guidance.13- **The firm's offer, goal, and budget reality** — ask if unknown (monthly budget, target: leads vs calls vs awareness).14- **Meta access** — the firm connected their Meta (Facebook Ads + Pages + Instagram) via their own Meta app + system-user token (Graph API). Confirm it's connected before promising a publish.1516## Step 1 — Campaign architecture1718Decide and document (see `references/campaign-plan-template.md`):19- **Objective** — Leads (most PI/family/criminal), Traffic, or Awareness. Lead-gen or conversions for intake.20- **Audience** — geo (their service radius from the profile), age/gender skew by practice area, interests/behaviors. Plan a **retargeting** audience (site visitors, video viewers) separately — it's the cheapest conversion.21- **Budget & structure** — daily budget from the firm's monthly number; 1 campaign → 2–3 ad sets (e.g. cold-prospecting, retargeting) → 3–5 creative variations each for testing. Ground the number in market spend intel, not guesses.22- **Creative-to-adset mapping** — which variations test against which audience.23- **Tracking** — Meta Pixel / conversions API for lead events; UTM tags on links so Ranql and analytics can attribute.2425## Step 2 — Copy assembly2627For each ad: primary text, headline, description, CTA button, and the destination URL (dedicated landing page > homepage). Pull proven language from the `organic-content-analyzer` hook/CTA banks and the teardown. Keep within Meta's text limits and the compliance rules in `ad-creative-studio/references/legal-ad-patterns.md`.2829## Step 3 — Publish to Meta (with a human checkpoint)3031Publishing spends real money — **always confirm the full plan with the partner before going live.** Then, via the connected Meta tools (Graph API / Meta Ads tools):321. Upload the creative (images/video) to the ad account.332. Create the campaign (objective), ad sets (audience, budget, schedule, placements), and ads (creative + copy + CTA + URL).343. **Launch PAUSED first.** Review everything in Ads Manager, then have the firm flip it live. Never auto-activate a spend without explicit sign-off.354. Return the campaign/ad-set/ad IDs and a preview link.3637If the Meta tools aren't connected or a step is blocked, produce the complete plan + assets and give the firm click-by-click Ads Manager instructions instead — don't fake a launch.3839## Step 4 — Close the loop with Ranql40- After a week live, re-run `competitor-ad-teardown` on the firm's own page to confirm ads are showing, and `intelligence_delta` to track movement.41- Feed performance back: kill losers, scale the winner, and spin the next creative round (`ad-creative-studio`).4243## Guardrails44- Confirm budget and audience before publish — twice if the number is large.45- Launch paused; human activates.46- Compliance-check every claim (attorney advertising).47- Never publish creative that failed the `ad-creative-studio` quality bar.