Playbooks · Ads Plan & SOP

Ads Plan & SOP

How CMG runs paid social for every agency client: one account structure, one eight-step loop, one set of pass / fail rules. Variation by client is expected; variation by pod is a smell.

The loop at a glance

Every ad runs the same loop, from the goal to the pass / fail call. Winners scale, near-misses get one new hook, losers die with a one-line reason — and the loop restarts.

1 · Goal & KPI 2 · Brief 3 · Produce assets 4 · Build Ads 5 · Client approves ads preview 6 · Launch Ads 7 · Review Ad Performance no call before 7 days & 3× target CPA spent PASS CLOSE FAIL SCALE AD to scaling ad set · +15–20% / 3 days ITERATE AD CREATIVE new hook only · same body · v+1 KILL AD pause · log why · retire angle after 2 fails re-enters at Produce as v+1 learning feeds the next brief

The 8-step process

The 20% of process that drives 80% of results. Each step has one owner and one exit criterion — if the exit isn’t met, the ad doesn’t move forward.

1
Goal, objective, KPICMG + Client

Every ad starts with a one-line reason to exist: the business outcome, the ad set it runs in (Prospect / Retarget / Scale & test), and the one metric that decides pass or fail, with its target. Set the test budget (3× target CPA) and the earliest decision date — never before 7 days. If we can’t name the number it has to move, it doesn’t get briefed.

Exit: one-line goal, ad set, KPI with target, test budget.

2
BriefCMG Creative

One angle, one hook idea, one product set — written so a designer or editor can start without a call. Check products against live inventory so we never advertise what the client can’t ship. Name the ad now using the naming convention below; the name follows it from brief to file to platform to report.

Exit: a complete brief with the ad name assigned.

3
Produce assetsCMG Creative

Build the deliverables against the brief: static 1080×1080 master plus 4:5 and 9:16 crops, video 6–30s with the hook in the first 3 seconds and captions burned in, carousel 3–5 cards, copy doc with landing URL + UTMs. One variable per version so the review can learn something. Export with the ad name as the filename.

Exit: final files named, QA’d, and attached to the brief.

4
Build AdsMedia Buyer

Build the ad in the right campaign and ad set with the copy, CTA, and URL — and leave it paused. Settings check: text enhancements off, catalog items off for creative ads, placements per plan, pixel and the correct Page / IG account selected. Confirm back with the ad ID and preview link.

Exit: ad built and paused, with ad ID + preview link.

5
Client approves ads previewClient

The client sees the ad exactly as it will run, in every placement, before anything spends. They check product and price accuracy, brand voice, the landing page, and anything legal. Changes requested go back to Produce as the next version; approval is recorded in writing.

Exit: written approval, or a change list and a new version.

6
Launch AdsMedia Buyer

Set the ad live at the planned budget and date. Make edits at midnight local so the day’s data stays clean. Put the review date on the calendar: go-live + 7 days.

Exit: ad live, review date on the calendar.

7
Review Ad PerformanceCMG

One read per ad at the review date, scored against the brief’s KPI. Never score before 7 days and 3× the target CPA is spent — early strong numbers are usually noise. Leading signals: hook rate > 25%, hold rate > 25%, CTR > 1.5%. Deciding metric: CPA at or below target for 3+ days.

Exit: the numbers written down and a call: scale, iterate, or kill.

8
Scale Ad, Iterate Ad Creative, or Kill AdCMG + Media Buyer

Winners duplicate into the scaling ad set (keep existing reactions, comments, and shares) and budget climbs 15–20% every 3 days — never more than 20% in one edit. Near-misses get a new hook only, body unchanged, and re-enter at Produce as v+1. Losers pause with a one-line reason; an angle that fails twice is retired. The next brief starts at step 1 with what we learned.

Exit: a winner scaling, a v+1 back in testing, or a kill with a reason. The loop restarts.

Pass / fail calls

The same three calls for every client. The floor is the floor: never graduate or kill before 7 days and 3× the target CPA is spent.

CallWhenAction
Scale Ad 7+ days and 3× target CPA spent; hook rate > 25% and hold > 25% (or CTR > 1.5% on static); CPA at or below target for 3+ days; frequency stable Duplicate into the scaling ad set, keep social proof. Raise that ad set’s budget 15–20% every 3 days, edits at midnight local.
Iterate Ad Creative Between 1× and 2× target CPA; CTR acceptable but hook or hold under 25% Change the hook only (first 3 seconds), keep the body identical. One variable. Re-enter as v+1 and re-review after 7 days.
Kill Ad 3× target CPA spent; hook < 25% and CTR < 1.5% Pause the ad, log one line on why. Retire the angle if it has failed twice.
Kill criteria

Kill an ad if it spends 2× target CPA without a sale, or if hook rate falls below 15% after 2K impressions. Discipline beats hope.

The 3-ad-set framework

Every CMG client account on Meta runs on three foundational ad sets. They have different jobs, different KPIs, and different success criteria. Don’t blur them.

Ad set 01
Prospect
Find net-new buyers

Audience

  • Broad · minimal exclusions
  • Lookalikes off purchasers (1–3%)
  • Interest stack if seed audience <100K

Creative

  • UGC-style hooks
  • Problem → product framing
  • 5–10 variants in rotation

Budget

  • 50–60% of total spend
  • CBO with min budgets to protect learning

KPIs

  • New-customer ROAS
  • CPA vs LTV ceiling
  • Spend velocity
Ad set 02
Retarget
Close warm traffic

Audience

  • Site visitors 30d
  • Engaged shoppers 90d
  • Cart abandoners (exclude purchasers 30d)

Creative

  • Social proof · reviews
  • Limited-time offer angle
  • Founder voice / brand POV

Budget

  • 15–25% of total spend
  • Frequency cap 3 per 7d

KPIs

  • Blended ROAS
  • Frequency / fatigue signals
  • Cart recovery rate
Ad set 03
Scale & test
Find the next winner

Audience

  • Broad · same as Prospect
  • Per-creative ad sets when testing

Creative

  • New concepts every 2 weeks
  • Partnership / Spark Ads from creators
  • 3–5 hook variants per concept

Budget

  • 20–30% of total spend
  • Promote winners to Prospect within 7–14d

KPIs

  • Hook-rate (3s view-through)
  • CTR · CVR
  • Cost per result · promotion velocity

Budget split · $30K/month example

Default split for an account spending ~$30K/month. Adjust by season, runway, and what’s working.

Ad set% of spendMonthlyDailyTarget KPI
01 · Prospect55%$16,500$550New-customer ROAS > 2.0
02 · Retarget20%$6,000$200Blended ROAS > 4.0
03 · Scale & test25%$7,500$250Hook-rate > 25% · new winner / month
Total100%$30,000$1,000Blended ROAS > 2.5

Creative testing matrix

Every test should answer one question. Don’t change two variables at once.

VariableTest cadenceHow we test
Hook (first 3s)Every cycle3–5 hook variants over same body. Kill at 1K imps if hook-rate < benchmark.
Format (static / UGC / motion)Every 2 weeksSame offer, three formats. Hold audience constant.
Offer / promotionQuarterlyA vs B offer at parity creative. 7-day flight.
AudienceMonthlyOne new audience at a time. Hold creative constant.
Landing pageQuarterlyCoordinate with AI Developer for split test infrastructure.

Ad naming convention

Naming is non-negotiable. Bad naming makes reporting impossible and audits painful. One name follows the ad from the brief to the file to the platform to the weekly report.

CMG X [BRAND]_[SET]_[CONCEPT]_[FORMAT]_[HOOK]_[v##]

Example: CMG X VITACLAY_PROSPECT_PROBLEMSOLUTION_UGC_QUICKCOOK_v03

  • CMG X: fixed prefix on every ad — marks CMG-built work in shared ad accounts and makes our ads filterable in reporting.
  • BRAND: client short code, all caps.
  • SET: PROSPECT / RETARGET / SCALE.
  • CONCEPT: the angle (PROBLEMSOLUTION, FOUNDERSTORY, SOCIALPROOF, etc.).
  • FORMAT: UGC / STATIC / MOTION / CAROUSEL.
  • HOOK: short slug for the opener.
  • v##: version — increment on every edit.

Reporting hooks

The ads plan feeds straight into the weekly report — see Reporting & Cadence. Pull these numbers every Friday.

  • Spend by ad set (Prospect / Retarget / Scale)
  • Top 3 winning creatives by ROAS, with thumbnails
  • Top 3 losing creatives killed this week
  • Hook-rate distribution across the test ad set
  • Net-new customers vs returning customers
  • Frequency / fatigue check on Retarget
Default template. Premium engagements add a fourth set for brand / awareness; B2B engagements swap Retarget for an LTV-extension set. Variations should be documented in the client’s Notion page.