Meta Ads Standards
01
Every Session — Daily Scan
- ✓Every asterisked campaign is ON and spending to budget
- ✓Nothing without an asterisk is ON
- ✓Budget figures in campaign names match actual spend
Naming format:
*[NICHE] [Market] $Monthly/$Daily
e.g. *CL Indianapolis $1700/$60
- —\* = active/ON — one asterisk per market per niche, no exceptions
- —No space between asterisk and code (
CLnotCL) — breaks alphabetical sort - —No date suffix — niche + market + budget only
- —Paused client → remove asterisk immediately
| Code | Niche |
|---|---|
| CL | Concrete Leveling |
| CF / CS | Crawlspace |
| FW | Flatwork |
02
Wed + Fri Full Review
ℹRun niche-by-niche. Every line is a hard pass/fail — no skipping.
Naming & structure
- ✓One asterisk per market/niche · nothing else is ON
- ✓Budget in name matches actual spend
- ✓1 campaign per market per niche · 1 ad set per campaign · max 2 ads (B1 + B2)
- ✓Objective is Maximize Leads Through Messaging (or Conversation Starts if Leads not available yet)
- ✓Placements: Facebook only — manual, no automatic placements
Always-OFF check
- ✓Select all ads → Edit (bulk view) → primary text is not grayed out
If primary text is grayed → Advantage Plus is on somewhere. Fix:
- 1.Deselect half the ads, check again. Repeat until you find the offending ad.
- 2.Open the ad → Advantage Creative → disable every sub-toggle.
- 3.Look for trash-can icon in the media section → Related Media is on — remove it.
- ✕Advantage Plus Creative (every sub-toggle) — OFF on every ad
- ✕Related Media — Facebook re-enables this silently after duplication and edits
- ✕Multi-advertiser Ads — OFF
- ✕Text Improvements / Variations — OFF
- ✕Multiple primary texts or headlines in one ad — 1 each, no exceptions
- ✕Any Facebook recommendation prompt — always click Discard
⚡Every confirmed CPL spike we've reviewed traced back to one of the above being on. Facebook re-enables them silently.
Copy
- ✓Hook is correct for the niche — do not vary it market to market
- ✓Body references the city and specific services
- ✓City Served block is present at the end of every caption — missing it is a compliance failure
- ✓Messaging template / quick replies correct: Driveway · Sidewalk · Patio · Pool Deck
| Niche | Correct Headline |
|---|---|
| CL | Concrete Leveling Estimates |
| CF / CS | Crawlspace Repair Estimates |
| FW | New Concrete Estimates or Driveway Patio Estimates |
Datasets
- ✓Every active ad has an offline event attached
- ✓Dataset name matches the Facebook page name / market name exactly
- ✓
Offline EventandPage Namecolumns visible in Ads Manager for spot-checking
⚠You cannot bulk-assign datasets — go ad by ad.
Objective upgrade check
- ✓For any client still on Conversation Starts: duplicate their campaign → check if Maximize Leads Through Messaging is now available → if yes, switch
Final
- ✓Preview destination on each ad — confirm it lands in the correct Messenger thread
03
After Every Duplication
⚠Facebook will prompt you to accept suggested settings during duplication. Decline every single one. Click No / Discard on every prompt.
Before you duplicate
- —Pause underperforming ads first (so you can still see their data)
- —Remove the asterisk from the old campaign name
Immediately after
- 1.Rename the new campaign: asterisk back, updated budget figures, no date suffix
- 2.Delete any ads not being carried forward
- 3.Assign correct offline events to every ad — one by one, manually
- 4.Turn OFF on every ad: Related Media · Advantage Plus Creative · Multi-advertiser Ads
- 5.Verify messaging template / quick replies are correct
- 6.Publish → run bulk spot-check (primary text must not be grayed)
04
Creative Rotation
- —Two creatives per campaign: B1 and B2
- —Weekly: remove the lowest performer, test a new creative against the winner
- —Ad naming:
CL1 / CL2for concrete leveling,CS1 / CS2for crawlspace
Create a new dataset (when needed)
- 1.Business Manager → Events Manager → Connect Data → Messaging → Next
- 2.Select the Facebook page → Next → Create New Dataset → Start Integration
- 3.Business Settings → Data Sources → Datasets → find it → Connect Asset → select iFly Clients 1
- 4.Ads Manager → open each ad → select the correct offline event from the dropdown
05
Troubleshooting
| Symptom | Root Cause → Fix |
|---|---|
| Primary text grayed in bulk edit | Advantage Plus Creative is on — binary-search to find the ad, disable all Advantage toggles |
| CPL spiked 2–3× | Related Media re-enabled (often silently after an edit) — go ad by ad and turn off |
| City Served block missing | Caption overwritten or template not used — re-add closing block, re-publish |
| Wrong dataset after duplication | Duplication carries the source dataset — must reassign per-ad manually every time |
| Two asterisked campaigns in same market | Old asterisk wasn't removed before duplicating — remove it |
| Leads objective not available | Dataset not connected to the page yet — duplicate and re-check next week |
| Lost social proof on ads | Page rename or re-duplication wiped it — restore ads from the original campaign |
| Messaging template missing | Not created for this client — create quick replies before enabling any campaign |