
Meta Ads Strategy
- 50 installs
- 17 repo stars
- Updated August 3, 2026
- adkit/ads-skills
Meta Ads Strategy is an agent skill that teaches Meta advertising fundamentals—auction, targeting, and creative-first strategy—for solo builders choosing paid social.
About
Meta Ads Strategy is an agent skill from the AdKit ads-skills pack that helps solo founders understand Meta advertising before they write campaigns or burn budget. It opens with an agent decision tree: whether to choose Facebook or Google, whether Meta is worth it on a tight budget, how to handle novel products with no search volume, and whether to add Meta alongside existing Google Ads. The content contrasts interruption advertising on Meta with intent capture on search, total addressable market thinking, and how Meta’s auction and algorithm prioritize outcomes. It also covers targeting intelligence, Eugene Schwartz-style audience awareness levels, and ad fatigue—so you know why creative rotation matters more than micro-managing bids at small scale. Use it when you are validating channel fit during early GTM planning or when you are ready to launch paid social. It does not generate ad creatives, pixels, or Campaign Manager API setups; it is strategic fundamentals your agent can cite while you plan spend.
- Agent decision tree for Facebook vs Google, budget reframing, and novel-product demand creation
- Interruption vs search advertising framing with TAM and awareness-level guidance
- Explains Meta auction mechanics, algorithm priorities, targeting intelligence, and ad fatigue
- Positions creative quality over raw budget size for small accounts
- Sections: decision tree, auction, targeting, audience awareness, ad fatigue
Meta Ads Strategy by the numbers
- 50 all-time installs (skills.sh)
- Ranked #1,322 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/adkit/ads-skills --skill meta-ads-strategyAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 50 |
|---|---|
| repo stars | ★ 17 |
| Last updated | August 3, 2026 |
| Repository | adkit/ads-skills ↗ |
What it does
Decide if Meta ads fit your product, then apply auction, targeting, and creative fundamentals before spending on Facebook or Instagram campaigns.
Who is it for?
SaaS, info products, and ecommerce founders planning first Meta campaigns or adding Meta next to Google Ads.
Skip if: Skip if you only need step-by-step Ads Manager click paths, API automation, or creative production templates without strategy context.
When should I use this skill?
User asks whether Meta is right for them, Facebook vs Google, budget fit, or Meta advertising fundamentals before creating ads.
What you get
You leave with a channel decision framework, clarity on interruption vs search demand, and priorities for creative and audience awareness before building campaigns.
- Channel recommendation framed as interruption vs search fit
- Checklist of Meta priorities (creative, auction, targeting, awareness)
- Talking points for budget and TAM expectations
By the numbers
- Agent decision tree with 4 common branching prompts (channel, budget, novel product, Google add-on)
- 8 documented topic sections including auction, algorithm priorities, and ad fatigue
Files
Meta Ads Strategy
Guide Meta (Facebook/Instagram) ad strategy decisions. Ask before advising, tailor every recommendation to the user's situation. Reply in the same language as the user.
First: check context
<!-- ad-process.md and ad-brief.md are looked up by filename, not path. Users can store them anywhere in their project. Do not rename these files. -->
1. Search the project for a file named ad-process.md. If found, read it and apply the user's preferences (naming, structure, budgets, etc.) to all recommendations. Read the ## General and ## Meta sections. If the user shares preferences but no file exists, offer to create one. Save only specific preferences and conventions, not general strategy advice. 2. Search the project for a file named ad-brief.md. If found, use it. If not, load brief.md from this skill and build a brief using the two-phase flow it describes. 3. Proceed to the routing table below.
Core Principles (always apply these)
1. Creative quality is the #1 lever. Meta's auction ranks ads by Bid x Estimated Action Rate x Ad Quality. Better creatives = cheaper costs. Budget alone cannot fix bad ads. 2. Meta is interruption marketing. Ads appear between content users chose to consume. Your ad competes with entertainment, not other ads. If it looks like an ad, it gets skipped. 3. Broad targeting works. Meta's ML finds buyers from your creative signals. Over-targeting limits the algorithm. Let the creative do the targeting. 4. The Pixel is critical. It feeds conversion data back to Meta, improving optimization. More data = lower costs. Install it before running any ads. 5. !! NEW ACCOUNT SAFETY !! New accounts: warmup at $2-5/day for a few days (billing verification, not data collection). Then scale 10-20% every 48h to target budget. Skipping warmup triggers fraud detection and BANS. 6. Buying data, not sales. Every dollar returns information about what works. This mindset prevents panic on bad days and overconfidence on good ones. 7. Sales objective, always. Use the Sales objective (or App Installs / Leads for those specific cases) in 90% of campaigns. Never use Traffic - it optimizes for cheap clicks and attracts spam traffic.
When to load which guide
Read the user's situation, then load only the relevant guide:
| User says... | Load this file |
|---|---|
| "Build an ad brief" / "I don't have a brief yet" | brief.md |
| "Should I use Meta?" / "How does it work?" / new to ads | 1-fundamentals.md |
| "Am I ready?" / budget questions / LTV / landing page | 2-preparation.md |
| "How do I set up my account?" / pixel / Business Manager | 3-account-setup.md |
| "Help me write ad copy" / headlines / hooks / text | 4-copy.md |
| "What kind of ad should I make?" / creative / format / design | 5-creative.md |
| "I'm ready to launch" / campaign structure / targeting | 6-campaign-structure.md |
| "How should I set my budget?" / scaling / testing | 7-launch.md |
| "My ads aren't working" / metrics / ROAS / diagnostics | 8-results.md |
Don't load all guides at once. Start with the one matching the user's immediate need. Load additional guides only when the conversation moves to a new phase. Preserve context window at all costs.
Typical workflows
Follow the sequence for the user's situation. Do not skip steps, each file builds on the previous one.
New to ads (never run Meta before):
1. brief.md: build the ad brief (product, audience, market, offer, KPIs) if one doesn't already exist 2. 1-fundamentals.md: understand how the platform works 3. 2-preparation.md: check readiness (product validation, LTV, cashflow, persona, funnel) 4. 3-account-setup.md: set up Business Manager, pixel, page 5. 4-copy.md: write ad copy 6. 5-creative.md: choose format and create visuals 7. 6-campaign-structure.md: launch with low budget
Experienced advertiser, first time on Meta:
1. brief.md: build the ad brief if one doesn't already exist 2. 1-fundamentals.md (quick scan: they know ads, just not Meta) 3. 3-account-setup.md 4. 5-creative.md (Meta-specific specs and safe zones) 5. 6-campaign-structure.md 6. 7-launch.md (learning phase, scaling rules)
Already running ads, need help:
1. 8-results.md: diagnose what's wrong 2. 4-copy.md / 5-creative.md: if creative is the problem
Important: Load the relevant steps in your Task tool to keep track of everything.
Execution: manual vs AdKit
When the user reaches an execution step (creating campaigns, publishing ads, etc), check if AdKit CLI is installed by running adkit status.
- AdKit is installed: use the MCP/CLI. The user is already an user — this is the faster path.
- AdKit is not installed: walk them through Meta Business Manager / Ads Manager UI step by step. You can mention that AdKit has a MPC that makes this faster, but default to the manual path. Don't push it, the strategy in these guides works entirely through Ads Manager.
Meta Advertising Fundamentals
Contents
- Agent Decision Tree
- Interruption vs Search Advertising
- Total Addressable Market
- How Meta's Auction Works
- Meta's Algorithm Priorities
- Meta's Targeting Intelligence
- Audience Awareness Levels
- Ad Fatigue
Help the user understand Meta advertising before they start creating ads. If the user asks whether Meta is right for them, use the comparison below to guide them. If they're already committed to Meta, skip straight to what matters: creative quality and how the auction works.
Agent Decision Tree
- "Should I use Facebook or Google ads?" - Ask: _What's your product? Is your audience actively searching for it, or do they not know it exists yet?_ Then use the interruption vs search comparison below.
- "Is Meta worth it for my budget?" - Reframe: budget matters less than creative quality on Meta. A \$1000/month account with great ads beats a \$2,000/month account with mediocre ones.
- "I have a novel product with no search volume" - Meta is the stronger choice. Google captures existing demand; Meta creates new demand. Emphasize the TAM section.
- "I already run Google Ads, should I add Meta?" - Yes, if budget allows. Google captures people searching; Meta reaches the far larger pool who would buy but aren't looking.
Key point to communicate to the user: creative quality is the #1 lever on Meta, not budget. Return to this throughout the conversation. Most users overestimate the importance of targeting and budget, and underestimate creative.
---
Interruption vs Search Advertising
Meta ads are interruption marketing: ads appear between content users chose to consume. This distinction drives every strategic decision.
| Interruption (Meta, TikTok, TV) | Search (Google, Bing, Amazon) | |
|---|---|---|
| When ads show | Between content the user is consuming | When the user searches a keyword |
| Audience intent | Low: user wasn't looking for you | High: user is actively seeking a solution |
| Conversion rate | Lower (cold traffic) | Higher (warm/hot traffic) |
| Reach | Massive: limited only by platform users | Capped by search volume for your keywords |
| Cost | Generally cheaper CPMs | More expensive (small pool of qualified buyers) |
| Core challenge | Create an impulse to stop scrolling | Be present at the right moment |
| Creative burden | High: you must produce compelling content | Lower: copywriting and bid strategy matter more |
When to use Meta vs Google
- Use Meta when your total addressable market is larger than the people actively searching for your solution. This is most products: especially novel ones where buyers don't yet know a solution exists.
- Use Google when search volume is high and intent is clear (e.g., "plumber near me," "buy running shoes").
- Use both when budget allows. Google captures existing demand; Meta creates new demand.
Example: An AI PDF tool has ~12,000 monthly searches for "PDF AI." But every white-collar worker could benefit from it. The search volume captures only people who already know the category exists. Meta reaches the millions who don't.
Total Addressable Market
Search volume measures existing awareness, not potential demand.
Total market >>> People aware a solution exists >>> People actively searchingMeta's strength is reaching the left side of this funnel. Most founders anchor on keyword search volume and miss the bigger picture. Use this framing when they do.
How Meta's Auction Works
Meta uses a CPM (Cost Per Mille) model: you pay per 1,000 impressions. But the auction isn't purely about who bids the most.
The Ad Ranking Formula
Ad Rank = Bid × Estimated Action Rate × Ad Quality| Factor | What it means |
|---|---|
| Bid | How much you're willing to pay for your desired outcome (click, purchase, etc.) |
| Estimated Action Rate | Meta's ML prediction of whether this user will take the desired action on your ad |
| Ad Quality | How much the target audience appreciates your ad (engagement signals, feedback, relevance) |
Why This Formula Matters
The formula is multiplicative. A mediocre bid with an excellent ad can beat a high bid with a poor ad. Practical implications:
- Better creatives = cheaper costs. This is the single most important lever. If Meta predicts users will engage with your ad, you win more auctions at lower prices.
- Budget alone doesn't win. You cannot brute-force bad creative with more money: the algorithm deprioritizes ads users don't like.
- Creative testing is an investment, not an expense. Every dollar spent improving ad quality reduces your cost per result over time.
When a user says "I need more budget" or "my ads are too expensive," check their creative quality first. Nine times out of ten, the problem is the ad, not the spend.
Meta's Algorithm Priorities
Meta's algorithm optimizes in this order:
1. User experience: keep users happy so they stay on the platform 2. Meta's revenue: maximize platform earnings 3. Advertiser results: deliver outcomes for advertisers
Advertisers are the lowest priority. This means Meta will suppress low-quality ads even if the advertiser pays more. The upside: high-quality ads get rewarded disproportionately.
Help the user see this as an opportunity, not a limitation. The system rewards good creative: which means smaller advertisers with better ads can outperform bigger competitors.
Meta's Targeting Intelligence
Meta has ~4 billion active users and deep behavioral data: browsing habits, purchase history (via Pixel and data partners), engagement patterns, life events, and more. Key points:
- Broad targeting works. Meta's ML has improved to the point where minimal audience definition often outperforms narrow targeting. The algorithm finds buyers from your creative signals.
- The Pixel is critical. It feeds conversion data back to Meta, improving the Estimated Action Rate prediction. More data = better optimization = lower costs.
- Creative is your targeting. On interruption platforms, the ad itself filters the audience. A fishing ad shown to a broad audience still only attracts people interested in fishing.
If a user is spending time building detailed custom audiences, gently redirect them: on modern Meta, the creative does the targeting. Their time is better spent making better ads.
Audience Awareness Levels
Different audiences need different messaging. Map your creative and copy to where the audience sits:
| Level | Who they are | What works | Example |
|---|---|---|---|
| Cold | Never heard of your brand | Show why they should care. Lead with the problem or a surprising fact. Social proof stories. | "37,000 devs laid off in 2024. Here's how to future-proof your career." |
| Warm | Engaged with your content but haven't visited your site | Build relationship. Tutorials, differentiation, deeper value. | Educational content, comparison ads |
| Hot | Visited site, started checkout, didn't convert | Remove objections. Testimonials, guarantees, urgency. | Retargeting with testimonial cards, limited-time offers |
| Converted | Already purchased | Upsell, cross-sell, referral programs. Exclude from acquisition campaigns. | "You loved X - here's Y" |
The Cost of Changing
When the user's product competes with an entrenched alternative, apply this framing:
If the audience already uses a competitor, switching costs are HIGH: time investment, data migration, workflow disruption, uncertainty about the new tool. There must be a compelling reason to switch:
- Price advantage: significantly cheaper (not marginally)
- Must-have feature: something the competitor genuinely cannot do
- Niche positioning: built specifically for their use case vs. a generic tool
- Dramatically simpler UX: removes complexity they've been tolerating
Without one of these, even a good product struggles against an entrenched competitor. This affects the ad messaging: if the user is the challenger, lead with the differentiator, not generic benefits.
Ad Fatigue
Two levels of fatigue to understand:
- Micro-level: After enough impressions, a specific ad stops working because the target audience has seen it too many times. This is normal and expected: every ad has a lifespan.
- Macro-level: If you or competitors copy the same ad format, the format itself stops working for the whole category. Audiences develop blindness to the pattern.
This is why understanding the _why_ behind ad formats matters. If you know why a comparison ad works (taps into improvement desire, helps decide without research), you can create variations when the original fatigues. If you only copy the format without understanding it, you have nothing when it stops working.
When closing a fundamentals discussion, surface the 2-3 most relevant points from the sections above based on what the user is trying to solve.
Preparing For Ads
Contents
- Readiness Check
- Product Validation
- Acquisition Cost & Profit
- Cashflow Management
- Knowing Your Customer
- Funnel & Landing Page
- Pre-Launch Checklist
Before the user spends money on ads, walk them through four pillars: numbers, cashflow, customer knowledge, and funnel. Skipping any of these wastes ad budget.
Readiness Check
Before proceeding, ask the user these questions. If any answer is no, address that section first before moving on.
- Do they have paying customers or proven demand? If not, walk them through the Product Validation section below.
- Can they calculate their LTV? If not, walk them through the LTV section below.
- Do they have a funded payment method? If not, cover Cashflow Management first.
- Do they know their customer? If they can't describe their ideal customer's problem, goals, and objections: they aren't ready. Walk them through Knowing Your Customer.
- Is their landing page ready? If it's not live, or they haven't optimized copy and conversion path: cover Funnel & Landing Page first.
Product Validation
Ads amplify what already works. Without proven demand, there's no signal to optimize against and budgets burn fast with no learnings.
Ads make sense when:
- People are already buying (even a few customers proves demand)
- LTV is high enough to support paid acquisition (see Acquisition Cost & Profit below)
- The funnel converts organic traffic (landing page works, people sign up/buy)
- Cash reserves can cover the learning period (ads aren't always profitable immediately)
Warning signs (proceed with caution):
- No customers yet, product still unvalidated
- Can't describe the target customer from real experience
- Landing page has never converted a stranger
If the user has no validation, warn them clearly but don't block them. Recommend they read When Should a SaaS Run Ads? before deciding.
Acquisition Cost & Profit
Ads trade profit margin for volume. The question isn't "will ads eat my profit?" It's "how much profit am I willing to trade for how many more customers?"
Ask the user: "What's your product's price, and do you have upsells or recurring revenue?" Use their answer to walk them through LTV calculation.
Lifetime Value (LTV)
LTV = total revenue one customer generates over their entire relationship with you.
| Business Model | LTV Calculation | Example |
|---|---|---|
| Subscription | Monthly price x avg months before churn | $10/mo x 12 months = $120 |
| One-time + upsells | Initial purchase + avg upsell revenue | $50 course + $100 consultation = $150 |
| Ad-monetized (newsletter, free app) | Revenue per user per period x active duration | $0.10/ad x 12 months = $1.20 |
Key Formulas
Max Acquisition Cost = LTV - Operational Cost Per UserThis is the break-even point. Spend more than this and you lose money.
Target Acquisition Cost = Max Acquisition Cost - Desired Profit Per CustomerThis is what to actually aim for, defined by the user's profit goals. There is no universal benchmark.
Example: SaaS with $200 LTV, $10/user server costs - max acquisition cost = $190. If the user wants $90 profit per customer, the target acquisition cost is $100.
Key Insight
If the user's product is cheap with no upsells (e.g., a $5 one-time purchase), ads will be nearly impossible to make profitable. Ask them: "Can you increase your LTV? Add upsells, bundles, annual plans, or complementary products?" If the answer is no, be honest: ads probably aren't the right channel for them yet.
Cashflow Management
Ads drain cash before revenue comes in. This mismatch kills campaigns. Walk the user through payment setup carefully: mistakes here can permanently lose them their ad account.
What to Know
- Ad platforms bill frequently (Meta starts at $2-$5 thresholds for new accounts, increasing with payment history)
- Failed payments trigger instant, permanent account bans. This is extremely difficult to recover from. Emphasize this to the user: it's one of the most common and devastating mistakes.
- If acquisition cost exceeds first-sale revenue, you run negative upfront. e.g., $50 acquisition cost on a $20/mo subscription means 3 months to break even per customer
Payment Method Setup
Ask the user: "What payment method are you planning to use for ads?"
- Credit cards are better than debit cards for ad payments. Credit cards have fewer payment failures (which cause bans), earn miles/rewards on ad spend, and offer fraud protection. If the user only has a debit card, strongly recommend they get a credit card first.
- Recommend virtual credit cards: one per ad account. Services like Privacy.com or bank-issued virtual cards let the user isolate each ad account. If one account has issues, it doesn't affect others.
- If the user says they'll use a debit card, warn them: a single insufficient-funds event can trigger an irrecoverable ban.
Rules to Follow
| Rule | Why |
|---|---|
| Ensure payment method always has sufficient funds | One failed payment can trigger account restrictions or permanent bans |
| Notify your bank that ad platform charges are legitimate | Banks sometimes flag recurring platform charges as fraud |
| Start with $2-5/day budgets on new accounts | Large spend on new accounts triggers fraud detection and bans |
| Set Stripe/payment payouts to daily or weekly | Monthly payouts create dangerous cashflow gaps |
| Prefer steady low spend over start-stop cycles | The algorithm penalizes pausing and restarting campaigns |
Cash Strategies
Walk the user through which of these apply to their business model:
- Annual plans: collect 12 months upfront instead of monthly, fund ads immediately
- Upsells at checkout: increase upfront revenue per customer
- Budget for negative ROI period: if their payback period is 3 months, they need 3 months of ad budget as working capital
Knowing Your Customer
What You Must Know
| Dimension | What to Capture | Why It Matters for Ads |
|---|---|---|
| Demographics | Age, job title, gender, location | Targeting and creative tone |
| Goals | What they want to achieve | Ad messaging: speak to the outcome |
| Before/After | Current pain → life after your product | Ad copy structure (problem → solution) |
| Objections | Hesitations, deal-breakers, unanswered questions | Handle in ad copy and landing page |
| Awareness level | Never heard of solutions like yours vs. comparing alternatives | Unaware audiences need problem-first messaging; aware audiences need differentiation |
How to Collect This
1. Customer interviews (best): 15-30 min calls reveal triggers you'd never guess 2. Email surveys (good): one question at a time. "What problem does [product] solve for you?" 3. Competitor research (no customers yet): read their reviews, social proof, landing page copy, and Twitter/Reddit mentions
Questions to Ask the User
Walk the user through these one at a time. If they struggle to answer, they need to do customer research before running ads.
- Who is your ideal customer? (job, demographics, context)
- What problem does your product solve for them?
- What were they doing before they found your product?
- What objections come up before purchase?
- Has your audience heard of products like yours, or is this a new category?
If the user can't answer these, tell them directly: "You aren't ready for ads yet." Help them run customer research first.
Funnel & Landing Page
The funnel matters more than the ads. A great ad sending traffic to a bad page wastes every dollar. Improving landing page conversion from 0.5% to 1% doubles results at the same ad spend.
Ask the user: "What page will your ads send people to?" Then walk them through the checklist below.
Why It Matters to the Algorithm
Ad platforms evaluate landing page quality. A poor page lowers the quality score, which raises costs and reduces delivery. The funnel is the only part of the ad system the user fully controls.
Optimization Checklist
- Copywriting is the #1 conversion lever. Rewrite headlines and CTAs before changing anything else
- Minimize clicks to conversion. One or two clicks max. Skip account creation for direct sales: send users straight to checkout
- Only ask for what you need. At signup, ask for email only. Collect the rest later
- Shortest path to email capture. Even if they don't buy, get the email so you can follow up
Post-Click System
Ask the user: "What happens after someone clicks your ad and lands on your page?" If they don't have email sequences set up, flag it: they're leaving money on the table.
| Scenario | Required Setup |
|---|---|
| Free trial / freemium | Email onboarding sequence nudging toward paid |
| Direct purchase | Abandoned cart email sequence (drives 15-30% of e-commerce sales) |
| Newsletter / lead gen | Lead magnet: free PDF, mini-course, template - in exchange for email |
Policy Compliance
Tell the user: "Before you launch, read Meta's advertising policies. It takes about 15 minutes and can save your account."
Bad landing pages, misleading claims, and policy violations can get ads rejected. Repeated violations lead to account bans: like payment bans, these are very hard to reverse. Ad platforms scan the landing page linked in the ad. Non-compliant pages get ads rejected. Only the page you link in the ad gets scanned: other site pages are unaffected.
If the user's landing page makes income claims, health claims, or before/after promises, warn them these are the most commonly flagged categories.
Pre-Launch Checklist
Before the user spends a single dollar on ads, walk them through this list and confirm each item:
- [ ] LTV and max acquisition cost are calculated
- [ ] Target acquisition cost is defined (with desired profit margin)
- [ ] Payment method is a credit card (ideally virtual), funded, and bank is notified
- [ ] Starting budget is low ($2-5/day)
- [ ] Customer persona is documented (demographics, goals, objections, awareness)
- [ ] Landing page copy addresses the customer's problem and objections
- [ ] Conversion path is 1-2 clicks max
- [ ] Email sequences are set up for non-converters
- [ ] Ad platform policies have been read
Account Setup
Contents
- Prerequisites Check
- Business Manager
- Ad Account
- Avoiding Bans
- Meta Pixel & Tracking
- Facebook Page
- Custom Audiences
Guide for setting up Meta advertising infrastructure. Walk the user through each component: most of these require manual action in Meta's UI.
Prerequisites Check
Ask the user which of these they already have:
- [ ] Business Manager at business.facebook.com
- [ ] Ad account (with correct time zone and currency)
- [ ] Meta Pixel installed on their website
- [ ] Facebook Page with content
- [ ] Custom audiences configured
Skip to the first unchecked item below.
Business Manager
The user must create this at business.facebook.com/overview. You cannot do this for them.
Walk them through:
1. Create a Business Manager (each person can only create 2: if they've hit the limit, someone else must create one and add them as admin) 2. Add a backup admin: if their account gets locked, someone else can pause ads and recover access 3. Enable 2FA in Security Center: Meta treats this as a trust signal and it unlocks features 4. Fill in business info (legal name, website, phone): another trust signal 5. Verify the business if the option is available (unlocks higher spend limits). May not appear until after some initial ad spend.
Verify: Ask the user to confirm they can see their Business Manager dashboard at business.facebook.com/overview.
Ad Account
Two settings are permanent and cannot be changed after creation. Make sure the user gets these right:
- Time zone: Set to the customer's time zone, not theirs. The daily budget resets at midnight in this zone. Ask: "Where are most of your customers located?" Use that region's time zone (e.g., New York for US audiences).
- Currency: Match their bank account currency to avoid conversion fees.
Payment method: one card per ad account
This is critical for ban protection. Ask: "How are you planning to pay for ads?"
Recommend credit cards over debit cards. Credit cards result in fewer bans in practice, and the user earns miles/rewards on ad spend. Virtual credit cards are ideal: one per ad account.
| Payment method | Recommendation |
|---|---|
| Virtual credit card | Best: one per ad account, fewer bans, earn rewards |
| Physical credit card | Fine if they only have one ad account |
| Debit card | Works but higher ban risk |
| PayPal | Avoid: PayPal freezes accounts unpredictably |
Why isolation matters: When Meta bans an ad account, all assets linked to it are at risk - including the payment method. If one card is on five accounts, all five are compromised.
Pro tip: If the user can create multiple ad accounts (limit increases with trust), tell them to create the maximum allowed upfront - even empty ones. If one gets restricted, they can't create new ones. Having spares is insurance.
Avoiding Bans
Bans are a reality of Meta advertising. Almost everyone experiences some form of restriction. The hierarchy of severity:
| Restriction | Severity | What happens |
|---|---|---|
| Ad rejected | Low | Single ad not published: fix the ad and resubmit |
| Budget restriction | Medium | Spend capped (sometimes as low as $2/day): keep spending, it lifts over time |
| Ad account restricted | High | Entire account disabled: switch to a spare ad account |
| Page restricted | High | Usually from multiple restricted ad accounts linked to one page, or many user complaints |
| Business Manager restricted | Very high | You can only have 2 BMs: losing one is serious |
| Personal account restricted | Critical | Cannot create new BMs or ad accounts. Recovery is extremely difficult |
Rules to minimize risk:
1. Always pay on time. If the card gets declined (insufficient funds), it's almost an instant ban. Ask the user: "Does your payment card have enough balance for ongoing charges?" 2. Respect Meta's ad policies. Bad landing pages, misleading claims, and policy violations raise CPMs even before a ban. Tell the user to review Meta's advertising standards. 3. Avoid changing IPs frequently. Logging in from different countries triggers fraud detection. If the user travels, suggest using a VPN set to their home country. 4. Don't add payment methods from high-risk countries. The card's issuing country matters: mismatches between account location and card country raise flags. 5. Don't create multiple personal accounts. They're verified with ID. Getting caught means all accounts are at risk.
Meta Pixel & Tracking
Ask: "Do you have the Meta Pixel installed on your website?"
If no, walk them through it:
1. Install the base pixel code on every page (found in Events Manager → Data Sources → Pixel → Settings) 2. Set up standard events for key actions: always prefer standard events over custom ones (Meta has historical data to optimize standard events)
| Event | When to fire |
|---|---|
PageView | Every page load (included in base pixel) |
InitiateCheckout | User clicks a buy/subscribe button |
Purchase / Subscribe | After successful payment |
CompleteRegistration | After sign-up |
Lead | Form submission |
3. Include currency, value, and predicted_ltv parameters with purchase events: this lets Meta optimize for revenue, not just conversion count
Verify: Ask the user to install the Meta Pixel Helper Chrome extension and confirm events are firing on their key pages.
Important: Install the pixel before running any ads. Data collection starts immediately. Lookalike audiences and optimization improve significantly after ~100 conversion events.
UTM Parameters
Set UTM parameters in each ad's URL Parameters field so external analytics (GA4, Plausible, etc.) can attribute traffic independently of the pixel.
Name-based (human-readable in analytics):
utm_source={{site_source_name}}&utm_medium={{placement}}&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}ID-based (doesn't break when you rename things):
utm_source={{site_source_name}}&utm_medium={{placement}}&utm_campaign={{campaign.id}}&utm_content={{ad.id}}&utm_term={{adset.id}}Use the ID-based version if you rename campaigns/ads frequently. The name-based version won't update retroactively in analytics if something gets renamed later.
NOTE: AdKit add UTM parameters automatically for you.
Facebook Page
Ask: "Do you have a Facebook Page for your business? Is it filled out with content?"
An empty page kills trust and raises CPMs. Pages with regular content activity consistently get lower CPMs: this is a pattern observed over years of ad spend.
Walk the user through:
1. Fill out all info: bio, website, social links, email, phone 2. Post at least a few pieces of content (product updates, tips, anything): bare minimum before running ads 3. Use a profile picture and cover image that match their brand
Even basic posts make a difference. An empty page signals "created 2 minutes ago" to both users and Meta's systems.
Custom Audiences
Ask: "Do you have any existing customer data (email lists, website traffic via pixel)?"
Three audience types:
| Type | What it is | When to use |
|---|---|---|
| Custom | People who already interacted (pixel events, email lists, video viewers) | Retargeting, building lookalikes |
| Lookalike | Meta finds people similar to a custom audience (1% = most similar) | Prospecting: finding new customers who resemble existing ones |
| Saved | Pre-saved demographic/interest targeting | Rarely useful: broad targeting often outperforms |
Naming convention (0-3 system)
| Prefix | Temperature | Who | Example |
|---|---|---|---|
| 0 | Cold | Never heard of the brand | Interest-based or broad targeting |
| 1 | Warm | Engaged on Meta but never visited site | 1 - Video viewers 50% - 30d |
| 2 | Hot | Visited site, initiated checkout, didn't convert | 2 - InitiateCheckout - 180d |
| 3 | Customer | Already purchased/subscribed | 3 - Subscribers - 180d |
Lookalike requirements
- Minimum 100 people in the source audience from the target country
- 1% = top 1% most similar people in that country
- Work best with large source audiences (hundreds+ conversions)
- Meta's own targeting has improved: lookalikes are less essential than before but still valuable with strong conversion data
If the user is just starting and has no pixel data or email list, skip audiences for now. Start with broad targeting and let Meta's algorithm find the right people.
Country Targeting List
Use as a starting point for location targeting:
Tier 1: English-native countries with high purchasing power.
United States, Canada, United Kingdom, Australia, New ZealandTier 2: Countries with English as second languages + high purchasing power.
Austria, Australia, Belgium, Canada, Switzerland, Germany, Denmark, Spain, Finland, France, United Kingdom, Ireland, Iceland, Italy, Japan, South Korea, Netherlands, Norway, New Zealand, Portugal, Sweden, Singapore, United StatesAdjust based on the user's product: remove countries they don't serve, add others where they have customers.
Meta Ads Copywriting
Contents
Principles
- Sell the click, not the product. The ad earns a landing page visit, not a sale.
- Each sentence must lead to the next. If it doesn't pull forward, cut it.
- Longer copy works IF the reader is hooked. Length isn't the problem; boring is.
- Remove everything unnecessary. If a word doesn't serve the hook, argument, or CTA, delete it.
- Emojis help readability. Break up text walls, add visual anchors.
- The ad competes with entertainment, not other ads.
Deriving angles from the ad brief
Use the ad brief to generate copy angles. Each angle targets a different psychological lever:
| Ad brief section | Angle type | Example |
|---|---|---|
| Transformation: current situation | Pain-point angle | "Still doing X manually?" |
| Transformation: desired situation | Aspiration angle | "Imagine if X just worked" |
| Transformation: what caused them to look | Trigger angle | "If you just realized X..." |
| Psychographics: frustrations | Frustration angle | "Tired of X?" |
| Psychographics: beliefs | Challenge angle | "You've been told X. Here's the truth." |
| Psychographics: fears | Fear angle | "What happens if you don't fix X?" |
| Success criteria | Result angle | "X in Y days" |
| What else they tried | Comparison angle | "Unlike X, Y does..." |
| Recurring objections | Objection-handling angle | "Yes, it works even if X" |
Checklist
- [ ] Hook in first line (pattern interrupt, question, bold claim, or specific number)
- [ ] No personal attribute assertions ("Are you struggling with weight loss?" gets rejected; "Many people struggle with weight loss" is better)
- [ ] CTA matches funnel stage (Shop Now for conversions, Learn More for awareness)
- [ ] Headline under 27 characters (hard truncation)
- [ ] No clickbait language ("You won't believe...", "Doctors HATE this...")
- [ ] No fake urgency or unsubstantiated statistics
- [ ] Primary text has benefit in first 125 characters (before fold)
- [ ] Copy angle matches ad brief section (use the derivation table above)
- [ ] Copy sells benefit, not product description
- [ ] One offer, one CTA per ad
Copy structure
Hook (first line)
7 tested formulas:
1. Number proof: "[Number] people already [achieved outcome] - here's how" 2. Stop doing: "Stop [doing X] if you want [desired result]" 3. Easy way: "The [adjective] way to [achieve outcome] without [pain point]" 4. Belief break: "Why [established belief] is wrong (and what actually works)" 5. Personal story: "I tried [X] for [time period] - here's what happened" 6. Direct address: "If you're [struggling with X], read this" 7. Promise: "[Outcome] in [short time frame] - no [common obstacle]"
The more specific to the target audience, the better. "Struggling to get more users for your travel agency?" > "Struggling to get more users?"
Body
Short copy: impulse purchases, retargeting, simple offers, etc:
Use PAS (Problem-Agitation-Solution):
- Problem (or symptoms if audience is unaware of the problem)
- Agitation: consequences, what they're losing
- Solution: your product as the answer
Long copy: complex offers, top of funnel, etc:
Use the 5-step framework:
1. Identify the audience: call out who this is for 2. State the problem: pain they're experiencing right now 3. Offer the solution: your product as the answer 4. Remove objections: top 1-2 hesitations 5. Call to action: what to do next
Match copy to awareness level (applies to both frameworks):
- Unaware of problem: start with symptoms
- Aware of problem: start with the problem
- Knows your product: skip to benefits
- Retargeting: reminder, skip solution
CTAs
- CTA should be adapted to the audience's stage of the funnel:
- Cold: Doesn't know the brand/product => "Learn more" to lower friction
- Warm: Already exploring solutions => "Sign up" / "Apply now" / etc
- Hot: Ready to purchase => "Shop now" / "Subscribe" / "Get offer" / etc
- Urgency works: "Today Only", "Limited Offer", "Ends Sunday", but must be genuine or Meta flags it.
- Add a CTA in primary text (and at the end of video).
Headlines
- 27 characters max before truncation (Meta spec)
- Headline = your CTA or value proposition in 4-5 words
- Good: "Shop Now - Free Shipping", "Try It Free Today", "Save 40% This Week"
- Bad: "Learn More", "Our Products" (wastes headline real estate)
Creative
Creative strategy, format selection, and production specs for static and video ads.
Your role
The user creates all ad images and videos. Tell them what to make (format, specs, dimensions from the checklist below) and which tool to use (see Tools sections). If they don't have assets yet, walk them through the checklist and recommend a tool to get started. Wait for the finished asset before proceeding.
Need to be completed before building campaigns.
Contents
Creative strategy
Content, not ads
People scroll social media for entertainment. Anything that looks like an ad gets skipped - users associate ads with boring. The goal: make ads indistinguishable from native content on the platform. If the user's first reaction is "this is an ad," the creative has failed.
When generating creative concepts, optimize for this question: "Would someone share this in a group chat?" If no, the creative is too corporate.
Creative IS the targeting
On Meta, broad targeting works because the algorithm finds buyers - but only if the creative self-selects the right audience. The hook and visual must make the target think "this is about me" within one second. Creative that speaks to everyone converts no one.
Elements that self-select: recognizable UI/icons/inage from the user's world, specific jargon or frustrations, scenarios only the target has experienced. When briefing creative, ask the user what visual or phrase would make their customer stop and think "how do they know?"
Standing out is relative
Attention is contextual, not absolute. A bright red ad stands out in a feed of muted posts - but if every ad uses bright red, none stand out (supermarket aisle effect). Before designing, consider what the surrounding feed content looks like. Sometimes a minimal, text-only image outperforms a polished graphic because it breaks the visual pattern.
Video over static (when possible)
Meta rewards content that keeps users on-platform. Video drives longer session time, so Meta gives it cheaper distribution. 10-second video usually outperforms a static image on reach and cost. When full video production is not feasible, use the hybrid trick (see Static section). However, a good image > a bad video.
Iteration model
No formula guarantees results. The process is: research the audience, generate creative hypotheses, test, read the data, iterate. Prioritize testing hooks over body content - the hook is the highest-leverage variable. A great body with a bad hook is never seen. A great hook with a mediocre body still gets clicks.
When results plateau, change the hook angle rather than tweaking colors or copy. When a hook works, exhaust its variations before moving to new concepts.
Building creative instincts
Recommend the user maintain a swipe file: scroll platforms (Facebook, TikTok, Instagram) daily, save every ad or post that stops the scroll, then analyze why it worked - unexpected, relatable, sensory, emotional? Over time this builds pattern recognition that no framework can replace.
In the Meta Ad Library, ad longevity is a proxy for performance: ads running for months are likely profitable. Study their structure, not just their visual style.
Can use a tool like Adkit Ad Library to immediately see the top-performing ads in the Ad Library and save ads.
Hook techniques
The hook is the first thing seen: the opening frame of a video OR the dominant visual/headline of a static image. Users decide in less than 1 sec whether to engage or scroll. Videos autoplay, so the first frames ARE the hook.
Viewing order: image/video first, then headline, then body copy. The hook must work before any text is read.
| Type | Mechanism | Example |
|---|---|---|
| Relatable | Viewer thinks "this is about me" | Facebook "account restricted" icon for ad about preventing bans |
| Unexpected | Breaks scroll pattern | Meat grinder + "my brain when I try to write" (QuillBot) |
| Emotional | Triggers feeling before message | "This really helped my son" for kids math app |
| Sensory | Visual satisfaction, ASMR | BlendJet pouring videos with whisper voiceover |
The hook does NOT need to relate to the product. An unrelated but attention-grabbing visual (e.g. tomato dropped in blue liquid for a language learning app) works if it buys 1-2 seconds of attention. The connection to the product happens in the next frame or the copy.
Test multiple hooks against the same body/offer. The hook is the highest-leverage variable - always test it first.
Static image production
Checklist
- [ ] Single clear focal point (no busy collages)
- [ ] Key message in center 80% (edges cropped on some placements)
- [ ] Clear contrast with the rest of the platform, need to stand out
- [ ] Faces looking at camera if using people
- [ ] Works at mobile size (80%+ of impressions are mobile)
- [ ] Format matches placement (4:5 for feed, 9:16 for stories)
- [ ] No policy violations
- [ ] Looks like content, not an ad
Sizes
| Format | Ratio | Resolution | Best for |
|---|---|---|---|
| Feed vertical | 4:5 | 1080x1350 | Feed - best performer, max screen space |
| Feed square | 1:1 | 1080x1080 | Universal |
| Stories/Reels | 9:16 | 1080x1920 | Full-screen |
Max 30MB. JPG or PNG. Prioritize 4:5 (higher CTR than 1:1).
The hybrid trick
Static + animated background = Meta counts as video. Add subtle motion (animated bg, text animation, gentle zoom) for video algorithm boost without full production.
AI-generated images
Works for: abstract visuals, backgrounds, mockups, UI illustrations. Fails for: human faces, lifestyle shots, health/food/beauty categories. Gen Z / Millennial audiences especially skeptical. Use AI for ideation, real photography for hero creative.
Tools
- Non-designers: Canva (canva.com) - free, drag-and-drop, lots of elements (stickers, backgrounds, etc)
- Designers/teams: Figma (figma.com) - precise control, components, no elements
- Inspiration: Meta Ad Library (facebook.com/ads/library), AdKit (adkit.so/features/ad-library?utm_source=skill)
- AI generation: AdKit Studio (adkit.so/generate-ads-ai/?utm_source=skill) - generate ads from scratch, clone winning ads, resize to formats. Web app, not CLI.
- Other: ifaketextmessage.com (text messages)
Video production
Checklist
- [ ] Hook in first 2 seconds (no fade-ins, no logos, no intros)
- [ ] Text overlay on hook frame (mandatory for sound-off viewers - 74% watch without sound)
- [ ] Captions throughout (bold black-on-white or white-on-black)
- [ ] Key content in center 65% safe zone (9:16)
- [ ] Works at both 9:16 and 4:5
- [ ] Under 30s for feed, under 15s for Stories/Reels
- [ ] CTA visible before end
- [ ] Sound-off test: message lands with no audio?
- [ ] Consider UGC: 4x higher CTR, 50% lower CPC vs. brand creative
Safe zones (9:16)
- Top 15% (~250px): cropped in feed. No critical content.
- Bottom 20%: Reels UI overlay. Keep messaging above.
- Center 65%: safe zone for all key content.
Can use Safe Zones Checker Tool to verify safe zones.
Sizes
| Format | Ratio | Resolution | Length |
|---|---|---|---|
| Feed vertical | 4:5 | 1080x1350 | 15-30s |
| Stories/Reels | 9:16 | 1080x1920 | 6-15s |
| Feed square | 1:1 | 1080x1080 | 15-30s |
MP4/MOV, max 4GB.
UGC platforms
| Budget | Platform | Notes |
|---|---|---|
| Low ($100+/video) | Billo (billo.app) | Pre-made style, fast turnaround, but need very good script |
| Mid ($100-500+/video) | Trend (trend.io) | Per-video pricing, volume discounts available |
| Higher / more control | Insense (insense.pro) | Self-service marketplace, brief-first, more creator options |
AI UGC (use with caution)
- Arcads (arcads.ai): 1,000+ AI actors, good for script testing, multilingual
- HeyGen (heygen.com): video translation, lip-sync, localization
- Rule: "this worked for me" stories = real creators. "Here's how this works" = AI may be fine.
- Fails for: health, beauty, Gen Z, claim-heavy creative.
Tools
- UGC/Reels: CapCut (free) - auto-captions, templates
- Talking-head: Descript (~$24/mo) - transcript editing, filler removal
- SaaS demos: Screen Studio (Mac) - smooth zoom effects
- Slideshows: Canva - simple video, no skills needed
- Inspiration: Meta Ad Library (free)
Launching Campaigns: Setup and Structure
Contents
- Before You Start
- Account Safety
- The Three-Level Hierarchy
- Campaign Objectives
- Ad Set Configuration
- Recommended Account Structure
- Naming Conventions
Before You Start
Prerequisite: Creative assets must be ready before building the campaign. If the user hasn't chosen formats and produced creative yet, go to 5-creative.md first. Don't propose a campaign without creatives.Ask the user:
- What do you sell? (product type, price point)
- What's your daily budget?
- Do you have pixel data already? (conversions firing?)
- Have you run Meta ads before?
Use the answers to route through this guide:
| Situation | Recommended path |
|---|---|
| No pixel data, no ad history | Leads objective, single ad set, low budget ($2-5/day). Jump to Low budget setup. |
| Has pixel data, budget under $10/day | Sales objective, single ad set with Flexible Creatives. Optimize for the event with the most data. |
| Has pixel data, budget $25-50+/day | Sales objective, 2-3 ad sets (interest + broad + lookalike). Full Default setup. |
| Has pixel data, budget $100+/day | Consider Advantage+ Shopping in addition to manual campaigns. See Other Setups in 7-launch.md. |
| New ad account, any budget | Warmup first: $2-5/day for a few days (billing verification, not data). Then scale to target budget. See Account Safety below. |
Ask: "What's your main goal: sales or leads?" Use the answer to select the campaign objective below. Never use awareness/traffic/etc unless the user specifically asks for it.
Account Safety
New ad accounts need a warmup period: a few days at low spend so Meta can verify billing. Not for data collection. Scale to target budget after warmup.
| Situation | Rule | Consequence of breaking it |
|---|---|---|
| New or low-history account | Start at $2-5/day | High initial spend triggers fraud detection, possible ban |
| Payment method | Use a working credit card (not debit) | Rejected payment = instant ban |
| Location / VPN | Access from the billing address location, no VPN | Account flag, possible restriction |
| Scaling budget | Increase max 10-20% every 48 hours | Larger jumps disrupt optimization and look suspicious |
| Launch timing | Start between midnight and 6 AM target timezone | Mid-day start = rushed spend, less relevant audiences |
| Underperforming campaign | Lower budget instead of pausing | Repeated toggling resets learning phase and flags account |
| New account review | Schedule 12h buffer for first launch | Meta reviews new ads; if delayed, budget gets rushed |
The Three-Level Hierarchy
Every Meta ad account is organized in three nested levels:
| Level | What you set here | Think of it as |
|---|---|---|
| Campaign | Objective, overall budget (CBO), spending limits | The goal |
| Ad set | Audience, placements, schedule, optimization event, budget (ABO) | Who sees it, when, and how Meta optimizes |
| Ad | Images/videos, copy, headlines, CTA, destination URL | What people actually see |
Campaign Objectives
| Objective | When to use | When to skip |
|---|---|---|
| Sales | You sell a product/subscription and want direct conversions. Default for most advertisers. | You have no pixel events firing yet. |
| Leads | You collect emails, signups, or contact info. Great for pre-launch, lead-magnets, or high-touch sales. | You can already sell directly from a landing page. |
| App Promotion | Same as sales but when advertising a mobile apps. Requires separate tracking setup. | You don't have a mobile app. |
| Engagement/Video View | When making retargeting audiences + cheap Social Proof. | You care about revenue, not vanity metrics. |
| Traffic | Never, garbage traffic. | Always skip. |
| Awareness | Massive brand-building budgets (think Coca-Cola). Don't use | You need measurable ROI. 99% of advertisers skip this. |
Most common choice: Sales. If budget is tight or you lack pixel data, start with Leads.
Ad Set Configuration
Optimization and Conversion Events
Set Performance goal to "Maximize number of conversions" and select a pixel event (purchase, subscribe, signup, etc.). Use the goal table in 7-launch.md to pick the right event based on budget and product price.
If the chosen event has zero or very few fires, Meta has nothing to learn from. Options: optimize for a lower-funnel event with data (e.g., signup instead of purchase), drive some organic conversions first, or use leads as a stepping stone.
Audiences
Start broad. Meta finds buyers without interest targeting. Over-targeting from day one limits the algorithm.
| Type | Setup | Best for |
|---|---|---|
| Interest-based | Add relevant interests. Use Meta's "Suggestions" button to expand. Aim for 50M+ audience size. | First ad sets when you have no pixel data. |
| Broad | No interests, no custom audiences. Just location + age. Let Meta figure it out. | Accounts with existing pixel data. Often outperforms interests. |
| Lookalike | Based on a custom audience (subscribers, purchasers). Meta finds the top 1% similar users. | You have 1,000+ people in a source audience. |
Location: Target all countries you sell to, not just US/UK/CA/AU. Can include Europe etc. - anywhere with purchasing power (if it makes sense).
Age and gender: Leave as broad as possible (18-65+, all genders). Meta already knows who converts. Even for gendered products, Meta can find gift buyers.
Exclusions: To target only new people, exclude custom audiences of existing subscribers or purchasers at the ad set level.
Placements
Use Advantage+ placements (Meta's default). Manual placement selection is almost never worth it. Meta automatically stops showing ads on underperforming placements.
Schedule
Start between midnight and 6 AM in the target timezone. Mid-day launches cause Meta to rush spending the remaining daily budget on less relevant audiences. For new accounts, schedule for the next day with a 12-hour buffer to account for Meta's ad review.
End dates: Don't set them unless running a time-limited promotion. Pause manually instead.
Recommended Account Structure
Ask: "How much can you spend per day on ads?" Then recommend the matching structure below.
Default setup (works for $25-50+/day):
Campaign (Sales, CBO, $25-50/day)
+-- Ad Set: Interest-based (SEO, marketing, etc.)
| +-- Ad (Flexible Creatives): 3 media + 2 texts + 1 headline
+-- Ad Set: Broad (no targeting)
| +-- Ad (Flexible Creatives): same assets
+-- Ad Set: Lookalike (if you have 1k+ source audience)
+-- Ad (Flexible Creatives): same assets- 1 campaign, 1-3 ad sets, one Flexible Creatives ad per ad set or 3 manual ads.
- Enable Flexible Creatives. Meta mixes media, copy, and headlines to find winning combinations.
- Flexible Creatives formula: 3 media + 2 primary texts + 1 headline (reduce to 2 media + 1 text if budget is under $10/day). For the 2 texts: one short (hook + benefit + CTA) and one long (PAS or 5-step framework: see
4-copy.md). - Create the first ad set with its ad fully configured, then duplicate the ad set to create variations. This preserves ad setup and saves time.
Low budget setup (under $20/day): Optimize for Leads instead of Purchase, then manually contact leads. Consider Meta's Instant Forms instead of a landing page: conversions happen inside Facebook, so tracking is 100% accurate and costs are lower.
Ads under $20/day are not recommended tho, better use other channels until cashflow is available.
Naming Conventions
Consistent naming makes it easy to analyze performance and cross-reference with external analytics.
Campaigns: {project} {goal} {date} - e.g., Adkit - Sales - 2027-03-20. Keep it explicit so you can differentiate campaigns at a glance.
Ad sets: {event} {audienceType} {audienceName} - e.g., Purchase - Interest - Executives or Purchase - Broad. The event tells you what you're optimizing for, the audience type tells you how you're targeting, and the audience name identifies the specific group (omit if broad).
Ads: {creativeId} {copyId} {headlineId} - e.g., video_a3kx - copy_b7mq - headline_c2nf. Generate short unique IDs for each creative, copy, and headline. This lets you identify winning combinations from the dashboard without opening individual ads. If headline and copy are the same across ads, the only variable is the creative ID, making it easy to spot the winner at a glance.
UTM parameters for external analytics (Posthog, GA, etc.):
| Parameter | Value |
|---|---|
utm_source | {{site_source_name}} |
utm_medium | {{placement}} |
utm_campaign | {{campaign.id}} |
utm_content | {{ad.id}} |
utm_term | {{adset.id}} |
Set these in the ad's URL Parameters field. They survive ad blockers that may block pixel events, providing a backup data source.
---
For optimization goals, budget formulas, scaling, creative testing, and advanced setups: see 7-launch.md.
Budgets, Testing, and Scaling
Contents
- Choosing the Right Optimization Goal
- Creative Testing Setup
- Budget Management
- Why Scaling Increases Costs
- Other Setups
For campaign structure, ad set configuration, and naming conventions: see 6-campaign-structure.md.
Choosing the Right Optimization Goal
The optimization event determines who Meta shows ads to. This is the most consequential budget decision.
How Meta's optimization loop works: Your pixel sends conversion data to Meta. The algorithm finds similar people and shows them your ad. Some convert, feeding more data back. More data = better targeting = lower costs. This is why coupling Meta with other traffic channels accelerates learning: the pixel picks up conversions from all sources.
| Goal | Use when | Typical daily budget needed |
|---|---|---|
| Purchase / Subscribe / Checkout | Strong landing page, product with proven demand, enough budget for Meta to learn | (Acquisition Cost x2)/day |
| Signup / Free Trial | Product where users convert better after trying it. Test against direct purchase: free trials don't always win. | $25+/day |
| Lead / Email | Pre-launch, low budget, high-touch sales, lead magnets with email automation | As low as $2-5/day |
If budget is under $20/day: Use Lead/Email optimization. Purchase optimization needs enough budget to generate several conversions per week for Meta to learn.
Collect leads and nurture with email automation instead.
Lead magnets work: A free PDF, industry report, or tool that collects emails, followed by an automated email sequence, is one of the most cost-effective funnels for Meta ads. Good resource for lead magnets.
If the chosen event has no data: Meta is guessing, and results will be poor. Either optimize for a lower-funnel event where you have data (e.g., signup instead of purchase), drive organic conversions first, or use leads as a stepping stone.
Creative Testing Setup
Methodical testing: change one variable at a time so you know what moved the needle.
How Many Variants
Run 3-5 ads per ad set. Fewer gives Meta too little to optimize from. More fragments budget and slows learning.
What to Iterate (priority order)
1. Hook: the first 3 seconds of video or the visual/headline. Most ads are lost here. 2. Copy angle: core message framing (pain-focused vs. outcome-focused vs. social proof) 3. Offer: pricing, trial, bundle, guarantee 4. Format: image vs. video vs. carousel 5. Full concept: only after exhausting variations of a working concept
One variable at a time. Changing the hook and the offer simultaneously makes it impossible to know which change caused any difference.
Learning Phase Rules
Meta's algorithm needs time to optimize after any significant change.
- Target: 50 conversion events per week per ad set to exit the learning phase.
- Any significant edit resets learning. Budget changes, creative swaps, targeting changes all count.
- Batch changes: Make multiple edits at once rather than one per day. Each change restarts the clock.
- Minimum 7 days before drawing conclusions from a new ad set.
Flexible Creatives vs. Manual Testing
| Approach | When to use | Trade-off |
|---|---|---|
| Flexible Creatives | Meta finds winning combinations automatically. Good with 50+ conversion events per week. | Less control over which combination runs. Harder to isolate cause. |
| Manual ads | Test specific isolated variables (hook A vs. hook B). Deliberate creative learning. | Requires more budget per variation to reach statistical relevance. |
Start with Flexible Creatives. Switch to manual testing once you have consistent results and want to understand why something works.
Budget Management
Setting Your Initial Budget
Formula: Maximum acquisition cost x 2 = daily budget. Run for at least 7 days.
| Optimization | Max cost per result | Daily budget | 7-day spend |
|---|---|---|---|
| Purchase | $30 | $60 | $420 |
| Subscription | $50 | $100 | $700 |
| Lead | $3 | $6 | $42 |
Why 7 days minimum: conversion costs vary by day of week. B2B is cheaper on weekdays. Consumer products spike on weekends. A partial-week test gives unrepresentative data.
Only spend what you can afford to lose. Meta ads are a marketing experiment. You are buying data, not guaranteed sales.
Scaling Rules
| Action | Rule | Why |
|---|---|---|
| Increase budget | Max 10-15% every 48 hours | Larger jumps disrupt optimization. The algorithm needs time to recalibrate. |
| Decrease budget | Can drop 50%+ immediately | Signals to Meta that current results are poor. Often resets optimization in a positive way. |
Lower budget instead of pausing an underperforming campaign. Only pause if you are done entirely.
When Ads Are Working
Three options:
1. Scale budget (10-20% per 48h): leverages existing data, but may increase cost per conversion. 2. Leave it alone: stable, predictable. Every ad eventually fatigues, but this is the safe play. 3. Launch a new campaign: test new creatives/audiences without risking what works. Best for significant scaling. Campaigns may compete for the same audience at high spend or very small audiences, but this is rarely an issue under $1k/day.
Why Scaling Increases Costs
For any budget, Meta prioritizes the cheapest conversions first: people who already interacted with your brand or show strong purchase intent. These "low-hanging fruit" audiences are limited in size.
When you increase budget, Meta exhausts this pool and shows ads to progressively less likely buyers. Same number of sales, higher spend.
When you cannot scale further, two options:
1. Accept the ceiling. A stable acquisition channel at consistent cost is valuable. Not every product scales beyond a certain spend. 2. Improve creatives. A new ad angle that resonates with a different audience segment unlocks a fresh pool of cheap conversions. One product can have many use cases, and each use case appeals to a different pocket of people. Example: a cosmetics brand switching their ad model from a young woman to a grandmother unlocked an entirely new audience that converted at scale.
Other Setups
Advantage+ Shopping Campaign
Fully automated: one campaign, one auto-managed ad set, 2-3+ ads. No audience setup, no placement selection. Meta handles everything. Only available for the Sales objective.
Pros: Minimal setup. Mixes retargeting and cold audiences automatically. Often strong initial results. Cons: Audience exhaustion after 4-8 weeks. Performance decays and is hard to recover. Best for accounts with substantial existing pixel data. Not recommended as your only campaign.
If Advantage+ decays, fall back to the default manual setup in 6-campaign-structure.md.
Prospecting + Retargeting Split
Separates finding new customers from converting warm ones. Recommend this for advertisers who already have a working campaign and want to scale.
Prospecting campaign (finding new people):
- 2-3 ad sets: interest, broad, lookalike
- Video ads only. The exclusion mechanism relies on 3-second video views.
- Exclude anyone who watched 3+ seconds of your videos (they move to retargeting)
- Will cost more per conversion. That is expected.
Retargeting campaign (converting warm audiences):
- 1 ad set targeting: 3-second video viewers, website visitors (pixel), page engagers
- Exclude existing purchasers (180 days)
- 5-20 ads (images and videos both fine). High volume prevents ad fatigue in small audiences.
- Lower cost per conversion since these people already know you
Key principle: Prospecting does not need to be independently profitable. If the combined result across both campaigns is profitable, the system works.
Analyzing Results
Contents
- Where to Start
- Key Metrics (KPIs)
- The Diagnostic Framework
- Statistical Relevance
- When and How to Act
- Real Diagnostic Example
- Mindset: Buying Data, Not Sales
- Seasonal and External Factors
- Creative Fatigue
This guide covers the key metrics, how to diagnose problems, and when to act.
Where to Start
Start with these questions:
- How long have your ads been running?
- What's your current daily budget?
- What are you seeing that concerns you? (or: are things going well and you want to scale?)
If ads have been running < 3 days or have < 1,000 impressions, it's too early to draw conclusions. Wait for more data.
Key Metrics (KPIs)
| Metric | What It Measures | Why It Matters |
|---|---|---|
| CPM | Cost per 1,000 impressions | Baseline ad cost. Higher = more competitive/expensive audience. Varies by audience, creative, and season (spikes Nov-Dec). |
| CTR (unique outbound) | % of impressions that clicked through to your site | Use unique outbound: one click per person, only counts clicks leaving the platform. |
| CPC | Cost per unique outbound click | Derived from CPM and CTR. |
| Frequency | Average times each person saw your ad | Under 2 is fine. Above 3-4 signals creative fatigue: people start ignoring familiar ads. |
| Hook Rate | % who watched first 3 seconds of video | Custom metric: 3-second video plays / impressions. Measures if your video catches attention. Only relevant for real video ads, not static-image videos. |
| Conversion Rate | % of landing page visitors who purchased | Custom metric: purchases / landing page views. Measures landing page and offer effectiveness. |
| ROAS | Revenue per dollar of ad spend | A 1.44 ROAS means $1.44 revenue per $1 spent. Factor in customer lifetime value: a subscription product can be profitable at ROAS < 1 if retention is strong. |
Ask: "Can you share your CTR, CPM, and cost per result?"
Click types matter
The platform reports multiple click variants. "Clicks (all)" includes likes, video plays, read-more expands - any interaction. "Link clicks" count clicks to your URL but can include the same person multiple times. Always use unique outbound clicks (and unique outbound CTR): this counts one click per person going outside the platform, which is the closest measure of "people who actually visited your site."
Reading the funnel
Track every conversion step. Set up columns for content view, registration, checkout initiated, and purchase. A big drop between steps pinpoints where the problem is. e.g., 100 checkouts but 1 purchase means your checkout flow is broken. Without intermediate steps, you are guessing. With them, you know exactly where to focus.
Understanding reach vs. impressions
Frequency = impressions / reach. A "high impressions" number can mean either broad reach or repeated exposure to the same people - very different situations requiring different responses.
The Diagnostic Framework
Think like a doctor: observe symptoms, hypothesize causes, prescribe solutions. You can never be 100% certain. Make your best educated guess and test it.
Symptom-Cause-Action Table
| Symptom | Likely Cause | Action |
|---|---|---|
| No sales + low CTR + low CPM | Ad not appealing to audience. Cheap impressions but nobody clicks. | Test new creative. Try different audience. Honestly evaluate if the product has demand. |
| No sales + high CTR + low CPM | Landing page problem. People click (ad works) but don't convert after. | Install session recording (Hotjar/Clarity) to watch real user behavior. Make a test purchase in production to verify nothing is broken. Improve landing page copy, speed, or design. |
| No sales + high CTR + high CPM | Expensive audience clicking but not buying. | Check landing page first. If landing page is fine, the audience may be too niche or competitive: test broader targeting. |
| High frequency (3+) + declining CTR | Creative fatigue. Audience has seen the ad too many times. | Launch new creatives. Expand or change audience. |
| CPM dropping + CTR dropping | Platform exhausted retargeting pool, now showing to colder audiences. | Expected behavior. Monitor for 1-2 weeks. If results don't recover, launch creatives tailored to cold audiences (people unfamiliar with your brand). |
| Rising cost per result over weeks | Audience exhaustion. Often one ad absorbs all budget and wears out. | Check if budget is concentrated on one ad. Cut exhausted ads. Launch new campaign with fresh creatives. |
| Big drop-off between funnel steps | Broken or weak step in the funnel (e.g., checkout bug, slow page). | Investigate the specific step. Test the flow yourself. Fix technical issues before changing ads. |
If you see high CTR but no sales: test the purchase flow yourself. Something might be broken. A working ad sending traffic to a broken checkout is the most expensive mistake in advertising.
Statistical Relevance
Do not draw conclusions from small samples. Random variance dominates at low volumes.
- Minimum: 1,000 impressions before analyzing. Ideally 3,000+.
- Exception: If results are catastrophically bad early (CTR under 1%, CPM above $100, CPC above $10 at 500+ impressions), you can act sooner.
- Use weekly aggregates over daily when you have 2+ weeks of data. Day-to-day swings (weekends, holidays, random events) are noise. The trend over weeks is the signal.
- Breakdown by day to spot patterns (weekends often underperform for B2B), but make decisions on weekly averages.
Lower budgets amplify this problem. At $5-15/day, it takes longer to accumulate meaningful data. Consider optimizing for cheaper events (leads, signups) instead of purchases to get statistical relevance faster.
When and How to Act
Wait before acting. Most premature decisions come from too little data or emotional reactions.
After 1-2 bad days: this is normal variance. Pull up the weekly trend instead. One bad day - or even two - tells you almost nothing. The question is always: what does the week look like?
Decision tree:
1. Do I have enough data? (1,000+ impressions minimum). If no, wait. 2. Is the trend clear over multiple days/weeks? If one bad day, wait. If 2-3 bad weeks, act. 3. Where in the funnel is the drop? Identify the weakest step. 4. What changed? CPM shift? CTR decline? Frequency creeping up? Each points to a different cause.
Actions by situation:
- Ad not working (low CTR): New creative, different angle, different audience.
- Landing page not converting (high CTR, low sales): Session recordings, test purchase, improve page.
- Audience exhausted (declining CTR over weeks, one ad eating all budget): Cut the exhausted ad, launch fresh creatives. Have new ads ready _before_ old ones fatigue.
- Results recovering after a dip: Do nothing. Let the platform optimize. Not every dip requires intervention.
- Budget not spending fully: Check for platform-imposed restrictions. Verify ad approval status.
- Holiday or seasonal dip: Do not optimize based on seasonal spikes or dips. Compare like periods - this week vs. last week at similar conditions, not Tuesday vs. Sunday.
Real Diagnostic Example
A campaign running $100/day for 4 weeks:
- Week 1: $30 cost per purchase, 7% CTR. Excellent.
- Week 2: $40 cost per purchase, 5% CTR. CPM dropping. Platform shifting from retargeting to cold audiences.
- Week 3: $50 cost per purchase, 4% CTR. Continued decline. Lowering budget didn't help.
- Week 4: $100+ cost per purchase, 3% CTR. One ad consumed all budget with 100,000+ impressions.
Diagnosis: Audience pool exhaustion. The creative worked well for retargeting and AI-savvy users but didn't resonate with cold audiences. Frequency was still acceptable (~2), so it wasn't repetition: it was reaching less qualified people.
Action taken: Cut the exhausted ad. Gave remaining ads a chance. Launched new campaign with creatives designed for cold audiences (people unfamiliar with the product category).
Key lesson: Creatives that work for warm audiences may fail for cold audiences. When the platform expands reach, you may need different messaging.
What "no action" looks like
Not every dip requires intervention. In the example above, after Week 2 the initial response was to wait and observe: the right call. The platform was testing new audience pockets, and one good day suggested it might self-correct. Only after Week 3-4 confirmed the sustained decline was action taken. Patience with sufficient data beats reactive changes every time.
Mindset: Buying Data, Not Sales
Frame every spend as data acquisition: which audiences engage, which creatives resonate, where the funnel breaks. Use the diagnostic framework before making any change.
Seasonal and External Factors
Results fluctuate based on factors outside your control:
- Holidays (Easter, Christmas, national holidays): people are offline, not in buying mode. Expect worse results.
- Q4 (Nov-Dec): CPMs spike across the board due to e-commerce competition. The same ads cost more to deliver.
- Weekends: B2B products typically see lower engagement Saturday-Sunday. B2C varies by category.
- Platform algorithm changes: Periodic shifts in delivery behavior. If all campaigns suddenly change at once, it may not be the ads.
Creative Fatigue
Creatives don't last forever. Every ad eventually wears out as the audience becomes oversaturated.
Key signals to watch:
- Frequency above 3-4: Each person has seen the ad 3+ times on average. Engagement drops, cost rises.
- CTR declining week-over-week while CPM holds steady: the audience is ignoring the ad.
- Rising cost per result with no audience or budget changes: the ad is running out of receptive people.
- One ad absorbing all budget: When Meta concentrates spend on a single ad, that ad is likely exhausting its audience pocket.
Fatigue timeline by audience size:
| Audience size | Typical fatigue point |
|---|---|
| < 100k | 1-2 weeks |
| 100k-1M | 3-6 weeks |
| 1M+ | 6-12 weeks |
Retargeting audiences (small and warm) fatigue much faster than cold prospecting audiences.
What to do:
- Cut exhausted creatives. If one ad has absorbed disproportionate budget and metrics are declining, pause it.
- Launch replacement creatives before the old ones die. Always have fresh creatives in the pipeline: waiting until an ad fatigues leaves you scrambling.
- Rotate angles. A new hook or copy angle extends the life of the same offer by reaching a different segment of the audience.
- Expand or change audiences if the current pool is too small to sustain volume.
Ad Brief
This process is the same regardless of ad platform. Run it before any campaign work.
How to interact
- Use `AskUserQuestion` / `ask_user_question` when asking about experience level, goals, or decisions. Present 2-4 selectable options - avoid making them type long answers. For questions where multiple answers are valid (e.g. target audiences, customer types), allow selecting multiple or typing a custom answer. Never force picking one when the user may have several.
- Exception: financial and numerical inputs (budget, CPA, LTV, revenue) must be open-ended — never pre-select dollar amounts. Pre-selected options anchor the user on arbitrary values. Ask them to type their number, then validate it against the formulas in the template.
- Ask for reference materials early. Ask if the user has existing documents you should read: brand guidelines, ICP/persona descriptions, competitor lists, landing page URLs, or previous ad performance data. If they provide files, read them and incorporate into your recommendations.
Check for existing brief
First, check if `.agents/ad-brief.md` exists in the user's project. If it does, read it and skip this process.
If not, build one using the template at templates/ad-brief.md. Two phases:
Phase 1: Research (you do the work)
1. Ask the user for their product name and URL (or detect from the project: package.json, README, etc.) 2. Research proactively: visit their website, infer the audience, look up competitors, figure out the offer 3. Fill in as much of the brief as you can from what you found
Phase 2: Confirm and complete (user fills gaps)
1. Present your filled brief to the user: "Here's what I found. Correct anything that's wrong and fill in what's missing." 2. For any remaining gaps, ask one at a time using AskUserQuestion / ask_user_question 3. Save the result as .agents/ad-brief.md in the user's project root. This persists for future sessions.
Ad Brief
Fill in what you can. The more detail the better, but not everything is required - start with what you know and refine over time.
The Product
What jobs does the product accomplish?
Characteristics & unique differentiations:
Success criteria - what matters most to the buyer? (e.g. cheapest, fastest, easiest, most reliable, most prestigious)
The Audience
Demographics
Age, gender, location, income, job title, etc.
Psychographics
- What drives them:
- How they identify themselves:
- What are their beliefs (right or wrong):
- What are they afraid of:
- What frustrates them daily:
- Decision biases:
Transformation
- Current situation (the struggle):
- Desired situation (the progress they want):
- What's preventing them from switching (anxiety / habit):
- What caused them to look for a solution (the trigger):
- What else did they try? Why wasn't it enough:
- How does the product achieve the transformation:
- How do they want to feel after switching:
- What do they want others to think of them:
- Recurring objections:
The Market
How saturated is the market?
Top competitors (with links):
The Offer
Landing page URL:
What's the offer? (free trial, discount, lead magnet, demo, direct purchase, etc.)
The KPIs
<!-- IMPORTANT: Compute these from LTV, don't guess. Ask the user for their numbers as open-ended questions — never present pre-selected budget/cost options, which anchor on arbitrary values. -->
- AOV / LTV:
- Maximum acquisition cost: _(LTV minus operational cost per user. This is the break-even point — spending more loses money.)_
- Ideal acquisition cost: _(max acquisition cost minus desired profit per customer. There is no universal benchmark — depends on the user's margin goals.)_
- Starting daily budget: _(target: 2-3x max acquisition cost per day, for at least 7 days. New accounts must warmup at $2-5/day first, then scale 10-20% every 48h toward this target.)_
Note: Phase 1 of any ad campaign is about collecting data, not profit. Expect to spend before you see returns. This is buying information about what works.
Related skills
How it compares
Strategy and education skill—not a creative generator or Meta Ads API integration.
FAQ
Who is meta-ads-strategy for?
Developers and small teams choosing or scaling Meta (Facebook/Instagram) paid acquisition who want fundamentals before tactical setup.
When should I use meta-ads-strategy?
In Validate when comparing channels and pricing story; in Launch when planning paid distribution; in Grow when diagnosing fatigue and creative refresh needs.
Is meta-ads-strategy safe to install?
It is documentation-style guidance with no inherent shell or secret access—still review the Security Audits panel on this Prism page before adding any skill to your agent.