Meta Campaign Setup Guide
Step-by-step for setting up a Meta ad campaign with ThriveCart checkout. Originally built for CIB lead magnet campaign — examples reference that campaign but steps apply to any Meta + ThriveCart funnel.
Before starting, you need:
- Facebook personal account
- Access to your Facebook page
- Ad copy (e.g.,
wip/ad-creative-cib-batch-001.md) - Ad images (individual HTML files, screenshot at full size)
- Live landing page URL
- ThriveCart product configured with checkout, bumps, and OTOs
Step 1: Confirm Business Manager Access
- Go to business.facebook.com
- If no account exists → Create Account → "Creating Your Plan" → your business email → fill details
- If you have one → confirm your Facebook page appears under Pages in the left sidebar
Step 2: Confirm Ad Account + Payment
- In Business Manager → gear icon (Settings) → Ad Accounts (left menu)
- If an ad account exists → note the name
- If not → Add → Create new → "Practice Builders Ads" → Eastern timezone → USD → Create
- Go to Payment Settings → add a credit card
Step 3: Find Your Meta Pixel
The pixel tracks what happens on your website after someone clicks an ad.
- Go to business.facebook.com
- Click hamburger menu (☰) top left
- Under "Data Sources" click Pixels (may say "Datasets")
- If you have a pixel → click it → note the Pixel ID (long number)
- If not → click Add → name it "Practice Builders Pixel"
Your Pixel ID: 1708795119368065
Step 4: Install the Pixel
The pixel is already baked into every HTML file. When you paste HTML into Convertri, the pixel is included. No need to add it separately in Convertri Custom Scripts.
Pixel events by page:
| Page | URL | PageView | Lead | Purchase |
|---|---|---|---|---|
| Homepage | thepracticebuilders.ai | ✓ | ||
| Opt-in | thepracticebuilders.ai/cib | ✓ | ||
| CIB Thank-you | thepracticebuilders.ai/cib-thank-you | ✓ | ✓ | |
| Sales page | thepracticebuilders.ai/the-build | ✓ | ||
| Build Thank-you | thepracticebuilders.ai/build-thank-you | ✓ | ✓ ($100) | |
| CIB Delivery | thepracticebuilders.ai/cib-delivery | ✓ | ||
| Practice Brain Delivery | thepracticebuilders.ai/practice-brain-delivery | ✓ | ||
| Quick-Start | thepracticebuilders.ai/practice-brain-quick-start | ✓ | ||
| Terms | thepracticebuilders.ai/terms | ✓ |
Step 5: Verify the Pixel Works
- Install Meta Pixel Helper (Chrome extension) from the Chrome Web Store
- Visit each page from the table above
- Click the Pixel Helper icon in toolbar
- Each page should show green checkmark + "PageView"
cib-thank-youshould also show "Lead"build-thank-youshould also show "Purchase" with value $100
If it shows errors → the HTML may need to be re-pasted into Convertri (pixel was added after initial paste).
Step 6: Verify Your Domains in Meta Business Manager
Meta requires domain verification to properly attribute conversion events (Lead, Purchase) back to your ads. Without this, your pixel may fire correctly but Meta won't report the conversions in Ads Manager.
Every domain that has a pixel event firing on it must be verified.
- Go to Meta Business Suite → https://business.facebook.com/settings/owned-domains
- Click Create a Domain
- Enter your domain (e.g.,
thepracticebuilders.ai) - Select DNS Verification
- Copy the TXT record Meta provides
- Go to your DNS manager (Convertri if it controls nameservers, or your domain registrar) and add a TXT record:
- Host: @
- Value: paste the TXT record from Meta
- TTL: Automatic
- Back in Meta, click Verify (allow 10-15 minutes for DNS propagation if it doesn't verify immediately)
- Repeat for every domain in your funnel that fires pixel events
Domains for this campaign:
| Domain | Pixel Events | Verified? |
|---|---|---|
thepracticebuilders.ai | PageView, Lead, Purchase | |
52aiskills.com | PageView, Purchase (OTO) |
Check this in Events Manager after verification:
- Go to https://business.facebook.com/events_manager
- Select your pixel
- Confirm events are appearing from all verified domains
Step 6B: Configure ThriveCart Pixel Settings
If your funnel uses ThriveCart for checkout, configure these settings so Meta receives accurate purchase data. Without these, purchase events may not attribute correctly to your ads.
Combined Purchase Events
By default, ThriveCart fires a separate Purchase event for each transaction step (main product, bump, OTO1, OTO2). This inflates your purchase count in Meta — one buyer who takes the full funnel looks like 4 purchases. Fix this so Meta sees one Purchase event per buyer with the total cart value.
- In ThriveCart, go to Settings → Tracking & Analytics (or the product's pixel settings)
- Find the option to combine purchase events (may be labeled "Send single purchase event" or similar)
- Enable it — this sends one Purchase event with the total cart value after the buyer completes the checkout flow
- Verify: Make a test purchase through the full funnel. In Meta Events Manager, you should see one Purchase event with the total dollar amount, not separate events per step.
CAPI (Conversions API / Server-Side Tracking)
Browser-based pixel tracking is unreliable — ad blockers, iOS privacy changes, and cookie restrictions all reduce what Meta sees. CAPI sends purchase events server-to-server, bypassing browser limitations.
- In ThriveCart, go to Settings → Tracking & Analytics (or the product's pixel settings)
- Find the Conversions API or CAPI section
- Enter your Meta access token — generate this in Meta Business Suite:
- Go to Events Manager → select your pixel
- Click Settings → scroll to Conversions API
- Click Generate access token and copy it
- Set the override source URL to the domain your ads point to (e.g.,
https://52aiskills.com). This tells Meta the purchase came from your ad landing page, not fromthrivecart.com. - Verify: After a test purchase, check Events Manager. The Purchase event should show as "Server" or "Browser & Server" in the connection method column, not just "Browser."
Why This Matters
| Without these fixes | With these fixes |
|---|---|
| One buyer = 4 purchase events | One buyer = 1 purchase event |
| Purchase count inflated, ROAS misleading | Accurate buyer count and ROAS |
| Browser-only tracking, events lost to ad blockers | Server-side backup catches missed events |
| Purchase attributed to thrivecart.com domain | Purchase attributed to your ad landing page |
Do this before launching any Meta campaign that uses ThriveCart for checkout.
Step 7: Create the Campaign
- Go to adsmanager.facebook.com
- Click green + Create button
- Choose Leads objective
- Look for "Create campaign manually" — click it. If you don't see it, Meta may force Advantage+ (see note below).
- Campaign name: CIB Lead Magnet — The Build
- Budget: $20/day (Campaign budget)
- Click Next
Note on Advantage+: Meta may not let you turn off Advantage+ for audience and placements. Use the Controls section to set hard boundaries instead (see Step 7).
Step 8: Set Up the Ad Set
- Ad set name: Broad — Professional Services
Conversion:
- Conversion location: Website
- Conversion event: Lead (from your pixel dropdown — visit cib-thank-you first if Lead doesn't appear)
- Cost per result goal: None
Schedule:
- Start: Tomorrow at midnight (or your preferred time)
- End: April 20, 2026 (event start date)
Audience — Controls (hard boundaries, Advantage+ won't go beyond these):
- Location: United States
- Minimum age: 25 (Meta's minimum — your audience skews older but this is the floor)
- Click "Show more controls" if needed to access age
Audience — Suggest an audience (suggestions for Meta to optimize toward):
- Age: 35 - 65+
- Gender: All
- Detailed targeting — add these as Interests:
- Accounting (business & finance)
- Financial accounting (business & finance)
- Financial plan (investing)
- Management consulting (business & finance)
- Small business (business & finance)
- Tax preparation (accounting)
Placements:
- Advantage+ placements will be on — that's fine
- Go to Account controls → Placement controls → toggle on "My business can only advertise on specific placements"
- Exclude (check these): Audience Network native, Audience Network rewarded videos, Facebook Marketplace, Messenger Stories, Threads feed
- Leave unchecked (keep active): Facebook right column
- Important: If this causes a "Target rule label" error at publish, turn the account-level placement control back off. The error comes from a mismatch between account controls and ad creative assets.
- Click Next
Step 9: Create the Ads
Getting the Images Right
Ad images are in wip/ad-images/. Each ad has its own standalone HTML file at native 1080x1080 resolution.
To screenshot an ad image:
- Open the HTML file in Chrome (e.g.,
ad-images/ad1-time-sink.html) - Press Ctrl+Shift+I to open DevTools
- Press Ctrl+Shift+P to open the command menu
- Type "screenshot" → select "Capture full size screenshot"
- PNG saves to Downloads — it will be 2160x2160 on a 2x display. That's fine, Meta accepts it.
Vertical images (1080x1920 for Stories/Reels): Each ad also has a -vertical.html version. Same screenshot process.
Image files:
| Ad | Square | Vertical |
|---|---|---|
| Ad 1 — Time Sink | ad1-time-sink.html | ad1-time-sink-vertical.html |
| Ad 2 — Things Slipping | ad2-rolling-items.html | (create vertical if needed) |
| Ad 3 — AI Power User | ad3-free-ai-skill.html | (create vertical if needed) |
| Ad 4 — Relationship Erosion | ad4-autopilot.html | (create vertical if needed) |
| Ad 5 — Proposal Prep | ad5-ugc-quote.html | (create vertical if needed) |
Creating Each Ad
For the first ad:
- Ad name: CIB — Time Sink
- Identity: Facebook Page = Kathryn H Brown Creating Your Plan, Instagram = thekathrynbrown
- Partnership ad: Off
- Upload square image → upload vertical image for vertical placement
- Crop screen: verify all three slots (square, vertical, horizontal) look correct
Text — turn off ALL Advantage+ text generation:
- Under "Advantage+ creative text generation" for primary text → uncheck all, toggle off "Tailor variations to personas"
- Under "Advantage+ creative text generation" for headlines → uncheck all
Enhancements — turn off everything:
- Translate text: Off
- Media enhancements: Off
- Essential enhancements: Off (optional but recommended — prevents Meta from auto-cropping/adjusting your designed images)
- AI image generation: Can't uncheck but won't generate if it says "No AI-generated images available"
Destination:
- Website URL:
https://thepracticebuilders.ai/cib
Ad copy for all 5 ads (from ad-creative-cib-batch-001.md):
| Ad | Primary Text Hook | Headline |
|---|---|---|
| 1 — Time Sink | "Twenty minutes of scrolling through email threads before a client call..." | Free AI Skill — Client Intelligence Brief |
| 2 — Things Slipping | "Three things slipped between client emails last month..." | Free AI Skill — Client Intelligence Brief |
| 3 — AI Power User | "You're using AI for content and summaries..." | Client Intelligence Brief — Free |
| 4 — Relationship Erosion | "There's a client on your roster right now..." | Free AI Skill for Practice Owners |
| 5 — Proposal Prep | "Before the call I paste the last few emails into my AI tool..." | Free — Client Intelligence Brief |
Description (same for all): Prep for any client call in 2 minutes. Works with any large language model.
CTA button: Learn More
Website URL (same for all): https://thepracticebuilders.ai/cib
Per-ad cleanup (do this on every ad):
- Uncheck "Multi-advertiser ads" — Meta defaults it on
- Uncheck "Crop and expand AI" on square images
- Do NOT include the landing page URL in the primary text body — it's already in the Destination field
Duplicating Ads
Fastest method: set up Ad 1 completely, publish or save as draft, then duplicate it 4 times. Each duplicate keeps all settings — just swap the image and primary text.
Step 10: Pre-Launch Funnel Test
Do this BEFORE publishing the campaign. Click through every step as a real user:
| Step | What to Test | URL | Pass? |
|---|---|---|---|
| 1 | Opt-in form loads, submit with test email | thepracticebuilders.ai/cib | |
| 2 | Redirect lands on thank-you page | thepracticebuilders.ai/cib-thank-you | |
| 3 | Thank-you page shows $50 offer with ThriveCart coupon link | thepracticebuilders.ai/cib-thank-you | |
| 4 | CIB delivery email arrives in inbox | Check email | |
| 5 | Delivery email links work — skill file downloads | thepracticebuilders.ai/cib-delivery | |
| 6 | Sales page loads, all CTAs go to ThriveCart at $100 | thepracticebuilders.ai/the-build | |
| 7 | ThriveCart checkout processes payment | kathrynhbrown.thrivecart.com/build-checkout/ | |
| 8 | ThriveCart redirects to post-purchase thank-you | thepracticebuilders.ai/build-thank-you | |
| 9 | Build delivery email arrives | Check email | |
| 10 | Practice Brain delivery page loads, skill downloads | thepracticebuilders.ai/practice-brain-delivery | |
| 11 | Quick-start guide loads | thepracticebuilders.ai/practice-brain-quick-start | |
| 12 | Terms page loads | thepracticebuilders.ai/terms |
Pixel verification (use Meta Pixel Helper Chrome extension):
| Page | Expected Events |
|---|---|
| All pages | PageView (green check) |
cib-thank-you | PageView + Lead |
build-thank-you | PageView + Purchase ($100) |
Step 11: Pre-Publish Checklist
Before hitting Publish:
- [ ] Funnel test passed — all 12 steps above
- [ ] Pixel Helper shows correct events on all pages
- [ ] All funnel domains verified in Meta Business Manager (Settings → Owned Domains)
- [ ] Budget is $20/day (not $20 total)
- [ ] Start date is correct
- [ ] End date is April 20
- [ ] Ad has correct image (square + vertical)
- [ ] Ad has correct primary text from ad creative file
- [ ] Website URL on ad is
https://thepracticebuilders.ai/cib - [ ] Pixel is selected for conversion tracking (Lead event)
- [ ] Payment method is attached
- [ ] All Advantage+ text generation is OFF
- [ ] All enhancements are OFF
- [ ] Multi-advertiser ads unchecked on every ad
- [ ] Crop and expand AI unchecked
- [ ] No URL in primary text body (URL is in Destination field only)
- [ ] No "Target rule label" errors in Verifying Your Changes
Step 12: After Publishing
Immediately after publish:
- Ad goes into Review — can take up to 24 hours
- Status will show "In Review" → wait
- If rejected → read the specific reason, fix, resubmit
Adding remaining ads:
- Duplicate Ad 1 four times within the same ad set
- For each duplicate: change the ad name, swap the image (square + vertical), replace the primary text
- Keep headline, description, destination URL, CTA the same
- Turn off Advantage+ text generation on each duplicate
First 24 hours after approved:
| Metric | Good | Action if bad |
|---|---|---|
| Impressions | Hundreds+ | If zero → still in review (wait 24 hrs) or rejected |
| CTR (link clicks) | Above 1% | Below 0.5% → hook isn't landing, pause bottom performers |
| CPL (cost per lead) | $3-8 per email | Above $12 → pause and review landing page |
| Ad rejections | None | Read rejection reason — usually personal attributes or policy |
After 48-72 hours:
- One ad will get most of the budget — that's Meta picking the winner
- Scale the winner, pause bottom 2
- If ALL ads are above $15 CPL → the problem is likely the landing page, not the ads
Troubleshooting
"Target rule label must refer to asset label" → This happens when account-level placement controls conflict with ad creative. Fix: go to Placements → Account controls → turn off "My business can only advertise on specific placements." The ad-set level Advantage+ will still exclude junk placements based on performance.
"Ad rejected" → Read the specific violation. Common: personal attributes ("Are you..."), unrealistic outcomes, trademarks. Our ads were written to avoid these. Appeal or edit the flagged line.
"No impressions" → Ad is likely in review (up to 24 hours). Check status column. "In Review" = wait. "Rejected" = see above.
"Pixel not firing" → Re-check Pixel Helper on the specific page. The pixel is in the HTML — if it's not showing, re-paste the HTML from the latest version in the repo.
"Lead event not in dropdown" → Visit thepracticebuilders.ai/cib-thank-you yourself first so the pixel fires the Lead event. Then refresh the Ads Manager dropdown.
"Spending too fast" → $20/day is the cap. If it spends by noon, that's fine — the audience is responding. Reduce to $10/day if you want to slow down.
"WhatsApp number required" → Check if Multi-advertiser ads or a WhatsApp CTA got auto-enabled. Uncheck them.
"Images too small" → Use the standalone HTML files in ad-images/. Open in Chrome, Ctrl+Shift+I → Ctrl+Shift+P → type "screenshot" → "Capture full size screenshot." On a 2x display this produces 2160x2160 which exceeds Meta's 1080 minimum.
Quick Reference
| Item | Value |
|---|---|
| Campaign | CIB Lead Magnet — The Build |
| Objective | Leads |
| Budget | $20/day |
| Start | April 8, 2026 (midnight) |
| End | April 20, 2026 |
| Landing page | thepracticebuilders.ai/cib |
| Audience controls | US, age 25+ |
| Audience suggestions | 35-65+, accounting/consulting/financial interests |
| Ads | 5 variations, 1 ad set |
| Pixel ID | 1708795119368065 |
| Pixel events | Lead on cib-thank-you, Purchase on build-thank-you |
| ThriveCart ($100) | kathrynhbrown.thrivecart.com/build-checkout/ |
| ThriveCart ($50 coupon) | kathrynhbrown.thrivecart.com/build-checkout/?coupon=TBA202650 |
Built by Kathryn Brown — Practice Builders