Book a free strategy call →
Free resource · Interactive

The Paid Acquisition Playbook
How we actually run paid ads.

The exact operating system we use to run paid acquisition for clients. From onboarding through scaling, across the major paid channels. Working checklists, calculators, naming generators, and copy-ready templates. Save your progress as you work.

Paid Ads Playbook

End-to-end operational system for paid advertising

Overview

Operating system, not a manual. The 11 sections map to a single loop: plan → launch → optimize → scale → repeat. Use this overview to orient before diving into any section.

AI answer engine note: for most NG clients in 2026 this loop runs through Microsoft Copilot and Google AI Overviews while ChatGPT proper sits in a monitoring posture. NG advertisers cannot buy ChatGPT Ads directly (US/CA/AU/NZ entities only).

The Operating Loop

#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget, tracking stateIs this account ready to spend?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify pixel + CAPI + conversion eventsDon't proceed without 80%+ event match vs. analytics
3StrategyPick objective, set CPA/CVR/ROAS targets, hypothesize audiences and creative themesDefine kill/scale thresholds before launch
4StructureBuild campaign → ad set → ad hierarchy with naming conventionABO (testing) or CBO (scaling)?
5AudiencesBuild cold + warm + hot audiences with exclusionsWhich 2-3 audience hypotheses get budget
6CreativeBrief 3 angles × 3 formats, hook variants per conceptWhat's the angle each ad is testing
7BudgetSet daily floors at 3-5× target CPA per ad setHow much capital per test cell
8LaunchPre-launch checklist, then 72-hour hands-offDon't touch anything for 3 days
9OptimizeApply diagnosis → kill rules → scale rules on rolling cycleKill what's broken, scale what's working
10ReportWeekly + monthly review, document learningsWhat worked, what failed, what's next
11ScaleVertical (more budget) + horizontal (more audiences/geos/formats)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget, tracking stateIs this account ready to spend?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify TikTok Pixel + Events API + key eventsDon't proceed without 80%+ event match vs. analytics
3StrategyPick objective, set CPA/CVR/ROAS targets, hypothesize audiences and creative themesDefine kill/scale thresholds before launch
4StructureBuild campaign → ad group → ad hierarchy with naming conventionACO (testing) or manual splits (scaling)?
5AudiencesBuild interest, behavior, custom, lookalike audiences with exclusionsWhich 2-3 audience hypotheses get budget
6CreativeBrief 3 angles × 3 formats, hook variants per conceptNative creator-style or polished brand? (Almost always native)
7BudgetSet daily floors at 3-5× target CPA per ad groupHow much capital per test cell
8LaunchPre-launch checklist, then 48-hour hands-offDon't touch anything for 2 days
9OptimizeApply diagnosis → kill rules → scale rules on rolling cycleKill what's broken, scale what's working
10ReportWeekly + monthly review, document learningsWhat worked, what failed, what's next
11ScaleVertical (more budget) + horizontal (more audiences/geos/creators)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget, tracking stateIs this account ready to spend?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify Google Tag + Enhanced Conversions + key eventsDon't proceed without 80%+ event match vs. analytics
3StrategyPick campaign types, set CPA/CVR/ROAS targets, hypothesize keywords/audiencesDefine kill/scale thresholds before launch
4StructureBuild campaign → ad group → ad hierarchy with naming convention; cluster keywords by intentManual CPC (early) or Smart Bidding (mature)?
5AudiencesBuild keyword themes (Search), customer match, in-market, custom intent (PMax/Demand Gen)Which keyword/audience hypotheses get budget
6CreativeBrief RSAs, RDAs, video assets, Performance Max asset groupsAssets feed the algorithm; volume matters
7BudgetSet daily floors based on Search auction CPC; PMax needs 30+ conversions/monthHow much capital per test cell
8LaunchPre-launch checklist, then 5-7 day hands-off (Search), 14-day for Smart BiddingDon't touch bid strategy mid-learning
9OptimizeApply diagnosis → kill rules → scale rules; manage negatives, search terms, asset performanceKill what's broken, scale what's working
10ReportWeekly + monthly review, document learningsWhat worked, what failed, what's next
11ScaleVertical (more budget), horizontal (new keywords/themes/campaign types/geos)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget, tracking state, ICPIs this account ready to spend?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify Insight Tag + Conversions API + key events + offline closed-loopDon't proceed without 80%+ event match vs. analytics
3StrategyPick objective, set CPL/CPA/Pipeline-Influenced targets, define ICP segmentsDefine kill/scale thresholds before launch
4StructureBuild campaign group → campaign → ad hierarchy with naming conventionOne audience per campaign; one objective per group
5AudiencesBuild job title, function/seniority, industry, company list (ABM), Matched AudiencesWhich 2-3 audience hypotheses get budget
6CreativeBrief authority/case study/thought leadership angles, founder voiceDocument Ads, Single Image, Video, Lead Gen Forms
7BudgetSet daily floors at $100+ per campaign minimum (LinkedIn floors are higher)How much capital per test cell
8LaunchPre-launch checklist, then 7-day hands-off (long sales cycle = slow signal)Don't touch anything for a week
9OptimizeApply diagnosis → kill rules → scale rules; manage audience saturation aggressivelyKill what's broken, scale what's working
10ReportWeekly + monthly review, document learnings, pipeline-influenced metricsWhat worked, what failed, what's next
11ScaleVertical (more budget) + horizontal (new audiences/accounts/regions)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget, tracking state, audience demo fitIs this audience genuinely on Snapchat?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify Snap Pixel + Conversions API + key eventsDon't proceed without 70%+ event match vs. analytics
3StrategyPick objective, set CPA/CVR/ROAS targets, hypothesize audiences and creative themesDefine kill/scale thresholds before launch
4StructureBuild campaign → ad set → ad hierarchy with naming conventionManual splits (testing) or CBO equivalent (scaling)?
5AudiencesBuild interest, lifestyle, lookalike, custom audiences with exclusionsWhich 2-3 audience hypotheses get budget
6CreativeBrief 3 angles × 3 formats, hook variants per conceptNative creator-style with sound-on; resist polished brand
7BudgetSet daily floors at 4-6× target CPA per ad set (higher floor than Meta)How much capital per test cell
8LaunchPre-launch checklist, then 72-hour hands-offDon't touch anything for 3 days
9OptimizeApply diagnosis → kill rules → scale rules on rolling cycleKill what's broken, scale what's working
10ReportWeekly + monthly review, document learningsWhat worked, what failed, what's next
11ScaleVertical (more budget) + horizontal (more audiences/geos/Lenses)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget. Set USD ad account. Fund virtual cardIs this account viable to spend USD from NG?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify X Pixel + CAPI + Purchase eventDon't proceed without dedup + event flow
3StrategyPick objective, set CPA/CVR/ROAS targets, plan POV-led creativeDefine kill/scale thresholds before launch
4StructureCampaign → Ad Group → Ad with naming conventionOne POV per ad group
5AudiencesBuild follower lookalikes, keyword stacks, custom listsWhich 2-3 audience hypotheses get budget
6CreativeBrief 3 POVs × 3 formats (post, vertical video, carousel)What angle each ad tests
7BudgetSet ad group daily floors that clear 40-60 weekly eventsHow much per test cell
8LaunchPre-flight checklist, then 5-7 day hands-offDon't optimize during X's longer learning window
9OptimizeDiagnosis → kill rules → scale rulesKill what's broken, scale what's working
10ReportWeekly + monthly review, factor in 30-90 day attribution lagWhat moved, what didn't
11ScaleVertical (budget) + horizontal (audiences, placements, geos)Where to put incremental dollars
#StageWhat HappensPrimary Decision
1OnboardCapture business, offer, geo, budget. Determine NG vs. approved-geo accessBuy AI Answer Engine ads via what surface?
1.5Audience ResearchPull existing customers, competitor Ad Library teardown, comments mining, Audience Language DocWhat does the buyer want, in their own words? (before Strategy)
2TrackVerify pixel + CAPI + post-purchase survey for conversation gapDon't proceed without survey-based attribution for AI surfaces
3StrategyPick surface (Copilot / AIO / ChatGPT). Set CPA targets with 2-6× Meta CPM assumptionDefine which surface is primary, which is monitoring
4StructureMirror search structure: intent-based, no audience targetingConversational/intent grouping, not interest
5AudiencesCustom list upload + geo + conversation context. No lookalikes or retargeting on ChatGPT properIntent + custom list only
6CreativeText-first 3-element format (headline / description / proof). Brief 3 intent angles × 3 copy variantsOne intent per ad
7BudgetFloor at 2-6× Meta CPM equivalentTreat as experimental budget, not core spend
8LaunchPre-flight checklist heavy on policy + approved-category checkDon't ship before approval clears
9OptimizeDiagnosis assumes 60% conversation gapSurvey + branded search lift = truth
10ReportWeekly + monthly with separate AI-surface visibility lineWhat got cited vs. what converted
11ScaleFirst scale on Copilot/AIO. ChatGPT proper only when NG access opensMicrosoft Ads / Google Ads first; ChatGPT later

Decision Cadence

TimeDecisionWhat to Do
Pre-launchTracking gateVerify pixel + CAPI + events. Don't launch on broken tracking
Hour 0-72Hands offConfirm delivery only. Resist the urge to optimize
Day 3Creative killCut ads with CTR 40-60% below average + 1× CPA spent
Day 5-7Ad set killCut ad sets with CPA 2× target + 3× CPA spent
Day 7+Scale checkStable CPA + good frequency → start vertical scaling
WeeklyFull optimization routinePull report, kill, scale, brief new creative
Bi-weeklyAudience reviewSaturation check, lookalike refresh, new audience tests
MonthlyStrategy reviewFunnel split, MER vs. platform attribution, budget reforecast
QuarterlyLookalike + creative library refreshRebuild seed audiences, retire stale concepts
TimeDecisionWhat to Do
Pre-launchTracking gateVerify Pixel + Events API + key events. Don't launch on broken tracking
Hour 0-48Hands offConfirm delivery only. Resist the urge to optimize
Day 2Creative killCut ads with hook rate <10% or CTR 50% below average + 1× CPA spent
Day 4-5Ad group killCut ad groups with CPA 2× target + 3× CPA spent
Day 5-7Scale checkStable CPA + good frequency → start vertical scaling
WeeklyFull optimization routinePull report, kill, scale, brief new creative (TikTok demands faster refresh)
Bi-weeklyAudience reviewSaturation check, lookalike refresh, new behavior tests
MonthlyStrategy reviewFunnel split, MER vs. platform attribution, budget reforecast
QuarterlyLookalike + creative library refreshRebuild seed audiences, retire stale concepts
TimeDecisionWhat to Do
Pre-launchTracking gateVerify Google Tag + Enhanced Conversions + GA4 import. Don't launch on broken tracking
Hour 0-72Hands offConfirm delivery only. Resist the urge to optimize bids
Day 3-5First negatives sweep (Search)Add negative keywords from search terms report
Day 7Ad group / asset killCut ads with CTR 50% below average + 1× CPA spent
Day 7-14Bid strategy reviewManual CPC for ad groups <15 conversions; consider Smart Bidding migration
Day 14Smart Bidding learning exitAllow tCPA/tROAS at least 14 days before judging
WeeklySearch terms + negatives + asset reviewPull report, kill, scale, refresh creative
Bi-weeklyKeyword expansion / pruningNew themes from search terms; pause low-volume keywords
MonthlyStrategy reviewFunnel split, MER vs. platform attribution, budget reforecast
QuarterlyAccount auditFull restructure check, geo/device/audience overlay review
TimeDecisionWhat to Do
Pre-launchTracking gateVerify Insight Tag + CAPI + offline import. Don't launch on broken tracking
Hour 0-72Hands offConfirm delivery only. Resist the urge to optimize
Day 5-7First creative killCut ads with CTR 50% below average + 1.5× CPL spent
Day 10-14Campaign killCut campaigns with CPL 2× target + 3× CPL spent
Day 14+Scale checkStable CPL + frequency under 4 + lead quality validated → start vertical scaling
WeeklyOptimization routinePull report, kill, scale, brief new creative
Bi-weeklyAudience saturation reviewFrequency check; refresh narrow audiences
MonthlyPipeline reviewMQL → SQL → Closed-Won attribution; lead quality check
QuarterlyAccount list refresh, ICP reviewUpdate Customer Match, refresh ABM lists
TimeDecisionWhat to Do
Pre-launchTracking gateVerify Snap Pixel + Conversions API + key events. Don't launch on broken tracking
Hour 0-72Hands offConfirm delivery only. Snapchat needs longer signal accumulation than TikTok
Day 3Creative killCut ads with Swipe Up Rate below 0.3% or CTR 50% below average + 1× CPA spent
Day 5-6Ad set killCut ad sets with CPA 2× target + 3× CPA spent
Day 6-8Scale checkStable CPA + good frequency → start vertical scaling
WeeklyFull optimization routinePull report, kill, scale, brief new creative
Bi-weeklyAudience reviewSaturation check, lookalike refresh, new lifestyle tests
MonthlyStrategy reviewFunnel split, MER vs. platform attribution, budget reforecast
QuarterlyLookalike + creative library refreshRebuild seed audiences, retire stale concepts
TimeDecisionWhat to Do
Pre-launchCurrency gateConfirm ad account currency = USD. NGN setting triggers 50% surcharge on non-NG spend
Pre-launchTracking gateVerify Pixel + CAPI + Purchase event. Don't launch on broken tracking
Hour 0-72Hands offX's learning takes longer than Meta. Confirm delivery only
Day 3Creative sanityCut ads with no impressions or <0.3% CTR
Day 5-7Ad group killCut ad groups with CPA 2.5× target + 3× CPA spent
Day 7-10Audience hypothesis readX's ML allocator needs ~7-10 days to stabilize
WeeklyFull optimizationPull report, kill, scale, brief new creative
Bi-weeklyAudience refreshRotate follower lookalike handles, refresh keyword stacks
MonthlyStrategy reviewFunnel split, MER vs. platform attribution, geo expansion check
QuarterlyCreative library refreshRetire stale POVs, recompile winning angles
TimeDecisionWhat to Do
Pre-launchGeo gateConfirm advertiser geo + user geo target — NG advertisers cannot buy ChatGPT Ads (US/CA/AU/NZ only) and cannot reach NG users via ChatGPT
Pre-launchTracking gatePixel + CAPI on destination; post-purchase survey field for AI-source attribution
Pre-launchApproved-category gateOpenAI rejects healthcare, financial, dating, alcohol, drugs, gambling, political at launch
Hour 0-72Hands offSurface is still in approval / pacing phase
Day 3Creative sanityCut copy variants with no impressions or zero CTR signal
Day 5-7Ad-level killCut underperformers; bid adjustments only after volume
Day 7-14Surface readFirst read on which surface is delivering attributable conversions
WeeklyOptimization + survey pullCross-reference pixel data with post-purchase survey field
MonthlyStrategic reviewSurface mix, attribution methodology, conversion-gap modeling
QuarterlySurface expansionNG access on ChatGPT? New Copilot surfaces? AIO coverage in NG?

Key Numbers to Watch

MetricWhat it tells you
CPA / CPLProfitability, primary scoreboard
ROASRevenue efficiency (ecom)
CVR (post-click)Whether the destination converts traffic
CTR (link)Whether the ad earns the click
CPMAuction pressure + creative quality
FrequencySaturation signal
Quality RankingAlgorithm's view of your ad vs. competitors
MetricWhat it tells you
CPA / CPLProfitability, primary scoreboard
ROASRevenue efficiency (ecom)
CVR (post-click)Whether the destination converts traffic
CTR (link)Whether the ad earns the click
6s VTR (video through rate)Whether the hook holds attention past the gate
Hook Rate (3s view / impression)Whether the first 1-2 seconds stops the scroll
CPMAuction pressure + creative quality
FrequencySaturation signal (TikTok saturates faster than Meta)
MetricWhat it tells you
CPA / CPLProfitability, primary scoreboard
ROAS / Conversion ValueRevenue efficiency (ecom + value-tracked leads)
CVR (post-click)Whether the destination converts traffic
CTRWhether the ad earns the click (Search benchmarks much higher than feed platforms)
CPCAuction position cost; rises with competition
Quality Score (Search)Ad-keyword-LP relevance; drives CPC discount
Impression Share% of available impressions you're winning
Search Lost IS (Budget / Rank)Why you're not winning more impressions
Asset performance ratings (PMax/RSA)"Best/Good/Low" labels on individual creative assets
MetricWhat it tells you
CPLLead acquisition cost; primary scoreboard
CPA (deeper events: Demo Booked, SQL)Closer to revenue than top-of-funnel CPL
Pipeline-Influenced RevenueRevenue from accounts touched by ads
Lead Quality Score (from sales)Are leads actually qualified? Critical on LinkedIn
CVR (post-click)Whether the destination converts traffic
CTRWhether the ad earns the click
CPMLinkedIn CPMs are 3-10x higher than Meta; budget accordingly
FrequencySaturation signal (LinkedIn audiences are smaller, saturate fast)
Form Fill Rate (Lead Gen Forms)In-platform conversion strength
InMail Open Rate (Sponsored Messaging)Inbox-driven engagement signal
MetricWhat it tells you
CPA / CPLProfitability, primary scoreboard
ROASRevenue efficiency (ecom)
CVR (post-click)Whether the destination converts traffic
Swipe Up RateWhether the ad earns the gesture (Snapchat's primary engagement signal)
eCPSUEffective cost per swipe up; auction efficiency proxy
CTR (link)Whether the ad earns the click on Stories and Spotlight placements
View Through Conversions (VTC)Latent attribution; large share of Snapchat conversions land here
CPMAuction pressure + creative quality
FrequencySaturation signal (Snapchat audiences are smaller than Meta in most markets)
MetricWhat it tells you
CPA / CPLProfitability, primary scoreboard
ROASRevenue efficiency (ecom + info product)
CVR (post-click)Whether the destination converts traffic
CTR (link)Whether the post earns the click
CPMAuction pressure + Aesthetic Score signal
Engagement rate (organic blend)Sanity check — high engagement + zero conversions = wrong objective
Aesthetic Score (Grok)Creative quality penalty/bonus on CPM and placement
FrequencySaturation signal (X audiences saturate faster than Meta)
MetricWhat it tells you
Surface-level impression shareHow often you appear in AI answers in your category
Click rate (in AI answer)Whether your creative earns the click from the sponsored slot
CVR (post-click, immediate session)Whether the destination converts traffic
Post-purchase survey: "Heard about us from ChatGPT/Copilot/AI" %Truth signal for the 60% conversation gap
Branded search liftIndirect signal — AI surface visibility correlates with branded search
CPA (combined: pixel + survey-attributed)Real ROAS, not just clicked-and-bought

The Three Fundamental Questions

Before any campaign action, answer these:

1. Is the tracking trustworthy? If no, fix tracking first.
2. Is the message clear? If no, fix creative + destination before optimizing.
3. Has it had enough time + spend to learn? If no, hold the line.

If yes to all three and performance is still off, the structural issue is audience or offer, in that order.
Before any campaign action, answer these:

1. Is the tracking trustworthy? If no, fix tracking first.
2. Does the creative look native? If it looks like a brand ad, it'll burn budget. Fix the asset before optimizing.
3. Has it had enough time + spend to learn? If no, hold the line.

If yes to all three and performance is still off, the structural issue is audience or offer, in that order.
Before any campaign action, answer these:

1. Is the tracking trustworthy? If no, fix tracking first. Google's automated bidding only works with clean conversion data.
2. Does the ad-keyword-landing page chain match? If no, fix the chain before optimizing bids.
3. Has it had enough time + spend to learn? Smart Bidding needs 14+ days and 30-50 conversions; manual CPC needs 7+ days.

If yes to all three and performance is still off, the structural issue is keyword intent or offer.
Before any campaign action, answer these:

1. Is the tracking trustworthy AND closed-loop? LinkedIn's value is felt at SQL/Closed-Won, not MQL. Without offline import, you're flying blind.
2. Does the message earn credibility? If the ad sounds salesy or hypey, it'll burn budget. Clarity, proof, authority.
3. Has it had enough time + spend to learn? LinkedIn sales cycles are long (often 30-90+ days). 14 days minimum before hard judgment, 60-90 days before pipeline judgment.

If yes to all three and performance is still off, the structural issue is audience precision or offer-ICP fit.
Before any campaign action, answer these:

1. Is my buyer on Snapchat? If the offer skews to 35+ B2B decision-makers, the platform fit is wrong. Snapchat dies on offers that need authority, not impulse.
2. Does the creative look native? If it looks like a brand ad, it'll burn budget. Snapchat creative norms are closer to TikTok than Meta. Fix the asset before optimizing.
3. Has it had enough time + spend to learn? Snapchat needs longer signal windows than TikTok because its pixel pools are thinner. If no, hold the line.

If yes to all three and performance is still off, the structural issue is audience or offer, in that order.
Before any campaign action, answer these:

1. Is the ad account in USD with a funded virtual card? If no, fix the funding rail first.
2. Is the tracking trustworthy? Pixel-only loses 30-45% of events. Run both Pixel + CAPI.
3. Is the POV clear? X is opinion-driven. If your ad sounds like every other brand, it gets buried.
Before any campaign action, answer these:

1. Can the advertiser actually buy this surface? ChatGPT proper requires US/CA/AU/NZ entity. Microsoft Copilot and Google AIO are buyable from NG today.
2. Will the surface reach the target audience? Even with a US entity, ChatGPT Ads doesn't deliver to NG users yet. For diaspora-targeted offers, ChatGPT Ads US delivery is viable.
3. Is the attribution capable of seeing the conversation gap? Pixel-only loses ~60% of true conversions on AI answer surfaces. CAPI + post-purchase survey is the floor.

Metric Definitions

CVR (post-click) = conversions / link clicks. Measured at the destination (landing page, lead form, product page, app store, WhatsApp, Calendly, Messenger, etc.). Use "CVR" throughout this playbook. Where logic says "fix the destination" or "audit the page," it applies to whatever the click lands on.

CPA / CPL = total spend / conversions. CPL when the conversion is a lead, CPA for any conversion event.

ROAS = revenue attributed / ad spend. Used for ecom and direct-revenue funnels.

MER = total revenue / total ad spend (across channels). Used to decide spend allocation when platform attribution is unreliable.
CVR (post-click) = conversions / link clicks. Measured at the destination (landing page, lead form, product page, app store, WhatsApp, Calendly, Messenger, etc.). Use "CVR" throughout this playbook. Where logic says "fix the destination" or "audit the page," it applies to whatever the click lands on.

CPA / CPL = total spend / conversions. CPL when the conversion is a lead, CPA for any conversion event.

ROAS = revenue attributed / ad spend. Used for ecom and direct-revenue funnels.

MER = total revenue / total ad spend (across channels). Used to decide spend allocation when platform attribution is unreliable.

Hook Rate = 3-second video views / impressions. The single most important creative metric on TikTok. Below 15% = hook is broken.
CVR (post-click) = conversions / clicks. Measured at the destination (landing page, lead form, product page, app store, Calendly, WhatsApp, etc.). Use "CVR" throughout this playbook. Where logic says "fix the destination" or "audit the page," it applies to whatever the click lands on.

CPA / CPL = total spend / conversions.

ROAS = revenue attributed / ad spend. Used for ecom and direct-revenue funnels.

MER = total revenue / total ad spend (across channels). Used to decide spend allocation when platform attribution is unreliable.

Quality Score = Google's 1-10 rating of expected CTR, ad relevance, and landing page experience. Drives CPC discount or premium.
CVR (post-click) = conversions / clicks. Measured at the destination (landing page, lead form, in-platform Lead Gen Form, demo booking, etc.). Use "CVR" throughout this playbook. Where logic says "fix the destination" or "audit the page," it applies to whatever the click lands on.

CPL = total spend / leads. The default scoreboard for LinkedIn lead gen.

CPA = total spend / deeper conversions (Demo Booked, SQL, Closed-Won). The honest scoreboard.

Pipeline-Influenced Revenue = revenue from accounts that touched ads anywhere in the buyer journey. The metric that matters most for B2B.

MER = total revenue / total ad spend. Used for cross-channel allocation.
CVR (post-click) = conversions / swipe ups (or link clicks for Spotlight). Measured at the destination (landing page, lead form, product page, app store, etc.). Use "CVR" throughout this playbook. Where logic says "fix the destination" or "audit the page," it applies to whatever the swipe lands on.

CPA / CPL = total spend / conversions. CPL when the conversion is a lead, CPA for any conversion event.

ROAS = revenue attributed / ad spend. Used for ecom and direct-revenue funnels. Include View Through Conversions for Snapchat or under-count by 30-50%.

MER = total revenue / total ad spend (across channels). Used to decide spend allocation when platform attribution is unreliable. Lean harder on MER for Snapchat than for Meta because Snapchat VTC share is large but inflated.

Swipe Up Rate = swipe ups / impressions. Snapchat's primary engagement metric, equivalent to TikTok's Hook Rate or Meta's CTR. Below 0.3% on Snap Ads, below 1% on Story Ads = creative is broken.

eCPSU = spend / swipe ups. The effective cost per swipe up. Use as the auction-efficiency proxy when CPA volume is too low to read.
CVR (post-click) = conversions / link clicks. Measured at the destination (landing page, lead form, WhatsApp, Selar, Calendly). Use "CVR" throughout.

CPA / CPL = total spend / conversions. CPL when the conversion is a lead, CPA for any conversion event.

ROAS = revenue attributed / ad spend. Used for ecom and direct-revenue funnels.

MER = total revenue / total ad spend across all channels. Use this when platform attribution is unreliable (X's attribution is leaner than Meta's).

Aesthetic Score = Grok's per-creative visual quality rating. Higher scores get lower CPMs and better placement priority. Affects auction directly in the rebuilt 2026 Ads Manager.
CVR (post-click) = conversions / link clicks. Measured at the destination.

CPA / CPL = total spend / conversions. Use both pixel-attributed and survey-attributed CPA — they will differ by ~60% on AI answer surfaces.

ROAS = revenue attributed / ad spend. Use blended pixel + survey for true ROAS on AI surfaces.

Conversation Gap = the 60% of attributable conversions that happen hours or days after the AI answer interaction, through direct return or branded search, that pixel-only attribution misses.

MER = total revenue / total ad spend across all channels. The right scoreboard when AI-surface pixel attribution is unreliable.
Don't want to learn this? We run it for you. This is the same system we use with clients. Book a 30-minute call and we'll diagnose your acquisition setup live.
Book a free strategy call →

Client Onboarding & Discovery

Standardized intake process. Complete before spending a dollar.

Client Information

Discovery Questions

Check off as you gather each answer during your discovery call.

Business Marketing Historical Performance Platform Access

Current Performance Baseline

Total business volume across all channels (organic + paid + email + referral). Date-stamp every row. This is the reference for setting targets and measuring lift.

"Conversions" = the primary commercial action for the business model: orders (ecom/D2C), leads (lead gen), enrollments (info product), installs (app), bookings (local service), signups (SaaS trial). "Avg. value" = AOV / deal value / ASP / ARPU depending on model."Conversions" = orders / leads / enrollments / installs / bookings / signups depending on business model. "Avg. value" = AOV / deal value / ASP / ARPU depending on model."Conversions" = orders / leads / enrollments / installs / bookings / signups depending on business model. "Avg. value" = AOV / deal value / ASP / ARPU depending on model.B2B variant: capture leads → MQLs → SQLs → opps → pipeline $ across the full funnel."Conversions" = orders / leads / enrollments / installs / sign ups depending on business model. "Avg. value" = AOV / deal value / ASP / ARPU depending on model. Currency primary USD, NGN for NG-targeted campaigns."Conversions" = orders / leads / enrollments / installs / bookings / signups depending on business model. "Avg. value" = AOV / deal value / ASP / ARPU. Currency: USD (NG advertisers settle in USD regardless of NGN offer pricing)."Conversions" = orders / leads / enrollments / signups, counted blended (pixel + post-purchase survey) because AI-surface pixel undercounts ~60%. "Avg. value" = AOV / deal value / ASP / ARPU depending on model.

Daily (last 30d avg)Daily (last 30d avg)Daily (last 30d avg)Daily (last 30d avg — leads only)Daily (last 30d avg)
Monthly (last 3 months) — pipeline $revenuerevenuerevenuerevenue
Quarterly (last 2 quarters)
Channel split (last 30 days, % of revenue)Channel split (last 30 days, % of revenue)Channel split (last 30 days, % of revenue)Source split (last quarter, % of pipeline $)Channel split (last 30 days, % of revenue)

Discovery Call Template

DISCOVERY CALL AGENDA — {{CLIENT}} Date: ___________ Platform: ___________ 1. BUSINESS OVERVIEW - What does the business do? - Revenue model and pricing - Average deal size / order value - Sales cycle length 2. MARKETING CURRENT STATE - What channels are you using today? - What has worked? What hasn't? - Existing funnels and landing pages - Email list and CRM setup 3. GOALS & KPIs - Primary goal for paid ads - Target CPA / ROAS - Monthly budget available - Timeline and milestones 4. CURRENT PERFORMANCE BASELINE - Daily conversions (orders / leads / installs / bookings) — last 30d avg - Monthly revenue or pipeline $ — last 3 months - Quarterly revenue or pipeline $ — last 2 quarters - Channel split: organic / paid / email / referral - Source of truth (Shopify / Stripe / HubSpot / Salesforce / GA4) 5. AUDIENCE - Who is the ideal customer? - Key demographics and behaviors - Customer pain points - Purchase triggers 6. CREATIVE & ASSETS - Brand guidelines available? - Existing creative assets - Testimonials / case studies - Product photography / video 7. ACCESS & LOGISTICS - Platform account access - Tracking / pixel status - Reporting cadence preference - Key stakeholders and approvals

Audience Research (do before Strategy)

Do this yourself before opening Ads Manager. Skip it and strategy is a guess.

Pixel & Tracking Setup

Ensure the technical foundation is right before spending.

Meta Pixel & Conversions API

Pixel & Events

iOS 14+ / ATT Compliance

TikTok Pixel & Events API

Google Tag & Conversion Tracking

LinkedIn Insight Tag & Conversions

Snap Pixel & Conversions API

X Pixel & Conversions API

AI Answer Engine Tracking (OpenAI Pixel / UET / Google Tag + Survey)

Pixel-only attribution undercounts AI-surface conversions by ~60% (the conversation gap). Never optimize against pixel data alone — use blended pixel + survey attribution and validate with branded-search lift.
Tracking verification tip: After installing pixels, visit the site and trigger conversion events. Verify they appear in each platform's Events Manager or Tag Assistant within 15 minutes.

Campaign Strategy Framework

Map client goals to campaign objectives and funnel stages.

Objective Selection Matrix

Client GoalMeta ObjectiveOptimize ForKey KPI
Brand AwarenessAwarenessReach / Ad Recall LiftCPM, Reach, Frequency
Traffic / ContentTrafficLink Clicks / Landing Page ViewsCPC, CTR
Lead GenerationLeadsConversions (Lead event)CPL, Lead Volume
eCommerce SalesSalesConversions (Purchase) / ValueROAS, CPA
App InstallsApp PromotionApp Installs / App EventsCPI, In-App Events
EngagementEngagementPost Engagement / Video ViewsCPE, ThruPlays
Client GoalTikTok ObjectiveOptimize ForKey KPI
Brand AwarenessReachImpressionsCPM, Reach
Traffic / ContentTrafficClicksCPC, CTR
Lead GenerationLead GenerationLead Form SubmissionsCPL, Lead Volume
eCommerce SalesProduct SalesComplete PaymentROAS, CPA
App InstallsApp PromotionApp InstallsCPI
Video ViewsVideo Views6s / 2s Video ViewsCPV, VTR
Client GoalGoogle Campaign TypeOptimize ForKey KPI
Brand AwarenessDisplay / YouTube (Video)Impressions / ViewsCPM, CPV
Traffic / ContentSearch / DisplayClicksCPC, CTR
Lead GenerationSearch / Demand Gen / PMaxConversions (Lead)CPL, Conv. Rate
eCommerce SalesShopping / PMaxConversion ValueROAS, CPA
App InstallsApp CampaignInstalls / In-App ActionsCPI
Local / CallsLocal / SearchCalls / DirectionsCost Per Call
Client GoalLinkedIn ObjectiveOptimize ForKey KPI
Brand AwarenessBrand AwarenessImpressionsCPM, Reach
Website TrafficWebsite VisitsLanding Page ClicksCPC, CTR
Lead GenerationLead Gen FormsLead Form Opens/SubmissionsCPL, Form Fill Rate
ConversionsWebsite ConversionsKey Page ActionsCPA, Conv. Rate
EngagementEngagementSocial ActionsCPE, Engagement Rate
Video ViewsVideo ViewsVideo CompletionsCPV, VTR
Client GoalSnapchat ObjectiveOptimize ForKey KPI
Brand AwarenessAwarenessImpressions / Unique ReachCPM, Reach
Video ViewsVideo Views2s / 15s viewsCPV, VTR
Website TrafficTrafficSwipe Ups / Landing Page ViewsCPC, Swipe Up Rate
Lead GenerationLead GenerationForm Submissions (native)CPL
eCommerce SalesConversionsPurchase / Add to CartROAS, CPA
Catalog SalesCatalog SalesPurchase from feedROAS
App InstallsApp InstallsInstall + in-app eventCPI, CPA
Engagement (AR)EngagementLens plays / sharesCost per Play, Share Rate
Client GoalX ObjectiveOptimize ForKey KPI
Brand AwarenessReachImpressionsCPM, Frequency
Video ViewsVideo Views6s / ThruPlayCPV, VTR
Website Traffic (warm-up)Website TrafficLink ClicksCPC, CTR
Lead GenerationWebsite ConversionsLeadCPL
eCommerce / info productWebsite ConversionsPurchaseROAS, CPA
App InstallsApp InstallsInstall + in-app eventCPI
Engagement (priming only)EngagementsLikes / reposts / repliesCPE
No Meta-style on-platform "Sales" objective. Revenue runs Website Conversions optimized for Purchase (Pixel + CAPI must be firing first). The #1 budget waster on X is running Engagements when the goal is sales — cheapest optimization, best dashboards, worst conversion.
GoalPrimary SurfaceWhy
Reach NG usersMicrosoft Copilot + Google AIOChatGPT proper doesn't deliver to NG
Reach US/CA/AU/NZChatGPT Ads + Copilot + AIOFull surface availability
B2B / professionalMicrosoft CopilotBing enterprise install base + LinkedIn data
E-commerce / consumerGoogle AIO (Shopping + AIO)Existing Google Shopping infrastructure
Local serviceGoogle AIO (local intent)Local search dominance
Objective by surface: ChatGPT proper = Website Conversions (Purchase/Lead) or Reach/Traffic on a single Sponsored Recommendation Card (CPM $60 default / CPC $3-5). Microsoft Copilot and Google AIO inventory fold into existing campaign types — there is no separate "Copilot" or "AIO" campaign.

Funnel Mapping

TOFU — Awareness
Cold audiences. Goal: attention and traffic.
MOFU — Consideration
Warm audiences. Goal: engagement and intent signals.
BOFU — Conversion
Hot audiences. Goal: conversions and purchases.
Industry Notes: B2B SaaS

Recommended funnel: TOFU (thought leadership content) → MOFU (case studies, webinars, gated content) → BOFU (demo request, free trial)

Best platforms: LinkedIn (targeting precision), Google Search (intent capture), Meta (retargeting)

Typical cycle: 30-90 day sales cycle. Expect 3-7 touchpoints before conversion. Attribution is multi-touch.

Industry Notes: eCommerce / DTC

Recommended funnel: TOFU (product discovery, UGC) → MOFU (product comparison, reviews) → BOFU (discount, abandoned cart)

Best platforms: Meta (broad targeting + creative testing), TikTok (discovery), Google Shopping (purchase intent)

Typical cycle: 1-14 day purchase window. Creative is the #1 lever. Test 3-5 creatives per week at scale.

Industry Notes: Services / Local

Recommended funnel: TOFU (local awareness, educational content) → MOFU (testimonials, before/after) → BOFU (free consultation, quote request)

Best platforms: Google Search (high-intent local queries), Meta (local targeting + lead forms), LinkedIn (B2B services)

Typical cycle: 7-30 days. Lead forms outperform landing pages for local services. Follow up within 5 minutes.

Industry Notes: Info Products / Courses

Recommended funnel: TOFU (free value content, hooks) → MOFU (webinar, challenge, lead magnet) → BOFU (sales page, urgency offer)

Best platforms: Meta (broad + lookalikes), TikTok (organic amplification via Spark Ads), YouTube (long-form authority)

Typical cycle: 3-21 days from first touch to purchase. Webinar funnels and challenge funnels convert best for high-ticket.

Goal Setting from Baseline

Convert the baseline numbers captured in Onboard into explicit targets before running any CPA / ROAS calculation. Every metric that matters gets a Current → Target → Lift % → Timeline row. Targets here are business-level goals; the CPA/CVR/ROAS subsection below derives the unit economics needed to hit them.

Metric Current Target Lift % Timeline Owner
Daily conversionsDaily conversionsDaily conversionsMonthly leadsDaily conversions (CTC + VTC)
Monthly revenueMonthly revenueMonthly revenueMonthly MQLsMonthly revenue
Quarterly revenueQuarterly revenueQuarterly revenueMonthly pipeline $Quarterly revenue
Paid contribution % of totalPaid contribution % of totalPaid contribution % of totalPaid contribution % of pipelinePaid contribution % of total
Rules:
  • Lift > 100% in 90 days requires a corresponding offer, creative, or capacity change. Don't set growth targets that assume the same inputs produce different outputs.
  • If Paid contribution % target requires more spend than the budget ceiling supports at current CPA, surface the gap before committing.
  • Quarterly target must reconcile with monthly target × 3 ± seasonality. Flag mismatches.
  • Pipeline targets must reconcile with sales-team capacity. A 3× lift in MQLs without SDR coverage produces dead leads, not pipeline.
  • Snapchat audience pools are smaller than Meta. Cap diaspora-funded NG campaigns by audience saturation (frequency > 3.5), not budget.

Setting Targets (CPA, CVR, ROAS)

Targets are constraints, not aspirations. Set them before launch so kill/scale rules have meaning. Pick the calculation method that matches the business model.

Target CPA (or CPL) — How to Calculate

Method 1: Margin-based (E-commerce, D2C)
Target CPA = AOV × Gross Margin % × Acquisition Allowance %
Example: AOV $50 × 60% margin × 30% allowance = $9 target CPA.
Acquisition allowance: 30% aggressive (high-growth), 50% defensive (profit). Remainder funds fulfillment, ops, profit.
Method 2: LTV-based (SaaS, subscription, repeat-purchase)
Target CPA ≤ LTV / 3
CAC:LTV of 1:3 is the standard. Below = unscalable. Above 1:5 = under-investing.
Example: LTV $300 → max CPA $100.
Method 3: Payback-based (subscription, infinite-LTV)
Target CPA = Monthly Net Revenue × Payback Months
B2B SaaS: 6-12 months. D2C subscription: 3-6 months.
Example: $20/month net revenue × 6 months = $120 target CPA.
Method 4: Lead-stack (B2B, high-ticket, lead gen)
Target CPL = Deal Value × Close Rate × Margin × Acquisition Allowance
Example: $5,000 deal × 20% close × 40% margin × 30% allowance = $120 target CPL.
Sanity check: if target CPA falls below 30% of platform benchmark CPA for the geo + vertical, the offer is likely not viable on paid yet. Fix the offer or LTV before scaling spend.

Target CVR — How to Set

Working from benchmarks (post-click CVR):

FunnelHealthy CVR Range
Lead form (low-friction)8-20%
Lead form (B2B, gated)3-10%
Native Meta lead form (Lead-to-Sale, post-follow-up)8-15%
E-commerce checkout (cold)1-3%
E-commerce checkout (warm/RT)4-8%
App install (web → store)10-25%
Demo / consultation booking2-5%
WhatsApp / Messenger conversion3-10% (compound of click-to-conversation × conversation-to-sale)
Profile visit funnel (Visit-to-Sale, compound)0.5-2% (compound of Visit-to-DM 5-15% × DM-to-Sale 15-30%)
Info product checkout2-6%
Webinar funnel (reg → attend → buy, compound)3-8% reg-to-sale (compound of attendance 25-45% × show-to-sale 8-20%)

Set target at or above the floor of the benchmark range. Below the floor signals a destination problem. For compound funnels (webinar, profile-visit), the floor is the product of the stage rates, so a weak single stage drags the whole funnel below the floor even when the ad-stage metric looks fine.

Algebraic check: Target CVR = Target CPC / Target CPA. If the math returns a CVR outside the benchmark range, one of CPA or CPC targets is unrealistic.

Target ROAS — How to Set

Breakeven ROAS = 1 / Gross Margin %
Target ROAS = Breakeven ROAS × 1.5 to 2x
Example: 50% margin → breakeven 2.0x → target 3.0-4.0x.
High-margin info products (80%+ margin) have breakeven of 1.25x but target should still be 2-3x to fund overhead, refunds, growth.

Funnel-Aware Target Translation

Target CPA is the cost-per-sale ceiling. The platform does not always report cost-per-sale — the metric in the dashboard depends on the campaign objective and funnel destination. Translate Target CPA to the metric the platform surfaces using the multipliers below.

Funnel TypeMeta ReportsFormulaMental Shortcut
Direct purchase (Sales objective → checkout)Cost Per PurchaseTarget CPA itself25-30% of AOV (physical), 40-50% (digital/service)
Website Traffic (ad → LP → action)Cost Per Link ClickTarget CPA × Click-to-Sale rateTarget CPA ÷ 50 (cold), ÷ 25 (warm/RT)
Lead Gen (ad → native form → follow-up)Cost Per LeadTarget CPA × Lead-to-Sale rateTarget CPA ÷ 10
Click-to-WhatsApp (ad → DM → sale)Cost Per ConversationTarget CPA × DM-to-Sale rateTarget CPA ÷ 4 (retail), ÷ 7 (B2B)
Profile Visit (ad → IG profile → DM → sale)Cost Per Profile VisitTarget CPA × DM-to-Sale × Visit-to-DMTarget CPA ÷ 40 (retail), ÷ 67 (B2B)
Webinar funnel (ad → registration → live/replay → checkout)Cost Per Registration (Lead)Target CPA × attendance rate × show-to-sale rateTarget CPA ÷ 20 to ÷ 40

Default Nigerian SMB conversion rates: Click-to-Sale (Traffic objective) 2% cold / 4% warm/RT / 1% broad-geo splash; Lead-to-Sale (Meta native lead form) 10%; DM-to-Sale 25% retail / 15% B2B wholesale; Profile-Visit-to-DM 10% optimized profile / 5% unoptimized. Webinar funnel: registration → attendance 25-45% (cold paid; warm/organic + reminder stacks higher), attendance → purchase 8-20%, replay → purchase 2-8% of no-shows, blended registration → purchase 3-8%.

Critical: Objective Choice Drives Translation. If pixel + purchase event installed, Sales objective beats Traffic objective by 40-60% effective CPA without any other change. Same destination, different optimization. Most NG SMBs run the wrong objective for their funnel — switching is the cheapest Month 1 win available.
Funnel TypeTikTok ReportsFormulaMental Shortcut
Direct purchase (Sales → TikTok Shop or Web Conversions)Cost Per PurchaseTarget CPA itself25-30% of AOV (physical), 40-50% (digital/service)
Website Traffic (ad → LP → action)Cost Per Link ClickTarget CPA × Click-to-Sale rateTarget CPA ÷ 50 (cold), ÷ 25 (warm/RT)
Lead Gen (ad → native form → follow-up)Cost Per LeadTarget CPA × Lead-to-Sale rateTarget CPA ÷ 12 (lead quality typically weaker than Meta)
Click-to-WhatsApp / Messages (ad → DM → sale)Cost Per ConversationTarget CPA × DM-to-Sale rateTarget CPA ÷ 4 (retail), ÷ 7 (B2B)
Profile Visit / Bio Link (ad → profile → DM → sale)Cost Per Profile Visit / CPC on Bio LinkTarget CPA × DM-to-Sale × Visit-to-DMTarget CPA ÷ 50 (retail, lower than IG), ÷ 80 (B2B)
Webinar funnel (ad → registration → live/replay → checkout)Cost Per Registration (Lead)Target CPA × attendance rate × show-to-sale rateTarget CPA ÷ 25 to ÷ 50 (attendance typically lower than Meta)

Default conversion rates (TikTok-adjusted): Click-to-Sale (Traffic) 1.5% cold / 3% warm/RT (lower than Meta — audience skews entertainment-first); Lead-to-Sale (TikTok native lead form) 8%; DM-to-Sale 25% retail / 15% B2B; Profile-Visit-to-DM 7% optimized / 3% unoptimized; Webinar registration → attendance 20-40% (entertainment-first audience shows up less reliably; lean on reminder stacks).

Critical: TikTok audience is entertainment-first. Same offer that converts at 2% on Meta Traffic typically converts at 1-1.5% on TikTok Traffic. If using TikTok for direct response, default to Sales objective with TikTok Shop or pixel-tracked checkout. Lead Gen and Traffic produce volume but soft intent.
Funnel TypeGoogle ReportsFormulaMental Shortcut
Direct purchase (Sales / Search / Shopping / PMax with purchase event)Cost Per Conversion (Purchase)Target CPA itself25-30% of AOV (physical), 40-50% (digital/service)
Website Traffic (Search / Display with click optimization)Cost Per ClickTarget CPA × Click-to-Sale rateTarget CPA ÷ 50 (cold) / ÷ 25 (warm/RT). High-intent search trends ÷ 20-30
Lead Gen (Search / Demand Gen with lead form or LP form)Cost Per Conversion (Lead)Target CPA × Lead-to-Sale rateTarget CPA ÷ 10 (B2C), ÷ 6-8 (B2B with phone qualifier)

Default conversion rates (Google): Click-to-Sale on Search 3-8% on high-intent keywords / 1-2% on broad & Display; Lead-to-Sale on Search lead form or LP 12-20% (Search leads have higher intent than Meta native form leads); Lead-to-Sale on PMax / Demand Gen 5-10%.

Note: Click-to-WhatsApp and Profile Visit funnels do not exist on Google Search.

Critical: Search vs Display vs PMax intent differs significantly. Search Sales > Search Lead > PMax > Demand Gen > Display in click quality. Set CPA targets per campaign type, not blanket. PMax can blend across all of these unless feed/asset groups are tightly scoped.
Funnel TypeLinkedIn ReportsFormulaMental Shortcut
Lead Gen Forms (native, pre-filled in-platform)Cost Per Lead (Form Submission)Target CPA × Lead-to-Closed-Won rateTarget CPA ÷ 50-100 (Lead → MQL → SQL → Closed-Won compound rate)
Website Traffic / Conversions (off-platform LP, demo booking, content download)Cost Per Click or Cost Per ConversionTarget CPA × LP-Conversion-to-Closed-Won rateTarget CPA ÷ 30-60 (depends on LP CVR + downstream sales conversion)

Default conversion rates (LinkedIn B2B): Lead Gen Form fill 8-15% of clicks (pre-filled forms have higher fill rates than off-platform forms); Lead → MQL 30-50%; MQL → SQL 40-60%; SQL → Closed-Won 15-30% (varies hugely by ACV); Compound Lead → Closed-Won 2-10% (use 5% default for mid-market B2B SaaS at $20K-$80K ACV).

Note: Click-to-WhatsApp and Profile Visit funnels do not exist on LinkedIn.

Critical: LinkedIn Lead Gen Forms hide quality risk. Pre-filled forms produce volume but the leads may not match ICP intent. Always layer 1-2 qualifying questions in the form and require sales-team validation in week 1. The "cheap CPL" trap is the most common LinkedIn failure mode. For high-consideration offers ($50K+ ACV demos), Website Conversions to a custom LP outperforms LGF because LP friction itself qualifies.
Funnel TypeSnapchat ReportsFormulaMental Shortcut
Direct purchase (Conversions objective)Cost Per PurchaseTarget CPA itself25-30% of AOV (physical), 40-50% (digital/service)
Website Traffic objective (ad → LP → action)Cost Per Swipe UpTarget CPA × Swipe-to-Sale rateTarget CPA ÷ 80 (cold), ÷ 35 (warm/RT)
Lead Gen objective (native form)Cost Per LeadTarget CPA × Lead-to-Sale rateTarget CPA ÷ 15 (Snap lead intent weaker than Meta)
App Installs objectiveCost Per InstallTarget CPA × Install-to-Paid-Event rateTarget CPA ÷ 10-15

Default conversion rates (Snapchat US/UK/CA): Swipe-to-Sale 1.2% cold, 2.5% warm/RT; Lead-to-Sale 6-8% (lower than Meta's 10%); Install-to-Paid-Event: gaming 8-15%, fintech 3-8%, content app 5-12%.

Critical: Snapchat is impulse-first, low patience. Same offer that converts at 2% on Meta Traffic typically converts at 0.8-1.2% on Snapchat Traffic. Default to Conversions objective with pixel-tracked checkout for direct response. Always report Click-Through Conversions (CTC) and View-Through Conversions (VTC) separately — VTC is typically 40-60% of total. Above 70% VTC share = audit before scaling.
Funnel TypeX ReportsFormulaMental Shortcut
Direct purchase (Website Conversions → Purchase)Cost Per PurchaseTarget CPA itself25-30% of AOV (physical), 40-50% (digital)
Website Traffic (ad → LP → action)Cost Per Link ClickTarget CPA × Click-to-Sale rateTarget CPA ÷ 40 (cold), ÷ 20 (warm/RT)
Lead Gen (ad → LP form)Cost Per LeadTarget CPA × Lead-to-Sale rateTarget CPA ÷ 10
Engagement-led top of funnelCost Per EngagementProxy floor, not primary KPI≤ ₦60 / $0.04 for NG content

Default NG rates: Click-to-Sale 1.5% cold / 4% warm; Lead-to-Sale 10%; DM-to-Sale 25% retail, 15% B2B. X CPMs run ~30-50% of Meta NG CPMs but volume per dollar is lower — net CPA lands 0.8-1.3× Meta for the same offer. If target CPA is below 30% of your Meta CPA, X probably can't deliver it.

Funnel TypeAI Surface ReportsFormulaMental Shortcut
Direct purchaseCost Per Conversion (pixel)Blended CPA = pixel CPA × ~0.4True CPA ≈ pixel CPA × 0.4 (pixel sees ~40%)
Comparison / research queriesCost Per ClickIntent-qualified click costCPC $3-5 (surfaces price 2-6× Meta CPM)
Judge on blended (pixel + survey) CPA, never pixel alone — pixel sees ~40% of true conversions (conversation gap). 30-90 day attribution lag: plan 60-90 days before scaling on ROAS. Survey-attributed CPA should converge with pixel CPA as branded search compounds; if they still diverge after 90 days, the attribution method is broken.
For the diagnostic reply templates and 7-step quick-diagnosis workflow used in client conversations, MIA clients get the full diagnostic playbook as part of an engagement.

Webinar / multi-stage funnels — stage-by-stage estimation

A webinar funnel breaks the single-stage assumption behind every row above. The ad fills a free class; the purchase happens days later, on a different page, after the prospect shows up and watches the pitch. The only ad-readable metric is CPL (cost per registration) — it sits four stages upstream of revenue, and the ad platform cannot see the sale at all (and undercounts the checkout backend heavily where it can). Do not judge a webinar campaign on CPL alone; judge it on the modelled chain, then on the backend export once the webinar runs.

Spend → Registrations (CPL) → Attendees (attendance rate) → Buyers (show-to-sale + replay) → Revenue Registrations = Spend / CPL Attendees = Registrations * attendance rate Buyers = (Attendees * show-to-sale) + (No-shows * replay-sale rate) Blended reg-sale = Buyers / Registrations Effective CAC = Spend / Buyers = CPL / blended reg-sale Revenue = Buyers * price (net = * 0.96 for a ~4% checkout fee) Funnel ROAS = Revenue / Spend Breakeven CAC = price * gross margin Target CAC = price * gross margin * allowance (~30%) Target CPL = Target CAC * blended reg-sale <-- set the ad-stage target from this, not from a guess

Worked example (info product at ₦35,000, 90% margin, ₦70,000 weekly spend, CPL ₦600; base assumptions attendance 35% / show-to-sale 12% / replay 2% of no-shows):

StageValue
Registrations117
Attendees (35%)41
Buyers (live 12% + replay 2% of no-shows)~6.4
Blended reg → sale5.5%
Effective CAC₦10,940
Gross revenue₦224,000
Funnel ROAS3.2x (breakeven 1.11x, target ~2.5x)
Target CAC (30% of margin)₦9,450
Implied target CPL~₦520
Breakeven CPL (lose money above)~₦1,733
The leverage sits in show-to-sale, not the ad. Hold everything else and move show-to-sale from 12% to 8% and funnel ROAS falls to ~2.0x; move it to 18% and it rises to ~5.5x. When CPL looks fine but funnel ROAS is weak, the fix is the webinar and the close, not the campaign.
Backend export is truth. Build the model on assumptions, then replace registration counts with the registration source of truth (the Sheet / email / CRM tool) and buyer counts with the checkout backend export — whatever processor the offer sells through (Selar, Paystack, Flutterwave, Stripe, Gumroad, a manual transfer log, etc.) — never the platform-attributed purchase number. The platform's Lead count is the only ad-side figure to trust on a webinar campaign.
Operating principle: set the most conservative of the three targets as the kill line. The most aggressive becomes the scale-up trigger.

Campaign Strategy Brief

CAMPAIGN STRATEGY BRIEF — {{CLIENT}} Date: ___________ Platform: ___________ OBJECTIVE Primary goal: ___________ Campaign objective: ___________ Optimization event: ___________ Target KPI: ___________ FUNNEL STRUCTURE ☐ TOFU — Audiences: ___________ | Budget: ___% ☐ MOFU — Audiences: ___________ | Budget: ___% ☐ BOFU — Audiences: ___________ | Budget: ___% AUDIENCE STRATEGY Primary audience: ___________ Secondary audience: ___________ Retargeting pools: ___________ Exclusions: ___________ CREATIVE PLAN Formats: ___________ Hook angles: ___________ Number of variations: ___________ SUCCESS METRICS Target CPA: $___________ (use Method 1-4 above) Target CVR (post-click): ___________% (benchmark floor for funnel type) Target ROAS: ___________x (breakeven × 1.5-2x) Monthly budget: $___________ Review cadence: ___________ Kill threshold: CPA > ___ | CVR < ___% | CTR < ___% after $___ spend

Campaign Structure & Naming Conventions

Consistent naming keeps your ad account manageable across clients.

Recommended Three-Tier Pattern

Each level captures a different decision dimension. Pipe-separated for clean parsing in reports.

LevelPatternWhy these fields
CampaignObjective | Product | Audience Type | DateObjective + Product define the campaign's job; Audience Type + Date scope it
Ad Set / Ad GroupCountry | Audience | Angle | Conversion Event | Daily BudgetThe middle tier (named per platform below); country and audience determine delivery; Angle scopes it to one message (one ad set / ad group = one angle); conversion event and budget determine learning
AdProduct | Creative Type | HookAnchor on the product so multi-product accounts stay legible; creative type + hook are the test variables within the ad set's angle

Platform Hierarchy

The three tiers are the same idea everywhere; each platform just names its middle level differently. Showing the hierarchy for the platform selected above. The naming generator below already swaps the middle-level label when you switch platforms.

Meta: Campaign → Ad Set → Ad
TikTok: Campaign → Ad Group → Ad
Google: Campaign → Ad Group → Ad
LinkedIn: Campaign Group → Campaign → Ad
Snapchat: Campaign → Ad Set → Ad
X: Campaign → Ad Group → Ad
ChatGPT: Campaign → Ad Group (intent cluster) → Ad
One Ad Set / Ad Group = One Angle

An angle is a belief, desire, or fear the audience holds (AI Fear, Cost of Living, Job Security, Financial Freedom, Speed). It is what you say, not how you say it. Scope each ad set (ad group on Google, TikTok, and X) to a single angle so the platform learns cleanly.

A testimonial, case study, founder story, or demo is a content structure, not an angle. The opening line or visual is the Hook — the test variable at the ad level. Don't mix multiple angles inside one ad set, and don't confuse a content structure for an angle.

Examples

Named for the platform selected above.

Campaign: Sales | PMM AI Bootcamp Core | Cold | 2026-03-01
Ad Set: Nigeria | Cold | AI Fear | Purchase | ₦15,000
Ad: Bootcamp | Video | Fear of Replacement
Campaign: Sales | PMM AI Bootcamp Core | Cold | 2026-03-01
Ad Group: Nigeria | Cold | AI Fear | CompletePayment | ₦15,000
Ad: Bootcamp | SparkAd-Creator | Fear of Replacement
Campaign: Search | HeroSKU | NonBrand-Exact | 2026-04
Ad Group: US | ForSchools-Bulk-Exact | Cost Savings | Purchase | $50
Ad: HeroSKU | RSA | Keyword-Mirror
Campaign Group: Leads | ABM Enterprise | Cold | 2026-Q2
Campaign: US | Director-DemandGen | Cost of CAC | LeadGenForm | $80
Ad: Platform | Document-Ad | ROI Stat
Campaign: Sales | HeroSKU | Cold | 2026-03-01
Ad Set: Lagos | Lookalike-Buyers | Speed | Purchase | ₦15,000
Ad: HeroSKU | Single-Video | Discount
Field reference (click to expand)
Objective: Awareness, Traffic, Leads, Sales, App-Promotion
Product: product name or product line code (PMM AI Bootcamp Core, Bootcamp, HeroSKU)
Audience Type (Campaign): Cold, Warm, Cold-Broad, Cold-Interest, Cold-LAL, RT, Warm-Engagement
Audience (Ad Set): Broad, Nigeria, Retargeting Audiences, LAL1-Buyers, Interest-Marketing, RT-Site30d, RT-AddToCart7d
Country: ISO code, country name, or region (Nigeria, NG, US, UK, EU, DIASPORA)
Angle (Ad Set): the one belief, desire, or fear this ad set speaks to — AI Fear, Cost of Living, Financial Freedom, Job Security, Speed, Fear of Replacement, Japa. One angle per ad set (the angle layer of the Creative Strategy Framework). A desire/fear, NOT a content structure — testimonial, social proof, origin story are content structures, not angles.
Conversion Event: Purchase, Lead, Subscribe, Schedule, IC, AddToCart, ViewContent
Daily Budget: include currency (₦15,000, $50)
Creative Type: Video, UGC-Video, Founder-Talking, Static-Carousel, Static-Single, Reel, Demo-Screen
Hook: the specific opening this ad tests within the ad set's angle — Fear of Replacement, Discount, Pain, Outcome, a bold-claim line, a question opener. The angle lives on the ad set; the hook is the ad-level test variable.
Note: CTA is no longer part of the ad name. Track CTA at the creative level (asset tag in the brief), not in the name.
Date: YYYY-MM-DD (or YYYY-MM for monthly, YYYY-Q1 for quarterly)

Naming Generator

Fill the fields below and the generator builds Campaign / Ad Set / Ad names in the new pipe-separated convention.

Campaign: Sales | PMM AI Bootcamp Core | Cold | 2026-03-01 Ad Set: Nigeria | AI Fear | Purchase | ₦15,000 Ad: PMM AI Bootcamp Core | Video | Fear of Replacement

Recommended Structure

Meta hierarchy: Campaign → Ad Set → Ad
1 Campaign per objective per funnel stage
1 Ad Set per audience segment
3-6 Ad variations per Ad Set
TikTok hierarchy: Campaign → Ad Group → Ad
1 Campaign per objective per funnel stage
1 Ad Group per audience segment
3-5 Ad variations per Ad Group
Google hierarchy: Campaign → Ad Group → Ad
1 Campaign per campaign type per funnel stage
1 Ad Group per keyword theme or audience
2-3 Responsive Search Ads per Ad Group (Search), assets for PMax
LinkedIn hierarchy: Campaign Group → Campaign → Ad
1 Campaign Group per funnel stage
1 Campaign per audience/objective combo
4-5 Ad variations per Campaign
Snapchat hierarchy: Campaign → Ad Set → Ad
1 Campaign per objective + funnel stage
2-3 Ad Sets per Campaign (one audience hypothesis each)
3-5 Ads per Ad Set
Snapchat rewards consolidation; resist over-segmentation (audience pools are smaller than Meta/TikTok)

Anti-Patterns

Avoid these common mistakes:
• Too many campaigns (consolidate to feed algorithms more data)
• Mixing objectives in one campaign (one objective per campaign)
• Audience overlap between ad sets (use exclusions)
• No naming convention (impossible to analyze at scale)
• Editing live campaigns heavily (resets learning phase)

Audience Strategy

Systematic audience building and layering by funnel stage.

We don't use interest targeting. Modern ad algorithms find buyers better with broad + lookalikes built from the client's real data (customer list, engagers, video viewers, lead lists). The interest / behavior options shown in the tables below are platform reference only — don't build campaigns on them, and don't recommend them to clients.

Audience Types

TypeDescriptionBest For
Custom AudiencesWebsite visitors, customer lists, video viewers, engagementRetargeting (MOFU/BOFU)
Lookalike Audiences1-10% of source audience (customers, leads, engagers)Prospecting (TOFU)
Interest/BehaviorTargeting by interests, behaviors, demographicsProspecting (TOFU)
Broad (Open)No targeting restrictions, let the algorithm find usersScaled prospecting with strong creative

Audience Types

TypeDescriptionBest For
Custom AudiencesWebsite visitors, customer files, app activity, engagementRetargeting (MOFU/BOFU)
Lookalike AudiencesBased on custom audience source (narrow/balanced/broad)Prospecting (TOFU)
Interest & BehaviorInterest categories, video interactions, creator interactionsProspecting (TOFU)
Spark Ads AudiencesUsers who engaged with organic/Spark Ads contentWarm retargeting

Search: Keywords Are the Audience

On Search, keyword + match type is the targeting. The audience-signal types further down apply to PMax, Demand Gen, YouTube, and Display.

Match typeSyntaxUse
Exact[keyword]Highest precision, lowest reach. Proven high-intent terms.
Phrase"keyword"Moderate precision + reach. Workhorse for new themes.
BroadkeywordHighest reach, only safe with Smart Bidding (tCPA/tROAS). Without it, broad burns budget.
Ad group = one keyword theme (4-8 closely related keywords). Brand and non-brand never share a campaign. Negative-keyword hygiene: pull the search-terms report 2x/week and add waste; common non-brand negatives: free, jobs, cheap (vertical-dependent), competitor names you don't bid on.

Audience Signals (PMax / Demand Gen / YouTube / Display)

TypeDescriptionBest For
In-MarketUsers actively researching or comparing productsMOFU / high-intent prospecting
AffinityUsers with sustained interest in a topicTOFU awareness
Custom SegmentsBased on search terms, URLs, or appsFlexible prospecting
RemarketingWebsite visitors, YouTube viewers, app usersRetargeting (BOFU)
Customer MatchUpload customer lists for targetingUpsell / cross-sell / exclusions

Audience Types

TypeDescriptionBest For
Job Title / FunctionTarget by exact title, seniority, functionPrecision B2B targeting
CompanyTarget by company name, size, industry, growth rateABM / enterprise targeting
Skills / InterestsMember skills, groups, interestsBroader professional targeting
Matched AudiencesWebsite retargeting, contact/company lists, lookalikesRetargeting + expansion

Audience Types

TypeDescriptionBest For
BroadNo targeting beyond geo/age; algorithm finds buyers from creative signalScaled prospecting with strong creative + clean pixel
Predefined LifestylesSnapchat curated segments (Beauty Mavens, Gamers, Foodies, etc.)Strongest cold targeting; outperforms raw interest stacks
Predefined InterestsTopic-based (sports, music genres, tech)Niche prospecting
Lookalike Audiences1%, 3% reliable; 5%+ degrades fastProspecting from buyer/lead seed
Snap Audience MatchUploaded email/phone customer list (hashed)Retargeting + lookalike seed
Engagement AudiencesLens players, Story Ad engagers, swipe-up engagers, video viewersWarm retargeting
Custom (Pixel)Site visitors, purchasers, cart abandonersBOFU retargeting

NG state-level targeting: Lagos, Abuja FCT, Rivers, Oyo, Kano. Country-level NG chokes delivery on thin pools — test states beyond top 5 only after offer proves in top 5.

Audience Types

TypeDescriptionBest For
Follower LookalikesPaste 8-15 competitor / thought-leader handles; X finds similar followersStrongest cold lever on X in 2026
Keyword targetingEntity terms, brand handles, event names (not single broad words)Capturing expressed intent
Conversation Topics10,000+ topics; align to active niche conversationsTopic-aligned prospecting
Interest targeting350+ interests; weaker than Follower LALBroad niche, no buyer data
Engagement / repliers / profile visitorsOrg + paid engagers, quote-tweeters (repliers = highest organic intent)Warm retargeting
Custom list + site retargetingHashed email/phone; site / product-page / cart visitorsBOFU retargeting + LAL seed

NG state-level targeting: Lagos, Abuja FCT, Rivers, Oyo, Kano. Min TOFU ~200K (X pools are thinner than Meta). Don't stack more than 2 inclusion criteria — narrow stacks starve on X's thin auction. Follower Lookalikes seed from handles, not a country lookalike.

Intent Clusters (AI surfaces target intent, not audiences)

ClusterBuyer MindsetSample Queries
ComparisonEvaluating options"X vs Y," "best alternative to Z"
How-toSolving a problem"how to do X," "best way to Y"
Best XDiscovery shopping"best X for Y," "top X for [use case]"
DefinitionalProblem unaware → aware"what is X," "X explained"
Brand DefenseBrand-aware research"[brand] review," "[brand] vs alternative"
TransactionalReady to buy"buy X," "X pricing"
ChatGPT proper has no demographics, interests, lookalikes, or pixel retargeting — only conversational intent + geo (US state/DMA/ZIP) + language + hashed custom list (inclusion/exclusion), and it cannot target Nigeria. Microsoft Copilot + Google AIO inherit full Microsoft/Google audiences (keyword, demographic, in-market, Customer Match, lookalike, remarketing) and are buyable from NG.

Audience Matrix by Funnel Stage

Exclusion Rules

Audience Naming Convention

Name every saved audience Type | Descriptor | Geo or Window (include the window only where the audience is time-based). The Cold / Warm / Retargeting token here matches the audience token used in the ad set / ad group name, so a saved audience maps to the ad set that uses it at a glance.

Saved audience nameFunnel role
Cold | Broad | LagosProspecting
Cold | Lookalike 1% Buyers | LagosProspecting
Warm | Profile engagers | Last 180 daysRe-engagement
Warm | Website visitors | Last 180 daysRe-engagement
Warm | Prospect Lead ListRe-engagement
Retargeting | Past Customer ListConversion / upsell
Retargeting | Website AddToCart | Last 180 daysConversion
Retargeting | Website InitiateCheckout | Last 180 daysConversion
Saved audience nameFunnel role
Cold | Broad | LagosProspecting
Cold | Lookalike 1% Buyers | LagosProspecting
Warm | Profile engagers | Last 180 daysRe-engagement
Warm | Website visitors | Last 180 daysRe-engagement
Warm | Prospect Lead ListRe-engagement
Retargeting | Past Customer ListConversion / upsell
Retargeting | Website Product Page | Last 180 daysConversion

TikTok exposes a product-page / view-content retargeting audience rather than Meta's separate AddToCart and InitiateCheckout events.

Saved audience nameFunnel role
Cold | Broad | LagosProspecting
Cold | Lookalike 1% Buyers | LagosProspecting
Warm | Profile engagers | Last 180 daysRe-engagement
Warm | Website visitors | Last 180 daysRe-engagement
Warm | Prospect Lead ListRe-engagement
Retargeting | Past Customer ListConversion / upsell
Retargeting | Website Product Page | Last 180 daysConversion

B2B firmographic variant. Type the audience by job function + seniority, not consumer cart events (LinkedIn has none).

Saved audience nameFunnel role
Cold | Function Marketing + Seniority Manager+ | NGProspecting
Cold | Lookalike of CustomersProspecting
Warm | Video viewers 50% | Last 180 daysRe-engagement
Warm | Company Page engagers | Last 180 daysRe-engagement
Warm | Lead Gen Form openers no-submit | Last 180 daysRe-engagement
Warm | Website visitors | Last 180 daysRe-engagement
Retargeting | Past Customer / Contact ListConversion / upsell

On Search, keyword + match type is the targeting, so audiences run in Observation mode only (never Targeting, which chokes Search reach). The same lists apply as Targeting on Display, Video / YouTube, Demand Gen, and PMax.

Saved audience nameApplies to
Cold | In-Market Segment | NGSearch (Observation) · Display / Video / PMax
Cold | Custom Segment | NGSearch (Observation) · Display / Video / PMax
Warm | YouTube viewers | Last 180 daysDisplay / Video / PMax
Warm | Website visitors | Last 180 daysSearch (Observation) · Display / Video / PMax
Retargeting | Product Page remarketing | Last 180 daysDisplay / Video / PMax
Retargeting | Customer Match ListSearch (Observation) · Display / Video / PMax
Saved audience nameApplies to
Cold | Follower LAL – @handles | NGX ad group (Targeting)
Cold | Keyword stack | NGX ad group
Cold | Conversation Topics | NGX ad group
Warm | Post engagers / repliers | 30-90dRetargeting
Retargeting | Site + Product page | 7-30dRetargeting (exclude 30d buyers)
Retargeting | Custom list (hashed) | persistentUpsell / exclusion

Name by surface + intent cluster, not audience attribute. One ad group = one intent cluster.

Saved nameApplies to
Copilot | Comparison intent | NGMicrosoft Ads (buyable from NG)
AIO | Best-X intent | NGGoogle Ads (buyable from NG)
ChatGPT | Brand-defense intent | USChatGPT proper (diaspora / US entity only)
Exclude | Customer list (512MB CSV)ChatGPT proper (exclusion)

When to Use Each, and Combining

Combining rule: same-type audiences (e.g. two cold sets) can share one campaign. Keep cold and retargeting in separate campaigns so they don't cannibalise each other's budget and learning. Where retargeting layers overlap (AddToCart inside Website visitors inside Past customers), use exclusions so a single person is only served by the tightest-fitting layer, never double-served.

Audience Build Sheet

AUDIENCE BUILD SHEET — {{CLIENT}} Platform: ___________ TOFU — PROSPECTING (broad + lookalikes only; no interest targeting) ☐ Broad / Open targeting ☐ Lookalike 1% (source: ___________) ☐ Lookalike 2-5% (source: ___________) ☐ Lookalike 1% from lead list (source: ___________) MOFU — CONSIDERATION ☐ Website visitors 30-day ☐ Website visitors 60-day ☐ Video viewers 50%+ ☐ Engagement audience (page/profile interactions) BOFU — CONVERSION ☐ High-intent visitors (pricing, cart, checkout) ☐ Lead form abandoners ☐ Customer lookalike 1-3% RETARGETING ☐ 7-day website visitors ☐ Cart / form abandoners ☐ Past customers (upsell) EXCLUSIONS ☐ Customers excluded from prospecting ☐ Converters excluded from lead gen ☐ Audiences de-overlapped

Creative Strategy & Ad Formats

Creative is the #1 performance lever. Systematize production and testing.

Ad Format Specs

FormatDimensionsRatioMax FileText Limits
Single Image1080x1080 or 1200x6281:1 or 1.91:130MB125 primary, 40 headline, 30 desc
Video1080x1080 or 1080x19201:1 or 9:164GB / 240min125 primary, 40 headline
Carousel1080x1080 per card1:130MB/card125 primary, 40 headline/card
Collection1200x628 cover1.91:130MB125 primary, 40 headline

5×5×5 Ad-Copy Method (Meta)

Per ad set (one angle), write 5 primary texts × 5 headlines × 5 descriptions. Meta permutes these into up to 125 combinations and serves the winners, so you get wide coverage from one build. The first line of each primary text is the hook — vary the opener across all five so you test five distinct entry points into the same angle.

Character guide

ElementCountTarget
Primary text5Land the hook in the first ~125 chars (before the "See More" cut), up to ~2,200 total
Headline5~40 chars
Description5~25-30 chars
CTA button1One button per ad

Ad brief

Brief every ad so production is unambiguous:

FieldFill with
Ad nameProduct | Creative type | Hook
AngleThe belief / desire / fear this ad set expresses
FormatStatic image · Video · Carousel
AssetThe specific creative file / concept
Production notesShot list, on-screen text, captions, edit direction
FormatDimensionsRatioMax FileNotes
In-Feed Video1080x19209:16500MB / 60s5-15s performs best
Spark AdsOrganic post specs9:16N/ABoost organic posts
Image1200x628 or 640x6401.91:1 or 1:1N/ALimited placements
Carousel1080x1920 per card9:162-35 cardsSwipeable image cards
FormatSpecsNotes
Responsive Search15 headlines (30 chars), 4 descriptions (90 chars)Pin sparingly, let Google optimize
Responsive Display1200x628, 1200x1200, 300x250 images + 5 headlines + 5 descriptionsUpload multiple assets
YouTube Video1920x1080 (16:9)Skippable: 12s-3min, Non-skip: 6-15s, Bumper: 6s
Performance MaxAll of the above + product feedProvide maximum asset variety
Demand Gen1200x628, 1080x1080, 1080x1920 images/videoSocial-style placements on Google surfaces

Responsive Search Ads — headlines, pinning, descriptions

15 headlines (30 chars each) covering: keyword mirror · primary benefit · differentiation · social proof · CTA/qualifier · urgency/freshness · brand name.

Pinning (deliberate, max 2): pin the keyword-mirror or brand headline to Position 1 when message-match matters (high-intent + brand ad groups); pin a legal/offer line to Position 2 only if it must always show; leave the rest unpinned for Google to optimize. Default posture is unpinned.

4 descriptions (90 chars each), role-mapped: D1 expand the benefit · D2 proof / differentiator · D3 handle the objection (price, risk) · D4 CTA + urgency.

Aim for "Good"+ Ad Strength; each ad group points to its own intent-matched landing page (no shared generic page).

Assets / Ad Extensions

Free CTR + Ad Rank lift. Message-match every asset to the ad group theme. Character limits are hard caps — Google truncates or disapproves anything over.

AssetCountChar limitsFormula
Sitelinks4-6+text 25; 2 desc lines 35 eachDistinct page/intent per link → its own URL
Callouts6-1025 eachBenefit/proof fragment, no punctuation
Structured snippets3-10 valuesvalues 25; header from fixed listHeader (Brands / Types / Services…) + matching values
Call1number + hoursUse when phone leads convert
Price3-8header 25, desc 25, price[Item] — from $X rows
Promotionas neededpromo 20, item 20, datesOccasion + % / $ off + start-end dates
Image3-151200×1200 + 1200×628Query-matched product/context imagery
FormatDimensionsText LimitsNotes
Single Image1200x628 or 1080x1080150 intro, 70 headline1.91:1 or 1:1
Video1920x1080 or 1080x1080150 intro, 70 headline3s-30min, under 30s performs best
Carousel1080x1080 per card150 intro, 45 chars/card2-10 cards
Document AdPDF / PPT upload150 introGreat for gated content
Message AdN/A500 char body, 1 CTAInMail-style, high open rates
FormatDimensionsRatioNotes
Single Image / Video Snap Ad1080x19209:163-10s optimal, up to 180s; sound on by default; 32MB video / 5MB image max
Story Ads1080x1920 per card9:163-20 cards; branded tile (360x600) leads in
Collection Ad1080x1920 hero + 4 tiles9:16 hero / 1:1 tilesTap-to-shop in-Snap
Commercials1080x19209:166s non-skippable; premium Discover placement
AR LensLens Studio 3D projectn/aFace / World / Body tracking; 4-12 week build
Filter1080x2340 PNG transparent9:16Geo-fenced or audience-targeted static overlay
Dynamic Product Ads1080x19209:16Catalog-driven personalization

3x3 Creative Matrix

This sits inside the creative hierarchy: Offer → Angle → Content Structure → Creative Format → Style → Hook → Platform (Creative Strategy Framework). The angle is the strategic unit and maps to one ad set (one ad set = one angle).

What an angle is: a belief, desire, or fear the audience holds — what you're saying, not how. Formula: Product + Audience + Desire or Fear = Angle. Test: if a label describes how you organize or prove the message (testimonial, case study, founder story, social proof, demo) it's a content structure, not an angle; if it's the opening line/visual, it's a hook. Example angles for a "make money with AI" offer: Financial freedom, Cost of living, AI opportunity, Job security / AI fear, Speed.

Pick 3 angles (each becomes its own ad set). Within an angle, create 9 variations by crossing 3 hooks with 3 formats.
Hooks (openings): (1) Pain-led, (2) Outcome-led, (3) Curiosity/contrarian line
Formats: (1) Static Image, (2) Video, (3) Carousel

Angle, content structure, format, and hook are separate knobs — don't collapse them. Each cell is one unique ad expressing one angle.

Hook Formulas

Named for the platform selected above — hooks are platform-native, not interchangeable.

HOOK FORMULAS (Meta — first 1-2 seconds) — copy and customize 1. If you sell [X] and [pain], stop scrolling. 2. Most [audience] make this mistake when [action]. 3. [Specific claim] in [timeframe]. Here's how. 4. I tried [common method] for [time]. Here's what worked. 5. Don't run [competitor approach] until you watch this. 6. POV: you just realized [insight].
HOOK FORMULAS (TikTok — first 1-2 seconds; the hook matters more here than anywhere) — copy and customize 1. POV: you just realized [insight]. 2. Direct address: If you sell [X] and [pain], stop scrolling. 3. Pattern interrupt: Wait, you can do that? 4. Stat shock: [X]% of [audience] do this wrong. 5. Curiosity loop: I tried [common method] for [time]. Here's what actually worked. 6. Reaction face: emote first, then deliver. 7. Sound-led: lead with a trending audio that earns attention before any words.
HOOK FORMULAS (Google — search headlines, text-first) — copy and customize 1. [Specific outcome] for [audience] — "Cut SaaS Onboarding by 40% for B2B Teams" 2. [Number] [Things] [Audience] Use — "5 Tools Marketers Use to Cut CAC" 3. Question with payoff — "Tired of [pain]? See how [solution]." 4. Social proof headline — "Trusted by [number] [audience]" 5. Direct CTA with qualifier — "Start Free Trial. No Card Required."
HOOK FORMULAS (LinkedIn — professional B2B) — copy and customize 1. Direct identification: "If you're a [role] at a [company type], you've probably noticed..." 2. Stat hook: "[Number]% of [audience] do [thing]. The other [%] do [different thing]. Here's why." 3. Authority hook: "After [time / N projects / N companies], here's what we learned about [topic]." 4. Contrarian POV: "Conventional wisdom says [thing]. Our data says the opposite." 5. Pattern recognition: "We analyzed [N] [thing]. The top performers all did this:" 6. Story hook: "Last quarter, our team [outcome]. Here's how:" Avoid: emoji-heavy openers, hype words ("game-changer," "revolutionary"), clickbait — anything that would feel out of place in a high-credibility newsletter.
HOOK FORMULAS (Snapchat — first 1-2 seconds, sound-on native) — copy and customize 1. POV: you just realized [insight]. 2. Direct address: If you [pain] and [aspiration], swipe up. 3. Pattern interrupt: Wait, you can do that? 4. Stat shock: [X]% of [audience] do this wrong. 5. Curiosity loop: I tried [common method]. Here's what actually worked. 6. Reaction face: emote first, then deliver. 7. Sound-led: lead with the audio before any visual payoff. 8. AR-first: the Lens activation IS the hook (face / world / body tracking).
HOOK FORMULAS (X — first 1-2 seconds for video, first line for text) — copy and customize 1. Unpopular opinion: [claim that goes against category consensus] 2. Most [audience] are wrong about [topic]. Here's why. 3. [Specific result] in [timeframe]. Here's exactly how. 4. I spent ₦[amount] testing [common method]. It failed. Here's what worked. 5. If you sell [product] and [pain], stop scrolling. 6. POV: you just realized [insight]. 7. [Number] of [category leaders] are doing this wrong.
HOOK FORMULAS (ChatGPT — answer-shaped, first ~50 chars) — copy and customize 1. [Number] [proof unit] use [product] for [outcome] 2. [Outcome] in [timeframe]. Here's the breakdown. 3. [Product] vs [alternative]: [specific advantage] 4. Most [audience] don't know about [solution] 5. The [specific] way to [outcome] without [pain] 6. Built for [audience]. Used by [proof unit].

Creative Brief Template

CREATIVE BRIEF — {{CLIENT}} Date: ___________ OBJECTIVE: ___________ AUDIENCE: ___________ KEY MESSAGE: ___________ HOOK ANGLE ☐ Problem/Pain: ___________ ☐ Benefit/Outcome: ___________ ☐ Social Proof: ___________ FORMAT: ☐ Image ☐ Video ☐ Carousel ASPECT RATIO: ☐ 1:1 ☐ 9:16 ☐ 1.91:1 CTA BUTTON: ___________ LANDING PAGE URL: ___________ VISUAL DIRECTION Style: ___________ Colors: ___________ Text overlay: ___________ COPY Primary text: ___________ Headline: ___________ Description: ___________

Creative Testing Rules

Budget Allocation Framework

Remove guesswork from budget decisions.

Budget Split Calculator

Funnel Stage% SplitMonthlyDaily
TOFU
MOFU
BOFU

Minimum Daily Budgets

ObjectiveMin Daily / Ad SetRecommended Daily
Conversions / Sales$20$30-50
Lead Generation$15$25-40
Traffic$10$15-25
Awareness / Reach$5$10-20
ObjectiveMin Daily / Ad GroupRecommended Daily
Conversions$20$30-50
Lead Generation$20$30-50
Traffic$20$20-30
Reach / Video Views$20$20-30
Campaign TypeMin DailyRecommended Daily
Search (Conversions)$20$30-50
Performance Max$30$50-100
Display$10$20-40
YouTube Video$10$20-50
Demand Gen$20$30-50
ObjectiveMin DailyRecommended Daily
Website Conversions$50$75-150
Lead Gen Forms$30$50-100
Website Visits$25$50-75
Brand Awareness$10$25-50
LinkedIn CPCs are significantly higher than other platforms ($5-12 avg). Budget accordingly. LinkedIn is best for high-value B2B conversions where LTV justifies the cost.
ObjectiveMin Daily / Ad SetRecommended Daily
Conversions (US/UK/CA)$40$50-80
Conversions (NG)₦12K₦15K-₦25K
Lead Generation (US/UK/CA)$40$50-80
Lead Generation (NG)₦12K₦15K-₦25K
Traffic (US/UK/CA)$20$30-50
Awareness / Video Views$20$25-40
App Installs$40$60-150
Snapchat needs 4-6× target CPA as daily budget per ad set (higher multiplier than Meta/TikTok's 3-5× because of weaker auction density and thinner pixel pools). NG floor is higher than Meta because Snapchat NG pixel pools are smaller.
Campaign Type (per ad group)Floor NG ($/day)Floor Diaspora ($/day)
Testing TOFU$10-20$25-50
Retargeting$5-10$15-30
Engagement (TOF only)$5$15
Scaling (consolidated winner)$50+$150+
X bills in USD (≈ $1 = ₦1,600). Budget per ad group = 3-5× target CPA AND must clear 40-60 weekly events of the optimization event. Cap Engagement-optimized ad groups at 10-15% of spend — cheap on X, but converts worst.
Surface — Campaign TypeFloor ($/day)Notes
Microsoft Copilot — Search (Conversions)$20Buyable from NG, reaches NG users
Google AIO — Search (Conversions)$20Buyable from NG, reaches NG users
Google AIO — Performance Max / Demand Gen$20-30Broad coverage
ChatGPT proper — Traffic (US)$25Geo-gated: US/CA/AU/NZ entity only
ChatGPT proper — Conversions (US)$50Diaspora-targeted offers only
AI answer surfaces price 2-6× Meta CPM. For NG advertisers: ~40-50% Microsoft Copilot + ~40-50% Google AIO; ChatGPT proper 0% (NG) or 10-20% for diaspora offers via a US entity. Volume-limited by query frequency — budget past query volume just inflates CPM. Treat as experimental budget, not core spend.

Learning Phase Protection

Don't kill before learning phase exits. Learning phase = 50 optimization events in 7 days per ad set. If you can't hit that at current budget, lower the optimization event (Purchase → InitiateCheckout → AddToCart) or raise the budget. Killing while in learning resets the algorithm and wastes setup spend.
Don't kill before learning phase exits. Learning phase = ~50 conversions in 7 days per ad group. If you can't hit that at current budget, lower the optimization event (Complete Payment → Initiate Checkout → Add to Cart) or raise the budget. Killing while in learning resets the algorithm and wastes setup spend.
Don't kill before Smart Bidding exits learning. Learning phase = 30 conversions in 30 days per campaign for tCPA / tROAS / Maximize Conversions. If you can't hit that at current budget, switch to Maximize Clicks or Manual CPC, lower the optimization event, or raise the budget. Killing or changing bid strategy mid-learning resets it.
Don't kill before pacing stabilizes. LinkedIn has no formal learning phase, but campaigns need ~21 days of stable delivery and ~15-20 conversions/week before CPL is predictable. If you can't hit that at current budget, lower the optimization event (Lead Gen Form vs Website Conversion) or raise the budget.
Don't kill before learning phase exits. Learning phase = ~50 conversions in 7-10 days per ad set (slightly longer than Meta/TikTok because Snapchat pixel pools are thinner). If you can't hit that at current budget, lower the optimization event (Purchase → Add to Cart → View Content) or raise the budget. Killing while in learning resets the algorithm and wastes setup spend.
Don't kill before the allocator stabilizes. X's ML allocator stabilizes around 40-60 events of the optimization event per week per ad group. If you can't hit that, lower the optimization event (Purchase → Lead → AddToCart → ContentView) or raise the budget. X learning windows run longer than Meta — plan ~30 days to first stable read and hold through the 7-10 day warm-up.
Don't optimize against pixel data alone. AI surfaces are volume-limited by query frequency, so "learning" is really impression share on your intent cluster. Budget per ad group should clear 2-3× target CPA and enough impression share to read signal. Pixel undercounts ~60% (conversation gap) — judge on blended pixel + survey, not the dashboard.

CBO vs. Manual Budget

ABO for testing, CBO for scaling. ABO (ad-set/ad-group budget) forces a fair budget into every angle/audience so each generates enough signal to judge. CBO (campaign budget) lets the algorithm allocate to proven winners once you know what works.

Don't test on CBO. Launch a test on CBO and the algorithm concentrates budget on the first ad set to get early traction; the others never get a fair test, so you'll think you have one winner when you never gave the rest a chance. Test on ABO, then move proven winners to CBO to scale. (Applies to Meta, TikTok, Snapchat; Google, LinkedIn, X, and ChatGPT use the budget models below.)
Advantage+ Campaign Budget (CBO): Use when you have 3+ ad sets and want Meta to allocate budget to the best performer. Set a minimum spend per ad set if needed. Scaling only — not for testing.

Ad Set Budget (ABO): Use when testing new audiences/angles and you want equal spend across ad sets so each gets a clean read. Better for controlled experiments.
Campaign Budget Optimization: Available in TikTok. Works similarly to Meta CBO. Use when running 2+ ad groups.

Ad Group Budget: Use for controlled testing of individual audiences.
Shared Budgets: Pool budget across related campaigns. Good for search campaigns targeting similar themes.

Individual Campaign Budgets: Default and recommended for most setups. Gives you direct control over spend per campaign.
Daily Budget: Recommended for most campaigns. LinkedIn will spend up to 50% over your daily budget on high-opportunity days.

Lifetime Budget: Use for time-bound campaigns (events, promotions). LinkedIn paces spend across the campaign duration.
Campaign Budget Optimization (CBO): Use when you have 2+ ad sets proven and want Snapchat to allocate budget to top performers. Migrate to CBO after manual ABO testing has identified winning audiences.

Ad Set Daily Budget (ABO): Default for testing. Forces signal accumulation per ad set so you can read each audience hypothesis cleanly.
Ad Group Budget (ABO-style): X's default. Set budget at the ad group level so each audience hypothesis (Follower Lookalike seed, keyword stack, or list) gets a fair read.

Consolidate to scale: merge proven winners into fewer ad groups — X's thinner auction rewards concentration over fragmentation, so scaling is about density, not more ad groups.
Intent-based, not audience-based. Structure mirrors search: one ad group = one intent cluster (comparison / how-to / best-X / brand-defense), not an audience — there is no CBO-style audience allocation on ChatGPT proper.

Surface split, not CBO: allocate across surfaces (Microsoft Copilot / Google AIO / ChatGPT) rather than letting one algorithm pool budget. Treat ChatGPT proper as experimental budget, not core spend.

Launch Checklist

Pre-flight checklist before hitting publish. Do not skip steps.

Account & Tracking

Campaign Settings

Ad Set / Ad Group Settings

Ad Settings

Google Search — extra pre-launch

X — extra pre-launch

AI Answer Engine — extra pre-launch

Final Verification

Launch Day SOP

TimeframeAction
+1 hourVerify ads are delivering (status: Active). Check for disapprovals.
+4 hoursCheck spend pacing. Verify pixel events firing on live traffic.
+24 hoursReview CPM, CTR, CPC. Flag any obvious issues. Do NOT make changes yet.
+48 hoursReview conversion data (if sufficient volume). Check frequency.
+72 hoursFirst optimization window. Pause underperformers if data is clear. Still in learning phase.
GO
All checklist items verified
NO-GO
Any red items unresolved

Optimization SOP

Decision rules for managing live campaigns. Remove emotion from optimization.

Optimization Decision Table

Once delivery is confirmed, read CPM first — it's the rawest signal of whether the platform thinks your ad is worth showing, and a high CPM inflates every cost beneath it. Then work down the creative-quality signal → CTR → CPC → CVR → ROAS. This table switches with the platform selector — each platform's creative-quality signal differs (Meta reads hook / hold / ThruPlay; TikTok the 2s/6s view rate; Google Quality Score and view rate; LinkedIn video view-rate and form-fill; Snapchat swipe-up and screen time; X Aesthetic Score and view rate).

SignalThresholdDiagnosisAction
CPM (read first)> 2x benchmarkAuction pressure, weak quality ranking, audience too narrow, or creative fatigueRefresh creative or broaden audience signals before reading anything downstream — high CPM inflates CPC, CPA, and ROAS
CPM (read first)< benchmarkEfficient delivery, healthy signalGood foundation; read the rest of the funnel
Hook Rate (3s views ÷ impressions)< 20% (NG) / 25% (diaspora)First 1-2 seconds aren't stopping the scrollFix the hook — new opening line, visual, or pattern interrupt
Hold Rate (15s views ÷ 3s views)< 15% (NG) / 20% (diaspora)The middle loses peopleRewrite the middle — tighten pacing, cut slow sections
ThruPlay Completion (100% plays ÷ ThruPlays)< 25% (15s) / 15% (30s) / 8% (60s)Weak ending, drags, or video too longShorten, punch up the close, or test a shorter cut
CTR< 0.5%Creative not resonatingTest new hooks, visuals, or formats
CTR0.5-1.5%Average creativeTest variations, iterate on best performer
CTR> 2%Strong creativeScale budget, duplicate to new audiences
CPC> 2x benchmarkAudience or creative issueRefresh creative or broaden targeting
CPA> 1.3x target after 2x cycleFunnel or targeting issueReview landing page, audience, offer
CPA< target for 3+ daysWinning combinationScale 20% every 3 days
Frequency> 2.5Audience fatigueRefresh creative or expand audience
CVR (post-click)< 1%Destination OR offer problem (not the ad). Slow load, weak CTA, message mismatch — or the offer/price isn't compelling enough to convert the clickAudit the page first (message-match, mobile speed, CTA clarity). If the page is sound, the offer or price is the leak — see the Conversion Playbook (offer + sales-page reasons)
CVR (post-click)1-3%Average destination performanceTest destination variants (headline, hero, CTA, social proof, form length)
CVR (post-click)> 3%Strong destination, ad and page alignedScale traffic, protect the destination, document what works
ROAS< 1.0xLosing moneyPause and diagnose (creative, audience, landing page)
ROAS> 3.0xProfitableScale budget, test similar audiences
SignalThresholdDiagnosisAction
CPM (read first)> 2x benchmarkAuction pressure, weak creative, audience too narrow, or fatigueRefresh creative or broaden audience before reading anything downstream
2-second view rate< 15% (NG) / 18% (diaspora)Hook broken in the first 1-2 secondsRewrite the opening frame/line
6-second view rate< 8% (NG) / 10% (diaspora)Mid-creative loses peopleTighten the middle, cut slow sections
Video completion rate< 25% (15s cut)Weak ending or video too longShorten, punch up the close
CTR (destination)< 0.5%Creative not earning the clickTest new hooks, angles, formats
CTR (destination)> 2%Strong creativeScale budget, duplicate to new audiences
CPC (destination)> 2x benchmarkCreative or audience issueRefresh creative or broaden targeting
Frequency> 2.0Creative fatigueRefresh creative or expand audience
CVR (post-click)< 1%Destination or offer problem, not the adAudit the page first, then the offer/price
CPA> 1.3x target after learning exitsFunnel or targeting issueReview landing page, audience, offer
ROAS< 1.8xBelow breakevenPause and diagnose
ROAS> 2.5xProfitableScale 20% every 3-4 days
SignalThresholdDiagnosisAction
Eligibility / Ad StrengthDisapproved, or "Poor" 14 days+Policy, budget, or a weak RSA is blocking deliveryFix policy/budget; add headlines & descriptions, pin H1
Impression share (total)< 60% (commercial)Competitive or budget-starvedRaise budget or bid
Search Lost IS (Budget)> 20%Under-funded — capping out on budgetScale daily budget
Search Lost IS (Rank)> 30%Quality Score or bid too lowImprove Quality Score or raise bid
Quality Score< 7Ad – keyword – landing-page mismatchRebuild relevance (copy, keywords, LP)
CTR (Search)< 2%Copy not earning the clickRewrite headlines to mirror the query
View rate + quartiles (Video/Demand Gen)< 30%, weak 25-75% holdMid drags or ending weakRewrite the middle or trim length
CPC> 2x benchmarkCompetitive vertical or low Quality ScoreImprove Quality Score or pause
CVR (post-click)< 3% (Search commercial)Destination or offer problemAudit the page first, then the offer
CPA> 1.3x target after ~30 convFunnel or targeting issueReview LP, keywords, offer
ROAS (conv value / cost)< 2xBelow breakevenRestructure or pause
ROAS> 3xProfitableScale budget, expand keywords/audiences
SignalThresholdDiagnosisAction
CPM> $200Over-narrow targeting, weak creative, or fatigueBroaden targeting or refresh creative
Video view rate (25/50/75/100)< 30 / 15 / 8 / 5%Hook and body fail to hold attentionRewrite the intro and middle
CTR< 0.5%Hook + headline not earning the clickRewrite copy
CPC> $15Audience too narrow or weak creativeBroaden audience or improve creative
Frequency (cold)> 4Creative fatigue or saturationRefresh creative
Lead form completion rate< 8%Form too long/heavy or audience mismatchSimplify the form or tighten targeting
CVR (post-click)< 8% (Lead Gen Form) / 2% (web)Destination or offer problemAudit page/form first, then offer
Lead quality (sales feedback)< 60% "good"Wrong roles, or offer attracts tire-kickersTighten ICP or deepen the conversion event
CPL> 1.3x target after ~14 daysFull-funnel issueDiagnose targeting, offer, form
Pipeline ROAS (90-day)< 5xCPL fine but leads fail downstreamAudit sales follow-up and lead routing
Pipeline ROAS> 8xProfitable through to pipelineScale budget, expand ICP
SignalThresholdDiagnosisAction
CPM / eCPM (read first)> 2x benchmarkAuction pressure, weak creative, narrow audience, or fatigueRefresh creative or broaden audience
Swipe-up rate (Snap Ads)< 0.5% (US/UK/CA) / 0.4% (NG)Hook broken in the first 1-2 secondsRewrite the opening
Swipe-up rate (Story Ads)< 1.5% / 1% (NG)Cover tile weak or story sequence brokenRedesign the cover or story flow
Video completion / screen timeLow completion; screen time below benchmarkEnding weak or video too longShorten, punch up the close
CTR (link)< 0.5% / 0.4% (NG)Payoff not earning the clickRewrite copy
CPC / eCPSU> 2x benchmarkCreative or audience issueRefresh creative or broaden targeting
Frequency> 2.0Creative fatigueRefresh creative
CVR (post-swipe)< 0.8% / 0.6% (NG)Destination or offer problemAudit the page first, then the offer
VTC share< 30% or > 70%Below = view-through tracking broken; above = over-creditValidate tracking; cross-check MER
CPA> 1.3x target after learningFunnel or targeting issueReview landing page, audience, offer
ROAS< 1.5xBelow breakevenPause and diagnose
ROAS> 2.2x (with VTC)ProfitableScale 20% every 3-4 days
SignalThresholdDiagnosisAction
CPM (read first)> 2x benchmarkAuction pressure, Aesthetic Score penalty, narrow audience, or fatigueFix Aesthetic Score / refresh creative or broaden audience
Aesthetic ScoreBelow AverageCPM penalized, placement demotedPolish visual quality before iterating copy
3-second view rate< 15% (NG) / 20% (diaspora)Hook isn't stopping the scrollRewrite the first line/frame
6-second view rate< 15% / 20%Mid-creative loses peopleTrim or rewrite the middle
CTR (link)< 0.8% / 0.6% (diaspora)Hook + claim not earning the clickRewrite copy
CPC (link click)> 2x benchmarkCreative or audience issueRefresh creative or broaden targeting
High engagement + zero conversionsEngagement fine, conversions flatWrong objective (running Engagements, not Website Conversions)Switch the objective — the single biggest fix on X
Frequency> 2.5Creative fatigueRefresh creative or expand audience
CVR (post-click)< 2%Destination or offer problemAudit the page first, then the offer
CPA> 1.3x target after ~7-10 daysFunnel or targeting issueReview landing page, audience, offer
ROAS< 2xBelow breakevenRestructure or pause
ROAS> 3xProfitableScale budget, test similar audiences
SignalThresholdDiagnosisAction
Impression share (on intent)< 10%Surface ineligibility, low query volume, or bid too lowRefine the intent cluster or raise bid
CTR (in AI answer)< 2% (ChatGPT) / 3% (MS/Google)Copy not earning the click in the sponsored slotImprove copy relevance to the intent
CPC> 2x benchmarkAuction pressure or weak intent matchDebug the intent cluster or copy
CVR (post-click)< 3%Page pitches instead of answering the questionMake the page answer the query first, then offer
Survey AI-attribution %Plateau or decline over 30-60 daysSurface saturating or survey methodology breakingValidate the survey setup or pause
Pixel / blended CPA ratio> 0.5 (suspicious)No conversation gap — pixel over-creditingValidate pixel + survey tracking
Branded search liftFlat over 60-90 daysNo surface visibility despite spendRaise bid or refresh creative
Blended CPA (pixel + survey)> 1.3x target after 14 daysFull-funnel issueDiagnose intent, copy, offer
ROAS (blended)< 2xBelow breakevenRestructure or pause
ROAS (blended)> 3xProfitableScale on Copilot/AIO; keep ChatGPT in monitoring

Reading the Breakdowns

Delivery breakdowns show who and where the budget actually went. Pull them one at a time, and only once a segment has spent ~1x target CPA (below that, differences are noise). Before cutting any demographic, cross-check it against the client's real sales — the platform's cheapest segment isn't always the one that buys, and the platform can't see offline or off-platform revenue.

BreakdownRead for
PlacementWhich surface converts (Feed vs Reels vs Stories vs Audience Network)
AgeWhich age bands buy vs. just click
GenderWhether spend skews to a non-converting gender
Acting on it: once a placement clearly wins on low volume, switch the ad set from automatic (Advantage+) placements to manual and keep the winner. Advantage audience expansion overrides your age cap — turn expansion off to actually hold an age limit. When you cut a segment, duplicate the ad set and edit the copy rather than editing a live winner (editing resets learning).
BreakdownRead for
PlacementTikTok feed vs Pangle / Global App Bundle (Pangle usually the leak)
AgeWhich age bands buy vs. just view
GenderWhether spend skews to a non-converting gender
Acting on it: once a placement wins on low volume, switch from automatic to Select Placement (manual) and hold the winner. Targeting / audience expansion overrides your age cap — turn it off to hold a limit. Duplicate rather than edit a live winner so you don't reset learning.
BreakdownRead for
PlacementWhich surface converts (Snap Ads vs Story Ads vs Discover / content)
AgeWhich age bands buy vs. just swipe
GenderWhether spend skews to a non-converting gender
Acting on it: once a placement wins on low volume, move from automatic to manual placement and keep the winner. Audience expansion overrides your age cap — turn it off to hold a limit. Duplicate rather than edit a live winner so learning doesn't reset.
BreakdownRead for
Job functionWhich functions actually convert / return good lead quality
SeniorityWhether spend reaches decision-makers or gets absorbed by ICs
Company sizeWhich segments fit the ICP and produce pipeline
Acting on it: read the firmographic breakdowns, not age/gender. Turn Audience Expansion and the LinkedIn Audience Network off to hold your firmographic limits — both leak spend to lookalike members and off-platform placements outside your target. Duplicate rather than edit a live winner.
BreakdownRead for
AgeDemographic bands that convert vs. spend (across networks)
GenderWhether spend skews to a non-converting gender
Household incomeWhether high-value income tiers are under- or over-served
PlacementDisplay / Video / PMax only — cut junk sites & MFA placements. Not available on Search.
Acting on it: apply demographic bid adjustments / exclusions across networks; read placements only on Display, Video, and PMax (Search has no placement axis — keyword + match type is the control there). PMax can't be edited at the placement level directly — steer it with audience signals plus campaign-level exclusions (brand-safety, account-level placement, and negative-keyword lists).
Concentrate on the winning segment. Once the breakdowns name a clear winner (a placement, an age band, a firmographic slice), don't just trim the losers — duplicate the ad set / ad group scoped to the winning segment and move budget onto it. Scaling the proven segment beats spreading budget evenly across segments the data already flagged as weak. (Detailed scaling in the Scale section.)

Kill Rules

Don't kill before learning phase exits. Per-platform thresholds: Meta / TikTok ~50 events / 7 days per ad set/group; Google 30 conv / 30 days per campaign (Smart Bidding); LinkedIn ~21 days stable pacing, ~15-20 conv/week. Pausing or major edits during learning reset the algorithm and waste setup spend. See Learning Phase block below.
Kill an ad/ad set when:
• Spent 2x target CPA with zero conversions
• CTR below 0.5% after 1,000+ impressions
• CPA above 1.5x target after 50+ clicks
• CVR (post-click) below 1% after 200+ link clicks (audit the destination AND the offer before continuing spend — clicks without conversions point to the page or the offer, not the ad)
• ROAS below 1.0x after full conversion window

Scale Rules

Scale an ad/ad set when:
• CPA at or below target for 3+ consecutive days
• 5+ conversions per day (exited learning phase)
• ROAS consistently above 3x
• CVR (post-click) at or above 3% sustained over 7+ days (destination is converting, scale traffic confidently)
• Frequency below 2.0

Weekly Optimization Checklist

Common Fixes

High CPM (read first)
The rawest cost signal — fix before anything downstream, because high CPM inflates CPC, CPA, and ROAS.
1. Creative fatigue → refresh the creative (new hook, format, or concept)
2. Audience too narrow → broaden signals or go broad
3. Weak quality/relevance ranking → rebuild the creative (placement and audience tweaks won't move quality ranking)
4. Competitive auction window → accept it or shift the schedule
High CPC
1. Test broader audiences (reduce targeting restrictions)
2. Test new creative (different hooks, formats, visuals)
3. Improve ad relevance score / quality ranking
4. Test different placements (Stories, Reels often have lower CPC)
Low CTR
1. Rewrite hooks (make the first line more compelling)
2. Use more eye-catching visuals (faces, contrast, motion)
3. Test video if only running static images
4. Make the CTA clearer and more urgent
High CPA
1. Audit the landing page (speed, copy, form length)
2. Tighten audience targeting or test new segments
3. Test a stronger offer (discount, free trial, bonus)
4. Ensure conversion event is correct (not over-counting or under-counting)
5. Audit objective vs funnel: if running Traffic objective with a checkout destination and pixel installed, switch to Sales objective. Single biggest CPA reduction available without changing creative or audience.
Frequency Creep
1. Refresh creative (new visuals, hooks, formats)
2. Expand audience size (broaden targeting or add new segments)
3. Set frequency caps (if the platform allows)
High CPM (read first)
1. Creative fatigue → refresh the creative, or Spark a fresh organic post
2. Audience too narrow → broaden signals or go broad
3. Competitive auction window → accept it or shift the schedule
(TikTok has no quality ranking — the fix is the creative and the audience.)
High CPC (destination)
1. Broaden the audience (reduce restrictions)
2. Test native, UGC, trend-led creative
3. Strengthen the first 2 seconds — the 2-second view rate drives cost
Low CTR (destination)
1. Rewrite the hook (first 1-2 seconds)
2. Native, sound-on, captioned
3. Clearer CTA and on-screen text
High CPA
1. Audit the destination (landing page or WhatsApp flow)
2. Stuck in learning? Lower the optimization event (Complete Payment → Initiate Checkout → Add to Cart) or raise budget
3. Test a stronger offer
4. Confirm the pixel and events fire
Frequency Creep
1. Refresh creative — Spark new winners from organic
2. Broaden the audience
3. Rotate 3-4 fresh ads
High CPC / Low Quality Score
1. Raise Quality Score — tighten ad–keyword–landing-page relevance and mirror the query in the headline
2. Add negative keywords from the search-terms report
3. Test exact/phrase match over broad
4. Improve the landing page experience
Low CTR (Search)
1. Mirror the keyword in H1/H2
2. Add RSA headlines and pin the strongest
3. Add assets (sitelinks, callouts, structured snippets)
4. Raise Ad Strength to Good/Excellent
High CPA
1. Add negatives; cut irrelevant search terms
2. Check bidding (set tCPA realistically; Smart Bidding needs ~30 conv / 30 days)
3. Point each ad group at its own intent-matched landing page
4. Pause weak keywords and assets
Lost Impression Share
1. Lost IS (Budget) high → raise the daily budget
2. Lost IS (Rank) high → improve Quality Score or raise the bid
3. Check Auction Insights for competitor pressure
High CPM
1. Broaden over-narrow targeting — LinkedIn CPMs spike on tiny audiences
2. Refresh creative
3. Accept the premium — judge on cost per result, not CPM
Low CTR
1. Rewrite the hook for a senior, skimming buyer
2. Lead with the outcome or a number
3. Test document/carousel or video over single-image
Low Form-Fill / High CPL
1. Shorten the Lead Gen Form (fewer fields, prefilled)
2. Tighten the ICP (seniority, function, company size)
3. Match the offer to the buyer's stage
Weak Pipeline ROAS
1. Get sales feedback on lead quality
2. Deepen the conversion event (demo over ebook)
3. Fix routing and follow-up speed
High CPM / eCPM
1. Refresh creative
2. Broaden the audience
3. Accept the window — Snap CPMs are already the lowest of the major platforms
Low Swipe-Up Rate
1. Rewrite the first 1-2 second hook
2. Native, vertical, sound-on
3. For Story Ads, redesign the cover tile
High CPC / eCPSU
1. Broaden the audience
2. Test new creative
3. Strengthen the payoff before the swipe
High CPA / VTC Issues
1. Audit the landing page
2. Check VTC share (40-60% healthy); below 30% means tracking is broken
3. Test a stronger offer
4. Confirm the pixel and events fire
High CPM / Aesthetic Score
1. Fix the Aesthetic Score first — polish visual quality; it penalizes CPM and placement
2. Refresh creative
3. Broaden the audience
Low CTR (link)
1. Rewrite the hook and the claim
2. Read link clicks, not total engagements
3. Native, timeline-feeling creative
High CPA / Wrong Objective
1. Running Engagements with a conversion goal? Switch to Website Conversions — the single biggest fix on X
2. Audit the landing page
3. Confirm the pixel and events fire
Frequency Creep
1. Refresh creative
2. Broaden the follower-lookalike seed / keyword stack
3. Rotate fresh ads
Low Impression Share
1. Refine the intent cluster (tighter queries and topics)
2. Raise the bid
3. Check surface eligibility and geo — ChatGPT proper isn't buyable from NG
Low CTR (in the AI answer)
1. Make the copy read like a credible recommendation, not a banner
2. Match the answer to the query intent
3. Test the buyable surface (Microsoft / Google) where ChatGPT proper isn't eligible
High Blended CPA
1. Make the landing page answer the question before it pitches
2. Validate survey attribution (pixel misses ~60% — the conversation gap)
3. Refine the intent cluster or copy
Attribution Looks Wrong
1. Pixel/blended CPA ratio above 0.5 → pixel over-crediting; trust the survey
2. Add or repair the post-purchase survey field
3. Watch branded search lift as the downstream signal

Learning Phase

Do NOT make significant edits during learning phase. Killing while in learning resets the algorithm and wastes setup spend.

Per-platform thresholds:
Meta: 50 optimization events in 7 days per ad set. Workaround: lower optimization event (Purchase → InitiateCheckout → AddToCart) or raise budget.
TikTok: ~50 conversions in 7 days per ad group. Workaround: lower optimization event (Complete Payment → Initiate Checkout → Add to Cart) or raise budget.
Google: 30 conversions in 30 days per campaign for Smart Bidding (tCPA, tROAS, Maximize Conversions). Workaround: switch to Maximize Clicks or Manual CPC, lower optimization event, or raise budget.
LinkedIn: No formal learning phase, but ~21 days stable delivery + ~15-20 conversions/week needed for predictable CPL. Workaround: lower optimization event (Lead Gen Form vs Website Conversion) or raise budget.

What resets learning: Budget changes >20%, audience changes, optimization event changes, creative swaps, bid strategy changes, pausing for 7+ days.

Reporting Templates & Benchmarks

Standardize how you report to clients.

KPI Benchmarks by Platform

MetricGoodAveragePoor
CTR> 2%0.5-2%< 0.5%
CPC< $1$1-2> $2
CPM< $10$10-15> $15
CPA (Lead)< $15$15-50> $50
ROAS (eComm)> 4x2-4x< 2x
CVR> 5%1-5%< 1%
MetricGoodAveragePoor
CTR> 1.5%0.5-1.5%< 0.5%
CPC< $0.75$0.75-1.50> $1.50
CPM< $8$8-15> $15
CPA< $15$15-40> $40
CVR> 3%1-3%< 1%
6s VTR> 15%8-15%< 8%
MetricGoodAveragePoor
CTR (Search)> 5%2-5%< 2%
CTR (Display)> 0.5%0.1-0.5%< 0.1%
CPC (Search)< $2$2-5> $5
Quality Score8-105-71-4
CPA< $25$25-75> $75
ROAS> 4x2-4x< 2x
MetricGoodAveragePoor
CTR> 0.8%0.3-0.8%< 0.3%
CPC< $5$5-12> $12
CPM< $30$30-60> $60
CPL (Lead Form)< $50$50-150> $150
Form Fill Rate> 15%5-15%< 5%
InMail Open Rate> 50%30-50%< 30%
MetricGoodAveragePoor
Swipe Up Rate (Snap Ads)> 1%0.5-1%< 0.3%
Swipe Up Rate (Story Ads)> 2.5%1.5-2.5%< 1%
CTR> 1.5%0.5-1.5%< 0.4%
CPC< $0.75$0.75-1.50> $1.50
CPM< $8$8-15> $15
CPA< $20$20-50> $50
CVR (post-swipe)> 2%0.8-2%< 0.5%
VTC share of conversions40-60%30-70%< 30% or > 70%
Frequency (cold)< 1.81.8-2.2> 2.2
Benchmarks are directional, not absolute. Industry, audience, offer, and creative quality all shift these ranges. Use your client's historical data as the primary benchmark after 30 days.

Platform Report Column Setup

The diagnosis table only works if Ads Manager shows the right columns. Build a saved custom column set once and reuse it for every read so the numbers stay comparable. The set below switches with the platform selector — each platform names its columns differently, so use the one for the account you're reading.

In Meta Ads Manager: Columns → Customise Columns, add the set below, tick Save as preset, name it "MIA Read-the-Funnel".

MIA META COLUMN SET (funnel-read order) delivery | amount spent | budget | results | purchases | purchase ROAS | adds to cart | leads | cost per result | reach | impressions | CPM | hook rate | hold rate | thruplay completion rate | frequency | results ROAS | clicks (all) | CTR | cost per click (CPC) | quality ranking | landing page views | cost per landing page view
Notes. Hook rate, hold rate, and ThruPlay completion usually aren't default columns — add them as custom metrics (Customise Columns → Create Custom Metric): hook rate = 3-second plays ÷ impressions; hold rate = 15-second (or ThruPlay) plays ÷ 3-second plays; ThruPlay completion = 100% plays ÷ ThruPlays. Quality ranking is only in the campaign-level view, not the placement/age breakdowns. Use the same saved set for every scheduled read and the weekly report.

In TikTok Ads Manager: on the campaign table open Custom Columns (or build a Custom Report under Reporting), add the set below, and save it as a template named "MIA Read-the-Funnel".

MIA TIKTOK COLUMN SET (funnel-read order) cost | budget | conversions | cost per conversion | complete payment ROAS | adds to cart (paid) | leads | reach | impressions | CPM | 2-second video view rate | 6-second video view rate | video views at 100% | frequency | clicks (destination) | CTR (destination) | CPC (destination) | landing page views | cost per landing page view | conversion rate
Notes. TikTok has no ThruPlay or quality ranking (those are Meta-only). Its hook and hold signals are the 2-second and 6-second video view rate, with video completion rate as the end signal — read those where you'd read hook, hold, and ThruPlay on Meta. Always use the destination variants of clicks, CTR, and CPC (not the "all" or click-to-play variants). Complete payment ROAS is the ecommerce ROAS; swap in the ROAS that matches your optimization event.

In Google Ads: on the Campaigns table open Columns → Modify columns, add the set below, then Save column set as "MIA Read-the-Funnel".

MIA GOOGLE COLUMN SET (funnel-read order) cost | budget | impressions | clicks | CTR | avg. CPC | CPM | conversions | conv. rate | cost / conv. | conv. value / cost (ROAS) | all conv. | search impr. share | search lost IS (budget) | search lost IS (rank) | quality score | ad strength | view rate (Video/Demand Gen) | video played to 25% / 50% / 75% / 100% (Video/Demand Gen)
Notes. Available columns change by campaign type. For Search, read Search impression share and Quality Score as the auction-strength signal (there is no hook rate). For Video and Demand Gen, view rate + video played to 25/50/75/100% are the creative signals. CPM matters on Video/Display, less on Search. There is no ThruPlay or quality ranking — those are Meta-only.

In LinkedIn Campaign Manager: open the Columns dropdown above the performance chart, pick the metrics below (a mix of Performance, Conversions & Leads, and Video views), and save them as a custom set named "MIA Read-the-Funnel".

MIA LINKEDIN COLUMN SET (funnel-read order) spend | budget | impressions | clicks | CTR | average CPC | CPM | frequency | key results | cost per result | conversions | cost per conversion | conversion rate | leads | cost per lead | lead form completion rate | video views | video views at 25% / 50% / 75% / 100% | video completion rate | cost per video view
Notes. LinkedIn has no hook rate, hold rate, ThruPlay, or quality ranking. Video views + video completion rate are the creative signals. For Lead Gen Form campaigns, lead form completion rate is the key funnel gate — read it where you'd read CVR. CPMs run high on LinkedIn; judge efficiency on cost per result and cost per lead, not CPM.

In Snapchat Ads Manager: open the columns menu on the campaign table, add the set below, and save it as a custom view named "MIA Read-the-Funnel".

MIA SNAPCHAT COLUMN SET (funnel-read order) spend | budget | impressions | paid reach | frequency | eCPM | swipe ups | swipe up rate | eCPSU (cost per swipe up) | results | cost per result | view-through conversions | VTC share (% of total conv) | purchases | purchases ROAS | adds to cart | 2-second video views | 15-second video views | video completion rate | screen time (avg)
Notes. On Snapchat the swipe up is the click equivalent — read swipe up rate and eCPSU where you'd read CTR and CPC. The creative-quality signal is 2-second and 15-second video views plus average screen time (no ThruPlay or quality ranking). View-through conversions carry more weight here than on other platforms; keep an eye on the CTC/VTC split.

In X Ads Manager: use the metric/column customizer on the campaign table, add the set below, and save it as a custom view named "MIA Read-the-Funnel".

MIA X COLUMN SET (funnel-read order) spend | budget | impressions | reach | frequency | CPM | engagements | engagement rate | link clicks | CPC (link click) | CTR (link click) | video views | video completion rate | 25% / 50% / 75% / 100% video views | results | cost per result | conversion rate | ROAS
Notes. X has no ThruPlay or quality ranking (those are Meta-only). Read the 3-second and 6-second view rates plus the video quartiles as the hook and hold signals. X also has an Aesthetic Score that penalizes CPM and placement for low-quality visuals — fix it before iterating copy. Separate link clicks from total engagements — optimize on link-click CPC and CTR, not the inflated engagement number.

ChatGPT proper isn't buyable from Nigeria yet — treat it as monitor-and-prepare. The buyable AI-answer layer runs through Microsoft Ads and Google Ads (AI Overviews); read those in their own Ads Managers using the Google-style column set. Across every AI surface the truth signal is your post-purchase survey, not the pixel. Build the read below in your analytics + survey tool.

MIA AI-ANSWER-ENGINE READ (across surfaces; survey-attributed, not pixel-only) surface impression share (how often you appear in AI answers) | click rate in AI answer | post-click CVR | pixel-attributed CPA | survey-attributed CPA ("heard about us from ChatGPT/AI" %) | blended CPA | branded search lift | referral sessions from AI referrers (chatgpt.com / copilot / gemini / perplexity.ai)
Notes. Pixel-only attribution loses ~60% of true conversions on AI-answer surfaces (the conversation gap — the buyer returns hours or days later via direct or branded search). Always pair the pixel with a post-purchase survey field and watch branded search lift as the downstream signal. For the buyable layer, build the column set inside Microsoft Ads / Google Ads (mirror the Google set). Read monthly for surface mix; ChatGPT proper stays in monitoring posture until NG access opens.

Reading by Level

The column set is one view. You read the decision table across levels — set the same saved columns at each level and know which signal lives where. This switches with the platform selector.

LevelWhat to read here
CampaignBudget and pacing; quality ranking (pull from the campaign-level export — it is NOT in the placement/age breakdowns)
Ad setCPM, frequency, CPC, audience and placement performance; pull the Platform/Placement/Device breakdown from Day 3
AdHook rate, hold rate, ThruPlay completion, CTR — the creative signals live here
BreakdownsPlacement, device, age/gender, region — cut the segments that spend without converting
LevelWhat to read here
CampaignBudget and pacing — run tests on ad-group budgets, not campaign budget (CBO concentrates spend on the first ad group)
Ad groupCPM, frequency, CPC, CVR, CPA, audience performance
Ad2-second and 6-second view rates, video completion rate, CTR — the creative signals
BreakdownsAge, placement, device — cut the segments that spend without converting
Level / TabWhat to read here
CampaignBudget, impression share, Search Lost IS (Budget) and (Rank), CPM (Video/Display)
Ad groupQuality Score, CTR, CPC, keyword performance
Ad / AssetAd Strength, RSA and PMax asset performance ratings, video quartiles
Search terms tabThe actual queries users typed — add negatives, harvest new keywords (weekly)
Landing pages tabCVR by page, mobile speed, message-match
Auction insightsCompetitor overlap and impression share vs rivals
DemographicsAge, gender, household income, parental status — layer with intent, don't target on alone
LevelWhat to read here
CampaignCPM, CPL, spend pacing, and pipeline ROAS (the 90-day downstream signal)
AdCTR, video view-rate quartiles, video completion per variant — the creative signals
Lead Gen FormLead form completion rate, cost per lead — the key funnel gate
DemographicsCompany size, seniority, function, industry breakdowns; lead quality comes from sales feedback, not the dashboard
LevelWhat to read here
CampaignBudget and spend pacing
Ad setCPM/eCPM, swipe-up rate, CPC/eCPSU, frequency, CVR, CPA
Ad2-second and 15-second video views, video completion rate, screen time — the creative signals
Format splitSnap Ads vs Story Ads vs Commercials — each has different swipe-up thresholds
AttributionVTC share (40-60% of conversions is healthy; below 30% = tracking broken, above 70% = over-credit)
LevelWhat to read here
CampaignBudget and spend pacing
Ad groupCPM, CTR, CPC, frequency, CPA — budgets are set here, not at a campaign toggle
Ad / creativeAesthetic Score (per creative — it penalizes CPM and placement), 3s/6s view rates, video quartiles
AudienceFollower-lookalike seed, keyword stack, engagement rate
LevelWhat to read here
SurfaceChatGPT (monitor-only for NG), Microsoft Ads, Google AI Overviews — read each surface separately
Intent clusterImpression share, CPM, CTR, CPC per cluster (the Microsoft/Google buyable layer)
Ad / copy variantCTR in the AI answer, post-click CVR
AttributionSurvey AI-attribution % (the truth signal), pixel vs blended CPA ratio (0.3-0.5 healthy), branded search lift

Weekly Report Template

WEEKLY PERFORMANCE REPORT — {{CLIENT}} Platform: ___________ Date Range: ___________ to ___________ SUMMARY Total Spend: $___________ Impressions: ___________ Clicks: ___________ CTR: ___________% CPC: $___________ Conversions: ___________ CPA: $___________ ROAS: ___________x (if applicable) TOP PERFORMERS Best campaign: ___________ Best creative: ___________ Best audience: ___________ PLACEMENT / DEMOGRAPHIC READ (axis: age + gender for Meta/TikTok/Snapchat/Google; firmographics — job function/seniority/company size — for LinkedIn) Winning placement: ___________ Winning demographic / firmographic: ___________ Segment to cut (cross-checked vs. real sales): ___________ KEY OBSERVATIONS 1. ___________ 2. ___________ 3. ___________ NEXT ACTIONS 1. ___________ 2. ___________ 3. ___________

Monthly Report Template

MONTHLY PERFORMANCE REPORT — {{CLIENT}} Platform: ___________ Month: ___________ MONTH SUMMARY Total Spend: $___________ Total Conversions: ___________ Avg CPA: $___________ Avg ROAS: ___________x Total Revenue Attributed: $___________ MONTH-OVER-MONTH TRENDS Spend: $___ → $___ (___% change) CPA: $___ → $___ (___% change) ROAS: ___x → ___x (___% change) Conversions: ___ → ___ (___% change) TOP CAMPAIGNS 1. ___________: CPA $___, ROAS ___x 2. ___________: CPA $___, ROAS ___x 3. ___________: CPA $___, ROAS ___x TOP CREATIVES 1. ___________: CTR ___%, CPA $___ 2. ___________: CTR ___%, CPA $___ AUDIENCE INSIGHTS Best performing: ___________ Worst performing: ___________ Recommended changes: ___________ PLACEMENT / DEMOGRAPHIC READ (axis: age + gender for Meta/TikTok/Snapchat/Google; firmographics — job function/seniority/company size — for LinkedIn) Winning placement: ___________ Winning demographic / firmographic: ___________ Segment cut or concentrated (cross-checked vs. real sales): ___________ NEXT MONTH RECOMMENDATIONS Budget: $___________ Key priorities: 1. ___________ 2. ___________ 3. ___________

Client-Ready Language Bank

Performance Improved
"Performance improved week-over-week, with CPA decreasing [X]% from $[old] to $[new]. This was driven by [creative refresh / audience expansion / landing page changes]." "We saw strong results from [campaign name], which delivered [X] conversions at $[CPA], [X]% below our target. We recommend scaling this audience."
Performance Declined
"CPA increased [X]% this week, which we attribute to [audience fatigue / increased competition / creative decay]. Our plan is to [refresh creative / test new audiences / adjust bids]." "We recommend reallocating budget from [underperforming campaign] to [winning campaign] to improve overall efficiency."
Recommending Changes
"Based on the data, we recommend [increasing/decreasing] budget by [X]% and shifting focus to [audience/campaign]. This should [reduce CPA / improve ROAS] based on current trends." "Creative fatigue is setting in on [campaign]. Frequency has exceeded [X]. We recommend refreshing creative this week to maintain performance."

Scaling Playbook

Systematic scaling without breaking what works.

Scaling Readiness Checklist

Segment Scaling (Concentrate on the Winner)

The breakdowns in the Optimize step name the winning segment. Scaling means moving budget onto that proven segment, not spreading it evenly across segments the data already flagged as weak.

Horizontal Scaling (New Audiences)

Vertical Scaling (More Budget)

Creative Scaling

Scaling Budget Calculator

20% increase every 3 days. Monitor CPA after each step.

DayDaily Budget% of Target