Claude Skill

suede-ads

Suede-owned paid-acquisition operating system for channel choice, campaign structure, audiences, bidding, budget pacing, negative keywords, retargeting, and kill-or-scale decisions. Use when planning, auditing, or optimizing paid campaigns on Google, Meta, LinkedIn, X, or compara

LLM Mart · 0 points · 31 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download JasonColapietro-suede-creator-skills-skills_suede-ads-f192517.zip · 50 KB
Part of jasoncolapietro/suede-creator-skills — 70 skills

Install

skills CLI npx skills add https://github.com/JasonColapietro/suede-creator-skills/tree/main/skills/suede-ads
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install jasoncolapietro-suede-creator-skills@llmmart
Git git clone https://github.com/JasonColapietro/suede-creator-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole jasoncolapietro/suede-creator-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Suede Paid Ads

Use this Suede paid-acquisition playbook to create, optimize, and scale campaigns against explicit acquisition economics. Never assume account access.

Before Starting

Check for product marketing context first: If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Gather this context (ask if not provided):

1. Campaign Goals

  • Which platform(s) are running now, or which do you want to start with?
  • What's the primary objective? (Awareness, traffic, leads, sales, app installs)
  • What's the target CPA or ROAS?
  • What's the monthly/weekly budget?
  • Any constraints? (Brand guidelines, compliance, geographic)

2. Product & Offer

  • What are you promoting? (Product, free trial, lead magnet, demo)
  • What's the landing page URL?
  • What makes this offer compelling?

3. Audience

  • Who is the ideal customer?
  • What problem does your product solve for them?
  • What are they searching for or interested in?
  • Do you have existing customer data for lookalikes?

4. Current State

  • Have you run ads before? What worked/didn't?
  • Do you have existing pixel/conversion data?
  • What's your current funnel conversion rate?
  • Do you have creative assets already, or do they need to be produced?

Reference Routing

This skill's depth lives in references — load by intent. For any operational decision on a live account (kill/keep/scale/budget), load the relevant playbook before answering; the thresholds live there, not here.

User intent Load Covers
B2B strategy, funnel stages, budget splits, kill rules, lead quality, breakeven math b2b-paid-playbook.md Demand lifecycle, leading/lagging signals, kill rules, offline conversion loop, U/B/F lead scoring, scaling quadrant
Meta operations: when to kill/graduate/scale an ad, fatigue, testing structure meta-decision-system.md TCPL-anchored decision tree, ad-count ceiling, 80/20 CBO structure, fatigue bands, lead forms, Advantage+ transition
LinkedIn operations: bidding, audience sizing, scaling, benchmarks, TLAs, formats linkedin-b2b-playbook.md Bidding progression, penetration scaling, sizing rules, funnel benchmarks, document/conversation ads, audit shortlist
Google Search: what to spend on first, structure, match types, negatives, PMax google-search-playbook.md Intent ladder, account structure, match-type gates, negatives, bidding by volume, offline conversions, PMax guardrails
Named-account targeting, pipeline acceleration, cross-channel retargeting abm-playbook.md LinkedIn/Meta ABM, list mechanics, acceleration campaigns, UTM cross-channel remarketing, ABM measurement
Generating Google RSAs rsa-output-spec.md Mandatory output spec — limits, sidecars, template, self-check
Audience setup, tracking setup, launch checklists, copy formulas audience-targeting.md · conversion-tracking.md · platform-setup-checklists.md · ad-copy-templates.md Existing foundations

Platform Selection Guide

Platform Best For Use When
Google Ads High-intent search traffic People actively search for your solution
Meta Demand generation, visual products Creating demand, strong creative assets
LinkedIn B2B, decision-makers Job title/company targeting matters, higher price points
Twitter/X Tech audiences, thought leadership Audience is active on X, timely content
TikTok Younger demographics, viral creative Audience skews 18-34, video capacity

Campaign Structure Best Practices

Account Organization

Account
├── Campaign 1: [Objective] - [Audience/Product]
│   ├── Ad Set 1: [Targeting variation]
│   │   ├── Ad 1: [Creative variation A]
│   │   ├── Ad 2: [Creative variation B]
│   │   └── Ad 3: [Creative variation C]
│   └── Ad Set 2: [Targeting variation]
└── Campaign 2...

Naming Conventions

[Platform]_[Objective]_[Audience]_[Offer]_[Date]

Examples:
META_Conv_Lookalike-Customers_FreeTrial_[YYYYQ#]
GOOG_Search_Brand_Demo_Ongoing
LI_LeadGen_CMOs-SaaS_Whitepaper_[MMMYY]

Budget Allocation

Testing phase (first 2-4 weeks):

  • 70% to proven/safe campaigns
  • 30% to testing new audiences/creative

Scaling phase:

  • Consolidate budget into winning combinations
  • Increase budgets ~20% at a time — never 30%+ in one move (resets platform learning)
  • Wait 3-5 days between increases for algorithm learning

Ad Copy Frameworks

Key Formulas

Problem-Agitate-Solve (PAS):

[Problem] → [Agitate the pain] → [Introduce solution] → [CTA]

Before-After-Bridge (BAB):

[Current painful state] → [Desired future state] → [Your product as bridge]

Social Proof Lead:

[Impressive stat or testimonial] → [What you do] → [CTA]

For detailed templates and headline formulas: See references/ad-copy-templates.md


Audience Understanding & Targeting

Knowing your audience deeply is still the highest-leverage work in paid ads — demographics, job titles, pain points, fears, hopes, the exact language they use, who they follow, what they've tried, why they failed, what they buy. Gather every identifier you can.

What has changed is where you apply that knowledge. As ad-platform algorithms have gotten dramatically better at finding the right person, jamming all your audience identifiers into the platform's targeting filters underperforms feeding those same identifiers into the creative (headlines, copy, visuals, hooks, examples).

The discipline now: audience knowledge → creative first, targeting filters second. How much that ratio tips toward "creative" varies meaningfully by platform.

Platform-by-platform: where to apply audience knowledge

Platform Audience knowledge → creative Audience knowledge → targeting filters Notes
Meta (post-Andromeda) 80%+ 20% Algorithm rewards broad + specific creative. See [[#Modern Meta playbook (Andromeda era — 2026+)]] below for the full reframe. Interest-stacking now actively hurts.
Google Search 40% 60% Keywords are still the dominant signal — match-types, search-intent layering, and negative keywords still drive performance. Creative (RSA headlines) matters but is downstream of the keyword.
Google Performance Max / Demand Gen 70% 30% Audience signals are advisory, not deterministic. Creative + product feed quality dominate.
LinkedIn 40% 60% Job-title / company / industry filters still produce real precision because LinkedIn's identity data is high-quality. Creative makes the click; firmographics make the right person see it.
TikTok 70% 30% Algorithm is closer to Meta's model — broad targeting + native-feeling creative wins. Some audience interests help but creative dominates.
Twitter/X 50% 50% Interest + follower targeting still meaningful, but creative differentiation is high-leverage given lower competition.

These ratios are directional, not precise. Test in your actual account.

For how each identifier becomes a headline, hook, or angle, use suede-ad-creative — it owns the angle-to-copy mapping.

Key Concepts (still apply)

  • Lookalikes: Base on best customers (by LTV), not all customers. Still high-value across platforms.
  • Retargeting: Segment by funnel stage (visitors vs. cart abandoners). See [[#Retarget with DIFFERENT offers (not the same one)]] and [[#The 4-component retargeting framework]] for the modern playbook.
  • Exclusions: Exclude existing customers and recent converters — showing ads to people who already bought wastes spend.

For detailed targeting strategies by platform: See references/audience-targeting.md


Modern Meta playbook (Andromeda era — 2026+)

Meta launched the Andromeda algorithm in 2025, which fundamentally changed Meta ads. The old playbook (interest stacking, polished video creative, single-winner scaling) underperforms. The new playbook:

Creative volume is the constraint (statics > polished video)

  • Andromeda is "a hungry panda" — it needs constant fresh creative or it fatigues
  • Statics often outperform video in 2026 because:
    • Meta's algorithm has a bias toward statics — it can show more statics per session per user, so they're cheaper to deliver
    • Static creative is 10x cheaper and faster to produce than video, enabling the volume Andromeda needs
    • Even top advertisers running 17+ VSLs report that down-and-dirty native statics often beat 2.5-month-production VSLs
  • Dedicate 1 hour per week to producing fresh creatives for your winning offer. Volume > polish.

Creative IS the targeting (broad audience + specific creative)

  • The old playbook: stack interests, narrow the audience, hope to find the right buyer
  • The new playbook: target broadly (just the country) and let the creative do the targeting
  • Long-form ad copy works better than short-form in 2026 — gives Meta a wider context window to understand who to show the ad to
  • Test it: take your best winning ad with interest-stacked targeting, duplicate it, remove all targeting (just pick the country), run side-by-side for 7 days. Check CPAs. Broad typically wins.

The one-keyword hack (identity-trigger keywords)

  • Take your winning ad
  • Duplicate it with a niche/identity keyword inserted in the headline or body copy
  • "Here's how to get 462 leads per week on autopilot" → "Here's how to get 462 dental leads per week on autopilot" / "...lawyer leads..." / "...property investment leads..."
  • The keyword is an identity trigger for the viewer AND a targeting signal for Andromeda
  • Dramatically drops CPL and opens audience pockets you couldn't reach with a generic ad

AI variant farming (the 100-people test)

  • Take your winning ad
  • Feed to Claude/ChatGPT/Kong with the prompt:

    "I want you to read this ad and be the author. If I show the next ad I'm going to ask you to write to 100 people, not 1 in 100 would be able to tell you it's written by a different person. Now write this for [demographic/niche]."

  • The output should read essentially the same with subtle relevance shifts for the target
  • Apply in sequence: body copy → headlines → creative
  • Drop all variants in a CBO, let Meta's AI allocate spend

Zombie campaigns

  • After running a CBO, Meta will give 80% of variants no spend
  • Take the dead variants you have high conviction about
  • Launch them in a separate ad set ("zombie campaign")
  • Typically resurrects 20% as winners that Meta's first allocation passed over

Don't make ads look like ads

  • Hundreds of millions of people have ad blockers — the polished-ad aesthetic kills performance
  • Study what content natively performs in your niche on TikTok/Instagram/YouTube → produce ads that match that aesthetic
  • Burner account technique: create a clean Instagram/TikTok account, follow all influencers and pages in your niche, like their content. Your feed becomes a curated view of what's natively winning. Produce ads that match.
  • If you have an organic video with millions of views, run that exact video as a paid ad — proven content + paid distribution = the highest-leverage move

Creative Best Practices

Image Ads

  • Clear product screenshots showing UI
  • Before/after comparisons
  • Stats and numbers as focal point
  • Human faces (real, not stock)
  • Bold, readable text overlay (keep under 20%)

Video Ads Structure (15-30 sec)

  1. Hook (0-3 sec): Pattern interrupt, question, or bold statement
  2. Problem (3-8 sec): Relatable pain point
  3. Solution (8-20 sec): Show product/benefit
  4. CTA (20-30 sec): Clear next step

Production tips:

  • Captions always (85% watch without sound)
  • Vertical for Stories/Reels, square for feed
  • Native feel outperforms polished
  • First 3 seconds determine if they watch

Creative Testing Hierarchy

  1. Concept/angle (biggest impact)
  2. Hook/headline
  3. Visual style
  4. Body copy
  5. CTA

Campaign Optimization

For hard kill/keep/scale thresholds, use the platform playbooks (see Reference Routing): the kill rules and breakeven CPL/CPC math live in b2b-paid-playbook.md, and Meta's full decision tree lives in meta-decision-system.md.

Key Metrics by Objective

Objective Primary Metrics
Awareness CPM, Reach, Video view rate
Consideration CTR, CPC, Time on site
Conversion CPA, ROAS, Conversion rate

Optimization Levers

"Too high" and "low" below are not opinions. Too high means above the break-even CPA / ROAS ceiling computed in Scaling discipline, and low means below the funnel benchmark in the platform playbook for that channel. Compute the ceiling before you pull any lever — and for hard kill/scale thresholds, use the playbooks routed at the top of Campaign Optimization.

If CPA is too high:

  1. Check landing page (is the problem post-click?)
  2. Tighten audience targeting
  3. Test new creative angles
  4. Improve ad relevance/quality score
  5. Adjust bid strategy

If CTR is low:

  • Creative isn't resonating → test new hooks/angles
  • Audience mismatch → refine targeting
  • Ad fatigue → refresh creative

If CPM is high:

  • Audience too narrow → expand targeting
  • High competition → try different placements
  • Low relevance score → improve creative fit

Bid Strategy Progression

  1. Start with manual or cost caps
  2. Gather conversion data (50+ conversions)
  3. Switch to automated with targets based on historical data
  4. Monitor and adjust targets based on results

Retargeting Strategies

Funnel-Based Approach

Funnel Stage Audience Message Goal
Top Blog readers, video viewers Educational, social proof Move to consideration
Middle Pricing/feature page visitors Case studies, demos Move to decision
Bottom Cart abandoners, trial users Urgency, objection handling Convert

Retargeting Windows

Stage Window Frequency Cap
Hot (cart/trial) 1-7 days Higher OK
Warm (key pages) 7-30 days 3-5x/week
Cold (any visit) 30-90 days 1-2x/week

Exclusions to Set Up

  • Existing customers (unless upsell)
  • Recent converters (7-14 day window)
  • Bounced visitors (<10 sec)
  • Irrelevant pages (careers, support)

Retarget with DIFFERENT offers (not the same one)

The conventional retargeting playbook re-shows the same product/offer to people who didn't buy. The Sabri Suby principle: the #1 reason someone didn't buy is the offer wasn't right for them. Re-showing the same thing harder doesn't help.

Instead, retarget with different products, services, or offers from your catalog:

  • Visitor clicked on protein powder, didn't buy → retarget with creatine (totally different category)
  • Visitor downloaded a lead magnet, didn't book a call → retarget with a different lead magnet on a related topic
  • Visitor viewed pricing, didn't sign up → retarget with a free audit or assessment instead

The lift from this is often dramatic — a 2-3 ROAS audience on the original offer can hit 6+ ROAS on a different offer.

The 4-component retargeting framework

Build out your retargeting layer with these 4 ad types running simultaneously:

  1. Objection-handling ad — directly addresses the most common reasons people didn't buy. To find these, outbound call every lead who didn't convert and ask why. The verbatim objections become the headline of this ad.
  2. Proof testimonial carousel — multi-image/multi-slide carousel of testimonials and proof that supports the claims of your original ad
  3. Other-offers CBO — your other best-performing ads for other products/services in one CBO, retargeted to the same audience
  4. Value-first audit/assessment ad — wraps your call in a free piece of value. Whether they buy or not, they leave with something useful. Lowers the friction to engage.

These four together, retargeting the same audience that didn't convert from the top-of-funnel ad, dramatically lift the ROAS of the entire funnel.


Landing Page Alignment (the headline-mirror trick)

The ad platform tests headlines against far more people than ever reach the landing page, so it resolves a winning headline much faster than on-page testing does. Use it that way:

  1. Run 20-40 different headlines as ad variations
  2. Pick the winner by CTR and downstream conversion, not CTR alone
  3. Mirror the winning headline verbatim in the landing page H1, sub-headline, and lead-in copy
  4. Expect a 15-20% minimum lift in landing-page conversion rate from that change alone

Keep at least 3 split tests running somewhere in the funnel — creative, page, offer, or post-conversion flow — at any given time.

Post-click page work itself belongs to suede-site-alchemy.


Reporting & Analysis

Weekly Review

  • Spend vs. budget pacing
  • CPA/ROAS vs. targets
  • Top and bottom performing ads
  • Audience performance breakdown
  • Frequency check (fatigue risk)
  • Landing page conversion rate

Attribution Considerations

  • Platform attribution is inflated
  • Use UTM parameters consistently
  • Compare platform data to GA4
  • Look at blended CAC, not just platform CPA

Scaling discipline (net cash > ROAS percentage)

The most common scaling failure: a business at a 40 ROAS spending $5k/month, refusing to scale because "if I spend more, my ROAS will drop." This is the wrong frame.

Net cash flow > ROAS percentage at the business level:

  • ROAS dropping from 10 → 5 sounds bad
  • But if spend goes from $10k → $100k, you net dramatically more total profit
  • The number to optimize is blended ROAS at the business level, not per-ad-set ROAS
  • Even better: optimize net free cash flow, not ROAS at all

Find your break-even ROAS:

  1. Calculate the absolute maximum you can pay to acquire a customer and still be profitable (factoring LTV)
  2. That's your break-even ROAS / CPA ceiling
  3. Scale until you approach that ceiling, not until your ad-account ROAS drops below an arbitrary preference

The 3-hour founder review:

  • Block out 3 hours per month in the calendar to physically review the numbers yourself
  • Not what your data analyst says. Not what your media buyer says. You, going through the actual data
  • The confidence this generates is irreplaceable — and confidence is what lets you scale with conviction
  • "Data gives you confidence. Confidence gives you speed."

Outbound-call your leads who didn't convert:

  • Every lead that downloaded a lead magnet or hit your funnel but didn't buy gets a call
  • Ask why they didn't book, what was confusing, what the actual blocker was
  • These verbatim answers become objection-handling ads (see Retargeting section)
  • Massive insight-to-creative loop that most advertisers skip

Platform Setup

Before launching campaigns, ensure proper tracking and account setup.

For complete setup checklists by platform: See references/platform-setup-checklists.md

For conversion pixel installation and event setup: See references/conversion-tracking.md

Universal Pre-Launch Checklist

Each box names the artifact that proves it. A box is checked when the artifact exists, not when it sounds true.

  • Conversion tracking fired — the test conversion is visible in the platform's event manager with a timestamp
  • Landing page loads in <3 sec — cite the PageSpeed / Lighthouse number and the test date
  • Landing page mobile-friendly — a mobile render of the page, not a desktop assumption
  • UTM parameters working — paste the resolved destination URL with parameters intact
  • Budget set correctly — the daily/lifetime figure, against the cap the user stated
  • Targeting matches intended audience — the saved audience definition, read back

Any unchecked box means do not recommend launch. Name the box and what is missing.


Google RSA Output Spec (mandatory when generating RSAs)

When the user requests Google Ads RSAs, load references/rsa-output-spec.md and follow it exactly — hard character limits, required sidecar artifacts (ad groups, negatives, sitelinks, callouts), output order, template shape, CFM medical compliance, and the pre-send self-check. Do not output any RSA that violates it.


Common Mistakes to Avoid

  • Too many campaigns — fragmenting budget across campaigns none of which exit learning
  • Optimizing for the wrong metric — clicks or CTR when the objective is conversions
  • Only one ad per ad set — the algorithm has nothing to allocate between
  • Overlapping audiences competing — the same account bidding against itself

Tool Integrations

This pack does not include ad-network integrations. Work through an authorized platform UI, current export, API, or installed connector; verify current official documentation and the selected account before any mutation.

Platform family Typical use Verify before execution
Search ads Capture declared intent Query scope, match behavior, negatives, location, conversion action
Social feed ads Create or harvest demand Audience controls, placement, creative specs, attribution window
Professional-network ads Reach role or account segments Targeting availability, minimum audience, lead form and CRM mapping
Short-video ads Visual discovery and creator-style demand Placement specs, audio rights, age and regional policy

For the measurement contract, use references/conversion-tracking.md and route implementation and firing checks to suede-analytics.


Boundaries

  • Do not create, launch, pause, delete, or change campaigns, bids, audiences, or budgets without explicit authorization.
  • Do not claim ROAS, attribution, or incrementality when conversion tracking and revenue inputs have not been verified.
  • Do not recommend spend above the stated cap; if no cap exists, provide a bounded test budget and wait for approval.
  • Do not target sensitive traits, evade platform policy, or present inferred audience attributes as verified facts.

When authorization is missing. If an authorized account or connector is present and the user asks for a mutation you have no approval for, stop before the call. Name the exact mutation and the account, campaign, or ad set it would hit. Offer: a draft-only change list they can apply themselves, a request for written approval on that specific change, or continuing read-only with an audit instead. Then wait — do not execute on assumed consent. (For the spend-cap case, the standing rule in the third boundary above already applies; don't restate it.)

Routing

  • Need ad copy or visual variants -> use suede-ad-creative.
  • Need conversion tracking and attribution -> use suede-analytics.
  • Need post-click conversion work -> use suede-site-alchemy.
  • Need CRM handoff or offline conversion design -> use suede-revops.
  • From those skills, route paid channel, budget, bid, and campaign decisions back to suede-ads.
Files (suede-creator-skills)
  • agents
    • openai.yaml 576 B
      interface:
        display_name: "Suede Paid Ads"
        short_description: "Run paid acquisition that pays back"
        default_prompt: "Use $suede-ads on [target]. The user is planning, running, or fixing paid campaigns on Google, Meta, LinkedIn, or X, or weighing whether to run ads at all. Work through campaign structure, audience targeting, bidding, budget pacing, negative keywords, and knowing when to kill an ad, ground every recommendation in evidence the user can check, and return the decisions, the reasoning, and what to measure next."
      policy:
        allow_implicit_invocation: true
      
  • evals
    • evals.json 6.3 KB
      {
        "skill_name": "suede-ads",
        "evals": [
          {
            "id": 1,
            "prompt": "Help me plan a paid advertising strategy. We're a B2B SaaS tool for HR teams, selling at $99/month per seat. We have $15k/month to spend on ads and want to generate demo requests. Where should we advertise?",
            "expected_output": "Should check for product-marketing.md first. Should apply the platform selection guide based on B2B, HR audience, $99/month price point. Should recommend LinkedIn (B2B targeting by job title/industry), Google Ads (search intent for HR software keywords), and potentially Meta (retargeting). Should recommend campaign structure with naming conventions. Should define audience targeting strategy for each platform. Should set budget allocation across platforms. Should define success metrics and attribution approach. Should recommend starting structure and scaling plan.",
            "assertions": [
              "Checks for product-marketing.md",
              "Applies platform selection guide",
              "Recommends platforms appropriate for B2B HR audience",
              "Recommends campaign structure with naming conventions",
              "Defines audience targeting per platform",
              "Sets budget allocation across platforms",
              "Defines success metrics",
              "Recommends starting structure and scaling plan"
            ],
            "files": []
          },
          {
            "id": 2,
            "prompt": "Our Google Ads CPC is $12 and our cost per lead is $180. Is that good? We're getting about 80 leads/month from a $15k budget.",
            "expected_output": "Should evaluate the metrics in context. Should assess: $12 CPC for B2B (reasonable depending on industry), $180 CPL (depends on LTV — need to compare against customer lifetime value), 80 leads/month from $15k (math checks out). Should apply the campaign optimization framework: check quality score, search term relevance, landing page conversion rate, negative keywords. Should recommend specific optimization levers to reduce CPC and CPL. Should frame performance against industry benchmarks if applicable. Should ask about downstream conversion rates (lead → demo → customer).",
            "assertions": [
              "Evaluates metrics in context",
              "Compares CPL against LTV considerations",
              "Applies campaign optimization framework",
              "Recommends specific optimization levers",
              "Asks about downstream conversion rates",
              "Provides industry context for benchmarking"
            ],
            "files": []
          },
          {
            "id": 3,
            "prompt": "we want to run retargeting ads for people who visited our site but didn't convert. how should we set this up?",
            "expected_output": "Should trigger on casual phrasing. Should apply the retargeting strategies section, specifically the funnel-based approach. Should recommend audience segments: all visitors (broad), pricing page visitors (high intent), blog readers (lower intent), and cart/signup abandoners (highest intent). Should recommend different messaging and offers for each segment. Should address frequency capping to avoid ad fatigue. Should recommend retargeting platforms (Meta, Google Display, LinkedIn). Should include duration windows for each audience.",
            "assertions": [
              "Triggers on casual phrasing",
              "Applies funnel-based retargeting approach",
              "Recommends audience segments by intent level",
              "Recommends different messaging per segment",
              "Addresses frequency capping",
              "Recommends retargeting platforms",
              "Includes audience duration windows"
            ],
            "files": []
          },
          {
            "id": 4,
            "prompt": "Should we advertise on TikTok? We sell accounting software to small businesses. Our current ads are on Google and Meta.",
            "expected_output": "Should apply the platform selection guide for TikTok specifically. Should evaluate TikTok fit for accounting software + small business audience: likely a weaker fit than Google/Meta for this category (lower purchase intent, younger skewing audience, less B2B targeting). Should discuss when TikTok CAN work for B2B (brand awareness, creative content, younger business owners). Should provide an honest recommendation with caveats. Should suggest a small test budget approach if they want to try.",
            "assertions": [
              "Applies platform selection guide for TikTok",
              "Evaluates fit for accounting + small business audience",
              "Provides honest assessment of likely weaker fit",
              "Discusses when TikTok can work for B2B",
              "Suggests small test budget if proceeding",
              "Compares to their existing Google/Meta performance"
            ],
            "files": []
          },
          {
            "id": 5,
            "prompt": "How do we structure our Google Ads campaigns? We have 50+ keywords we want to target for our CRM product.",
            "expected_output": "Should apply the campaign structure and naming conventions framework. Should recommend organizing campaigns by theme/intent (brand, competitor, product features, pain points). Should recommend ad group structure (tightly themed, 5-15 keywords per group). Should define naming conventions for campaigns and ad groups. Should recommend match types strategy. Should include negative keyword lists. Should provide a sample campaign structure.",
            "assertions": [
              "Applies campaign structure framework",
              "Organizes campaigns by theme/intent",
              "Recommends tight ad group structure",
              "Defines naming conventions",
              "Recommends match types strategy",
              "Includes negative keyword lists",
              "Provides sample campaign structure"
            ],
            "files": []
          },
          {
            "id": 6,
            "prompt": "Can you write some ad copy for our Facebook ads? We need headlines and descriptions for 5 different angles.",
            "expected_output": "Should recognize this is an ad creative generation task, not campaign strategy. Should defer to or cross-reference suede-ad-creative, which handles platform-specific ad copy generation with character limits, angle-based variation, and batch generation. May provide brief ad copy framework guidance but should make clear that suede-ad-creative is the right skill for generating ad copy at scale.",
            "assertions": [
              "Recognizes this as ad creative generation",
              "References or defers to suede-ad-creative",
              "Does not attempt bulk ad copy generation using campaign strategy patterns"
            ],
            "files": []
          }
        ]
      }
      
  • references
    • abm-playbook.md 7 KB
      # ABM Playbook (Paid)
      
      Account-based marketing with ads: targeting named accounts on LinkedIn and Meta, accelerating open pipeline, and stitching channels together. ABM ads are a *pipeline influence* motion, not a lead-gen motion — measure accordingly.
      
      ## Contents
      
      - When ABM (go/no-go)
      - LinkedIn ABM
      - ABM on Meta
      - Acceleration campaigns (ads against open pipeline)
      - Cross-channel orchestration
      - Cross-channel UTM remarketing
      - Sales orchestration
      - Measuring ABM
      
      ## When ABM (go/no-go)
      
      Run paid ABM when: target account list ≥ ~1,000 companies (or you accept 1:1/1:few economics), deal size ~$25K+, sales cycle 60+ days, sales and marketing actually aligned on the list, and (for Meta) contact enrichment available.
      
      Skip it when: TAL under ~500 with no enrichment, no first-party data, budget under ~$3K/month, or a short transactional cycle — standard ICP targeting will outperform.
      
      ## LinkedIn ABM
      
      Three motions, by list size:
      
      - **1:1** — add the company by name; fully personalized creative for one account.
      - **1:few** — up to ~10–20 accounts per campaign, shared pain/industry angle.
      - **1:many** — uploaded list (or native targeting), scaled creative.
      
      **List mechanics:**
      - LinkedIn needs **300 matched members minimum** to serve; aim for 1,000+ rows (duplicating company names to pad the upload is fine — it dedupes on match). Contact lists match best at scale (LinkedIn suggests ~10K emails); **company lists beat contact lists** for most teams — easier to source, better match rates, less maintenance.
      - Cold ABM audiences need ~15K members to deliver reliably.
      - **Segment mixed lists.** Left as one audience, LinkedIn over-serves the largest enterprises in the list — accounts have sat at 15% list coverage because the algorithm parked on a few big companies. Split into homogeneous bands (e.g., enterprise / mid-market / SMB) with separate campaigns and budgets.
      - List-based targeting typically buys reach materially cheaper than native firmographic targeting, with stronger decision-maker engagement.
      - Use the per-company engagement report (Audiences → click into the list) to find under-served priority accounts, then break them into a dedicated campaign.
      
      **Personalized 1:1 creative:** putting the target account's name/logo in the creative can lift CTR ~5–10× over generic ads. **Legal exception: do not run company-name/logo-personalized ads into Germany** — privacy law, not platform policy.
      
      **Frequency capping:** target ~3 impressions/person/week in priority accounts. Mechanic: build a company-engagement audience of accounts that crossed ~500 impressions in the last 7 days and add it as an *exclusion* — it self-rotates accounts out as they cool down. Tune the threshold (300 if fatigue shows, 750 for more pressure).
      
      ## ABM on Meta
      
      Meta has no native company targeting — the play is **bring your own matched audience**:
      
      - **The match-rate problem:** raw CRM exports of work emails match under ~5% on Meta. Enrichment providers (identity-graph tools that resolve work identities to personal profiles — e.g., Primer, Metadata, ZoomInfo, Clearbit) raise matches to ~40–85%. Workflow: firmographic criteria → identity-graph match → upload as Custom Audience → target directly or seed a 1% lookalike.
      - **Minimum sizes:** account-list audiences ~1,000 companies (5–10K optimal); retargeting slices work down to ~100 accounts; lookalike seeds want 500+.
      - Advantage+ **conflicts with strict ABM** — it won't stay locked to your list. Run ABM campaigns manual (or hybrid: manual for the list, Advantage+ for the broad layer).
      - Meta's ABM role is cheap **air cover and multi-threading** (reaching the buying committee beyond your champion) while LinkedIn does precision — see the split below.
      
      ## Acceleration campaigns (ads against open pipeline)
      
      Ads aimed at accounts already in your pipeline, to speed deals rather than source them:
      
      - Segment the CRM by stage (evaluation / proposal / negotiation), filter to deals worth the spend, upload as an audience, refresh weekly.
      - **Use an awareness/reach objective, not conversions** — you're keeping the vendor top-of-mind for the buying committee, not asking in-pipeline accounts to "book a demo" they already booked.
      - Creative: case studies, proof, objection-handlers — matched to stage. Budget scales with deal value (larger open deals justify $100–200/day of air cover; stalled deals get a maintenance dose).
      
      ## Cross-channel orchestration
      
      Default split for B2B ABM: **~60% LinkedIn / ~30% Meta / ~10% other**. LinkedIn buys precision (right person, right company) at $40–70 CPMs; Meta buys presence and committee reach at $10–25. Sequence LinkedIn first to validate the audience, then extend to Meta. Multi-channel ABM consistently and materially outperforms single-channel on engagement and conversion — the channels compound, they don't compete.
      
      ## Cross-channel UTM remarketing
      
      The cheapest high-quality audience you can build: retarget one platform's validated clickers on another platform.
      
      1. Tag all paid traffic with consistent UTMs (`utm_source=linkedin`, `utm_source=google&utm_medium=cpc`).
      2. On Meta, build a website Custom Audience with the rule **"URL contains `utm_source=linkedin`"** (or `utm_source=google`).
      3. Retarget that audience on Meta — LinkedIn-grade audience quality at Meta-grade CPMs (typically 50–70% cheaper reach).
      
      Works in both directions (search clickers → LinkedIn remarketing needs meaningful search volume — worth it above roughly $30K/month search spend). Requires enough source-channel traffic to clear minimum audience sizes. Use a consistent account/campaign token in UTMs so attribution survives the hop.
      
      ## Sales orchestration
      
      ABM ads without sales follow-up is billboard spend:
      
      - Pipe ad-engagement signals to the CRM (LinkedIn company-engagement exports, or connectors that sync engagement per account) and treat an engagement spike as a sales trigger — **outreach within ~48 hours** of the spike.
      - Route new leads to a shared channel (Slack webhook) with a per-campaign quality reaction (👍/👎) — the cheapest lead-quality feedback loop that exists.
      - Hold a monthly sales-marketing session on the list itself: who's engaging, who's dark, who closed — and re-cut the list.
      - Expect ~7–10 cross-channel touches before a sales conversation is normal at ABM deal sizes.
      
      ## Measuring ABM
      
      Judge ABM on account movement, not CPL:
      
      - **Account penetration** (% of list reached): target ~40–60%.
      - **Cost per engaged account** (not per click): ~$100–300 is a workable band.
      - **Account → opportunity rate:** ~10–20%.
      - **Pipeline influenced:** aim for 3–5× spend; expect win-rate and velocity improvements on engaged vs. non-engaged accounts.
      - **Incrementality:** hold out ~20% of the list from ads and compare pipeline formation after 21+ days — the only honest answer to "did the ads do anything?"
      
      ---
      
      *Framework lineage: adapted (re-expressed and restructured) from practitioner playbooks, notably Ivan Falco's ads-skills. Thresholds are practitioner-reported starting points — recalibrate against your own accounts.*
      
    • ad-copy-templates.md 4.7 KB
      # Ad Copy Templates Reference
      
      Detailed formulas and templates for writing high-converting ad copy.
      
      ## Contents
      - Primary Text Formulas (Problem-Agitate-Solve, Before-After-Bridge, Social Proof Lead, Feature-Benefit Bridge, Direct Response)
      - Headline Formulas (For Search Ads, For Social Ads)
      - CTA Variations (Soft CTAs, Hard CTAs, Urgency CTAs, Action-Oriented CTAs)
      - Platform-Specific Copy Guidelines (Google Search Ads, Meta Ads, LinkedIn Ads)
      - Copy Testing Priority
      
      ## Primary Text Formulas
      
      ### Problem-Agitate-Solve (PAS)
      
      ```
      [Problem statement]
      [Agitate the pain]
      [Introduce solution]
      [CTA]
      ```
      
      **Example:**
      > Spending hours on manual reporting every week?
      > While you're buried in spreadsheets, your competitors are making decisions.
      > [Product] automates your reports in minutes.
      > Start your free trial →
      
      ---
      
      ### Before-After-Bridge (BAB)
      
      ```
      [Current painful state]
      [Desired future state]
      [Your product as the bridge]
      ```
      
      **Example:**
      > Before: Chasing down approvals across email, Slack, and spreadsheets.
      > After: Every approval tracked, automated, and on time.
      > [Product] connects your tools and keeps projects moving.
      
      ---
      
      ### Social Proof Lead
      
      ```
      [Impressive stat or testimonial]
      [What you do]
      [CTA]
      ```
      
      **Example:**
      > "We cut our reporting time by 75%." — Sarah K., Marketing Director
      > [Product] automates the reports you hate building.
      > See how it works →
      
      ---
      
      ### Feature-Benefit Bridge
      
      ```
      [Feature]
      [So that...]
      [Which means...]
      ```
      
      **Example:**
      > Real-time collaboration on documents
      > So your team always works from the latest version
      > Which means no more version confusion or lost work
      
      ---
      
      ### Direct Response
      
      ```
      [Bold claim/outcome]
      [Proof point]
      [CTA with urgency if genuine]
      ```
      
      **Example:**
      > Cut your reporting time by 80%
      > Join 5,000+ marketing teams already using [Product]
      > Start free → First month 50% off
      
      ---
      
      ## Headline Formulas
      
      ### For Search Ads
      
      | Formula | Example |
      |---------|---------|
      | [Keyword] + [Benefit] | "Project Management That Teams Actually Use" |
      | [Action] + [Outcome] | "Automate Reports \| Save 10 Hours Weekly" |
      | [Question] | "Tired of Manual Data Entry?" |
      | [Number] + [Benefit] | "500+ Teams Trust [Product] for [Outcome]" |
      | [Keyword] + [Differentiator] | "CRM Built for Small Teams" |
      | [Price/Offer] + [Keyword] | "Free Project Management \| No Credit Card" |
      
      ### For Social Ads
      
      | Type | Example |
      |------|---------|
      | Outcome hook | "How we 3x'd our conversion rate" |
      | Curiosity hook | "The reporting hack no one talks about" |
      | Contrarian hook | "Why we stopped using [common tool]" |
      | Specificity hook | "The exact template we use for..." |
      | Question hook | "What if you could cut your admin time in half?" |
      | Number hook | "7 ways to improve your workflow today" |
      | Story hook | "We almost gave up. Then we found..." |
      
      ---
      
      ## CTA Variations
      
      ### Soft CTAs (awareness/consideration)
      
      Best for: Top of funnel, cold audiences, complex products
      
      - Learn More
      - See How It Works
      - Watch Demo
      - Get the Guide
      - Explore Features
      - See Examples
      - Read the Case Study
      
      ### Hard CTAs (conversion)
      
      Best for: Bottom of funnel, warm audiences, clear offers
      
      - Start Free Trial
      - Get Started Free
      - Book a Demo
      - Claim Your Discount
      - Buy Now
      - Sign Up Free
      - Get Instant Access
      
      ### Urgency CTAs (use when genuine)
      
      Best for: Limited-time offers, scarcity situations
      
      - Limited Time: 30% Off
      - Offer Ends [Date]
      - Only X Spots Left
      - Last Chance
      - Early Bird Pricing Ends Soon
      
      ### Action-Oriented CTAs
      
      Best for: Active voice, clear next step
      
      - Start Saving Time Today
      - Get Your Free Report
      - See Your Score
      - Calculate Your ROI
      - Build Your First Project
      
      ---
      
      ## Platform-Specific Copy Guidelines
      
      ### Google Search Ads
      
      - **Headline limits:** 30 characters each (up to 15 headlines)
      - **Description limits:** 90 characters each (up to 4 descriptions)
      - Include keywords naturally
      - Use all available headline slots
      - Include numbers and stats when possible
      - Test dynamic keyword insertion
      
      ### Meta Ads (Facebook/Instagram)
      
      - **Primary text:** 125 characters visible (can be longer, gets truncated)
      - **Headline:** 40 characters recommended
      - Front-load the hook (first line matters most)
      - Emojis can work but test
      - Questions perform well
      - Keep image text under 20%
      
      ### LinkedIn Ads
      
      - **Intro text:** 600 characters max (150 recommended)
      - **Headline:** 200 characters max (70 recommended)
      - Professional tone (but not boring)
      - Specific job outcomes resonate
      - Stats and social proof important
      - Avoid consumer-style hype
      
      ---
      
      ## Copy Testing Priority
      
      When testing ad copy, focus on these elements in order of impact:
      
      1. **Hook/angle** (biggest impact on performance)
      2. **Headline**
      3. **Primary benefit**
      4. **CTA**
      5. **Supporting proof points**
      
      Test one element at a time for clean data.
      
    • audience-targeting.md 5.9 KB
      # Audience Targeting Reference
      
      Detailed targeting strategies for each major ad platform.
      
      ## Contents
      - Google Ads Audiences (Search Campaign Targeting, Display/YouTube Targeting)
      - Meta Audiences (Core Audiences, Custom Audiences, Lookalike Audiences)
      - LinkedIn Audiences (Job-Based Targeting, Company-Based Targeting, High-Performing Combinations)
      - Twitter/X Audiences
      - TikTok Audiences
      - Audience Size Guidelines
      - Exclusion Strategy
      
      ## Google Ads Audiences
      
      ### Search Campaign Targeting
      
      **Keywords:**
      - Exact match: [keyword] — most precise, lower volume
      - Phrase match: "keyword" — moderate precision and volume
      - Broad match: keyword — highest volume, use with smart bidding
      
      **Audience layering:**
      - Add audiences in "observation" mode first
      - Analyze performance by audience
      - Switch to "targeting" mode for high performers
      
      **RLSA (Remarketing Lists for Search Ads):**
      - Bid higher on past visitors searching your terms
      - Show different ads to returning searchers
      - Exclude converters from prospecting campaigns
      
      ### Display/YouTube Targeting
      
      **Custom intent audiences:**
      - Based on recent search behavior
      - Create from your converting keywords
      - High intent, good for prospecting
      
      **In-market audiences:**
      - People actively researching solutions
      - Pre-built by Google
      - Layer with demographics for precision
      
      **Affinity audiences:**
      - Based on interests and habits
      - Better for awareness
      - Broad but can exclude irrelevant
      
      **Customer match:**
      - Upload email lists
      - Retarget existing customers
      - Create lookalikes from best customers
      
      **Similar/lookalike audiences:**
      - Based on your customer match lists
      - Expand reach while maintaining relevance
      - Best when source list is high-quality customers
      
      ---
      
      ## Meta Audiences
      
      ### Core Audiences (Interest/Demographic)
      
      **Interest targeting tips:**
      - Layer interests with AND logic for precision
      - Use Audience Insights to research interests
      - Start broad, let algorithm optimize
      - Exclude existing customers always
      
      **Demographic targeting:**
      - Age and gender (if product-specific)
      - Location (down to zip/postal code)
      - Language
      - Education and work (limited data now)
      
      **Behavior targeting:**
      - Purchase behavior
      - Device usage
      - Travel patterns
      - Life events
      
      ### Custom Audiences
      
      **Website visitors:**
      - All visitors (last 180 days max)
      - Specific page visitors
      - Time on site thresholds
      - Frequency (visited X times)
      
      **Customer list:**
      - Upload emails/phone numbers
      - Match rate typically 30-70%
      - Refresh regularly for accuracy
      
      **Engagement audiences:**
      - Video viewers (25%, 50%, 75%, 95%)
      - Page/profile engagers
      - Form openers
      - Instagram engagers
      
      **App activity:**
      - App installers
      - In-app events
      - Purchase events
      
      ### Lookalike Audiences
      
      **Source audience quality matters:**
      - Use high-LTV customers, not all customers
      - Purchasers > leads > all visitors
      - Minimum 100 source users, ideally 1,000+
      
      **Size recommendations:**
      - 1% — most similar, smallest reach
      - 1-3% — good balance for most
      - 3-5% — broader, good for scale
      - 5-10% — very broad, awareness only
      
      **Layering strategies:**
      - Lookalike + interest = more precision early
      - Test lookalike-only as you scale
      - Exclude the source audience
      
      ---
      
      ## LinkedIn Audiences
      
      ### Job-Based Targeting
      
      **Job titles:**
      - Be specific (CMO vs. "Marketing")
      - LinkedIn normalizes titles, but verify
      - Stack related titles
      - Exclude irrelevant titles
      
      **Job functions:**
      - Broader than titles
      - Combine with seniority level
      - Good for awareness campaigns
      
      **Seniority levels:**
      - Entry, Senior, Manager, Director, VP, CXO, Partner
      - Layer with function for precision
      
      **Skills:**
      - Self-reported, less reliable
      - Good for technical roles
      - Use as expansion layer
      
      ### Company-Based Targeting
      
      **Company size:**
      - 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5000+
      - Key filter for B2B
      
      **Industry:**
      - Based on company classification
      - Can be broad, layer with other criteria
      
      **Company names (ABM):**
      - Upload target account list
      - Minimum 300 companies recommended
      - Match rate varies
      
      **Company growth rate:**
      - Hiring rapidly = budget available
      - Good signal for timing
      
      ### High-Performing Combinations
      
      | Use Case | Targeting Combination |
      |----------|----------------------|
      | Enterprise sales | Company size 1000+ + VP/CXO + Industry |
      | SMB sales | Company size 11-200 + Manager/Director + Function |
      | Developer tools | Skills + Job function + Company type |
      | ABM campaigns | Company list + Decision-maker titles |
      | Broad awareness | Industry + Seniority + Geography |
      
      ---
      
      ## Twitter/X Audiences
      
      ### Targeting options:
      - Follower lookalikes (accounts similar to followers of X)
      - Interest categories
      - Keywords (in tweets)
      - Conversation topics
      - Events
      - Tailored audiences (your lists)
      
      ### Best practices:
      - Follower lookalikes of relevant accounts work well
      - Keyword targeting catches active conversations
      - Lower CPMs than LinkedIn/Meta
      - Less precise, better for awareness
      
      ---
      
      ## TikTok Audiences
      
      ### Targeting options:
      - Demographics (age, gender, location)
      - Interests (TikTok's categories)
      - Behaviors (video interactions)
      - Device (iOS/Android, connection type)
      - Custom audiences (pixel, customer file)
      - Lookalike audiences
      
      ### Best practices:
      - Younger skew (18-34 primarily)
      - Interest targeting is broad
      - Creative matters more than targeting
      - Let algorithm optimize with broad targeting
      
      ---
      
      ## Audience Size Guidelines
      
      | Platform | Minimum Recommended | Ideal Range |
      |----------|-------------------|-------------|
      | Google Search | 1,000+ searches/mo | 5,000-50,000 |
      | Google Display | 100,000+ | 500K-5M |
      | Meta | 100,000+ | 500K-10M |
      | LinkedIn | 50,000+ | 100K-500K |
      | Twitter/X | 50,000+ | 100K-1M |
      | TikTok | 100,000+ | 1M+ |
      
      Too narrow = expensive, slow learning
      Too broad = wasted spend, poor relevance
      
      ---
      
      ## Exclusion Strategy
      
      Always exclude:
      - Existing customers (unless upsell)
      - Recent converters (7-14 days)
      - Bounced visitors (<10 sec)
      - Employees (by company or email list)
      - Irrelevant page visitors (careers, support)
      - Competitors (if identifiable)
      
    • b2b-paid-playbook.md 7.8 KB
      # B2B Paid Playbook
      
      Cross-platform operating rules for B2B paid acquisition — where sales cycles run 2–24 months, in-platform conversions mislead, and lead *quality* matters more than lead cost. Use this alongside the platform playbooks ([Meta decision system](meta-decision-system.md), [LinkedIn](linkedin-b2b-playbook.md), [Google Search](google-search-playbook.md), [ABM](abm-playbook.md)).
      
      ## Contents
      
      - The Demand Lifecycle (5 stages, past the funnel)
      - Budget by stage
      - Leading vs. lagging signals
      - Unit economics: breakeven CPL and CPC
      - Kill rules
      - The optimize-to-quality trap (and the offline conversion loop)
      - Lead quality scoring (Urgency / Budget / Fit)
      - The scaling quadrant
      - Measurement maturity check
      - Channel selection
      
      ## The Demand Lifecycle (5 stages, past the funnel)
      
      TOFU/MOFU/BOFU stops at conversion. B2B revenue doesn't — closed-lost deals, open pipeline, and existing customers are all addressable with ads. Plan across five stages:
      
      | Stage | Outcome | Buyer awareness | Typical offers | KPIs |
      |-------|---------|-----------------|----------------|------|
      | **Create** | Build affinity & trust | Unaware / Problem-aware | Educational content, POV | Cost per consumption, blended cost/opp |
      | **Capture** | Convert in-market buyers | Solution / Product-aware | Demos, trials | Pipe-to-spend, direct cost/opp |
      | **Accelerate** (sales-led) / **Activate** (product-led) | Close open deals faster / convert free users | Product / Offer-aware | Case studies, webinars, events | Pipeline velocity, paid signups |
      | **Revive** | Restart closed-lost | Offer-aware | Incentivized demos, guided trials | SQOs created, cost/SQO |
      | **Expand** | Grow existing accounts | Most aware | Referral programs, new-feature content | Expansion revenue, influenced SQOs |
      
      **Build bottom-up for fastest ROI**: Expand → Revive → Accelerate/Activate → Capture → Create. The bottom stages are cheap, small-audience, and quick to pay back; Create is the biggest and slowest investment. Most teams build top-down and burn months waiting for ROI.
      
      ## Budget by stage
      
      | Stage | Budget size | Time to ROI | Difficulty |
      |-------|------------|-------------|------------|
      | Create | High | 90+ days | High (needs strong content + POV) |
      | Capture | Moderate | <45 days | High (expensive, competitive) |
      | Accelerate/Activate | Low | Tracks sales cycle | Low |
      | Revive | Low | <45 days | Low |
      | Expand | Low | <60 days | Medium (small audiences) |
      
      Weight by motion: product-led skews budget to Create + Capture; sales-led with a small TAM skews to Create + Accelerate. The stage with the most *pipeline* isn't automatically the stage that deserves the most *budget* — fund where pipeline share exceeds budget share and the audience is under-penetrated.
      
      ## Leading vs. lagging signals
      
      You can't optimize on closed-won when deals close in 6 months. Split every stage's metrics:
      
      - **Leading** (moves in <1 month — optimize on these): CTR, engagement, CPL, cost per qualified lead, accounts reached
      - **Lagging** (moves in >1 month — the truth, reviewed monthly/quarterly): pipe-to-spend, influenced revenue, time-to-close, expansion revenue
      
      The leading metric must demonstrably correlate with the lagging one — a proxy metric worth optimizing is measurable, moveable, not an average, and hard to game. If CPL falls while pipeline doesn't move, the proxy broke; fix the proxy, not the ads.
      
      ## Unit economics: breakeven CPL and CPC
      
      Derive targets from deal math, not platform benchmarks:
      
      - **Breakeven CPL** = average deal size × lead-to-close rate. ($3,000 ACV × 10% close = $300 CPL.)
      - **Breakeven CPC** = target CPL × landing page conversion rate. ($300 CPL × 5% LP conversion = $15 CPC.)
      
      Set the actual target below breakeven by your required margin. Every kill rule and scaling decision keys off this number.
      
      ## Kill rules
      
      Two hard rules that remove emotion from pausing decisions:
      
      - **Non-performer rule** (new ads, any time): pause once an ad has spent **2–3× target CPL with zero conversions**. Target CPL $300 → kill at $600–900 spent, no conversions.
      - **Maintenance rule** (ads past ~7–14 days): pause when an ad's CPL runs **1.5–2× over target**. Target $300 → kill at $450–600 CPL.
      
      These aren't statistically rigorous — they're repeatable, cheap to apply, and better than deciding by mood. Never pause a producer without a replacement staged (see the swap rules in the [Meta decision system](meta-decision-system.md)).
      
      ## The optimize-to-quality trap (and the offline conversion loop)
      
      Smart bidding optimizes toward whatever you call a "conversion." Feed it raw form-fills and it will buy you cheap junk form-fills — CPL improves while pipeline dies. The fix, in order:
      
      1. **Close the offline conversion loop.** Push CRM stage changes (MQL → SQL → opportunity → closed-won) back to the ad platforms — GCLID + offline import on Google, CAPI lifecycle events on Meta, conversion API on LinkedIn. This is the single highest-impact move in a B2B ad account: the algorithm starts buying pipeline instead of form-fills.
      2. **Value conversions differently.** A demo request is not an ebook download.
      3. **Until offline data flows, keep a human reading lead quality weekly** — job titles and companies, not just CPL.
      
      Reconcile platform-reported conversions against the CRM monthly. When they disagree, **the CRM wins**.
      
      ## Lead quality scoring (Urgency / Budget / Fit)
      
      The platform can't see lead quality — score it yourself and rank ads by it:
      
      - **Urgency** (0–3): 0 browsing → 3 burning need with timeline
      - **Budget** (0–3): 0 none/no authority → 3 approved and ready
      - **Fit** (0–3): 0 not ICP → 3 perfect ICP
      
      Whoever runs the sales calls scores each lead (max 9) and logs it against the originating ad. After ~20 scored calls, **rank ads by average quality score, not CPL or CTR** — the ad with the best CPL is regularly the one producing 3/9 leads. Scale the high-score ads; kill variations whose average drops below ~5.
      
      ## The scaling quadrant
      
      Route scaling tactics by your actual constraint:
      
      | | Low effort | High effort |
      |---|---|---|
      | **High budget** | **Audiences** — bigger audiences, more segments, more frequency | **Geography** — new countries/regions (localization work) |
      | **Low budget** | **Ads** — new creative, angles, formats | **Objectives & bids** — change objective or bid strategy to buy cheaper |
      
      - Have budget but no time → work the top row (audiences, then geo).
      - Need scale but capped on budget → work the bottom row (better creative and cheaper bidding free up money).
      
      ## Measurement maturity check
      
      Before scaling spend, score yourself 1–3 on each: blended pipeline dashboard; per-channel dashboard; conversion tracking (1 = none, 2 = pixel only, 3 = offline conversions flowing); web analytics; a documented, agreed attribution process. Under ~6/15, fix visibility before adding budget — you're flying blind and every optimization is a guess. Fix the lowest score first.
      
      ## Channel selection
      
      Five channel families: paid social, paid search, **paid review listings** (G2, Capterra, Software Advice — often skipped, high intent), programmatic (display, audio, CTV, native), and sponsorships (newsletters, podcasts, events, creators). Evaluate on four axes: can you actually target your ICP; media cost (CPC/CPM); reach at your targeting; platform policy for your industry.
      
      Before committing to a new channel, **run a ~$100 test campaign** to learn its real CPC/CPM for your targeting — platform estimates and published benchmarks are consistently wrong for specific ICPs.
      
      ---
      
      *Framework lineage: several operating rules in this file are adapted (re-expressed, restructured, and extended) from practitioner playbooks, notably Ivan Falco's ads-skills. Benchmarks and thresholds are practitioner-reported starting points — always recalibrate against your own account's first 30 days.*
      
    • conversion-tracking.md 10.9 KB
      # Conversion Tracking Setup
      
      How to set up conversion tracking pixels across ad platforms. This guide covers installation, event configuration, and validation — everything a marketer needs to ensure ad spend is properly attributed.
      
      ---
      
      ## Why This Matters
      
      Without conversion tracking:
      - Ad platforms can't optimize for your actual goals
      - You're flying blind on ROAS and CPA
      - Retargeting audiences can't be built
      - You'll waste budget on impressions that don't convert
      
      Get tracking right before spending a dollar on ads.
      
      ---
      
      ## Platform Pixels Overview
      
      | Platform | Pixel/Tag Name | Events API | Key Events |
      |----------|---------------|:----------:|------------|
      | **Google Ads** | Google tag (gtag.js) | Enhanced Conversions | purchase, sign_up, generate_lead |
      | **Meta** | Meta Pixel + CAPI | Conversions API | Purchase, Lead, ViewContent, AddToCart |
      | **LinkedIn** | Insight Tag | Conversions API | conversion (URL or event-based) |
      | **TikTok** | TikTok Pixel | Events API | Purchase, ViewContent, AddToCart, CompleteRegistration |
      | **Twitter/X** | Twitter Pixel | - | Purchase, SignUp, Download |
      
      ---
      
      ## Google Ads
      
      ### Install the Google tag
      
      Add to every page, in `<head>`:
      
      ```html
      <script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
      <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());
        gtag('config', 'AW-XXXXXXXXX');
      </script>
      ```
      
      Replace `AW-XXXXXXXXX` with your Conversion ID from Google Ads > Tools > Conversions.
      
      ### Set up conversion actions
      
      In Google Ads > Goals > Conversions > New conversion action:
      
      | Conversion | Category | Value | Count |
      |-----------|----------|-------|-------|
      | Purchase | Purchase | Dynamic (order value) | Every |
      | Sign up / Lead | Sign-up | Fixed ($X estimated value) | One |
      | Demo request | Lead | Fixed ($X estimated value) | One |
      | Free trial start | Sign-up | Fixed ($X estimated value) | One |
      
      ### Fire conversion events
      
      ```javascript
      // Purchase
      gtag('event', 'conversion', {
        'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
        'value': 99.00,
        'currency': 'USD',
        'transaction_id': 'ORDER-123'
      });
      
      // Lead / Sign up
      gtag('event', 'conversion', {
        'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
        'value': 50.00,
        'currency': 'USD'
      });
      ```
      
      ### Enhanced Conversions
      
      Sends hashed first-party data (email, phone) to improve attribution after cookie restrictions. Enable in Google Ads > Goals > Settings > Enhanced conversions.
      
      ```javascript
      gtag('set', 'user_data', {
        'email': 'user@example.com',      // auto-hashed by gtag
        'phone_number': '+11234567890'
      });
      ```
      
      ### Google Tag Manager alternative
      
      If using GTM instead of inline gtag.js:
      1. Install GTM container on all pages
      2. Create Google Ads conversion tags in GTM
      3. Set triggers for conversion events (form submissions, purchases)
      4. Use the Data Layer to pass dynamic values (order amount, transaction ID)
      5. Test with GTM Preview mode before publishing
      
      ---
      
      ## Meta (Facebook/Instagram)
      
      ### Install the Meta Pixel
      
      Add to every page, in `<head>`:
      
      ```html
      <script>
        !function(f,b,e,v,n,t,s)
        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
        n.queue=[];t=b.createElement(e);t.async=!0;
        t.src=v;s=b.getElementsByTagName(e)[0];
        s.parentNode.insertBefore(t,s)}(window, document,'script',
        'https://connect.facebook.net/en_US/fbevents.js');
        fbq('init', 'YOUR_PIXEL_ID');
        fbq('track', 'PageView');
      </script>
      ```
      
      Replace `YOUR_PIXEL_ID` from Meta Events Manager.
      
      ### Standard events
      
      ```javascript
      // View a product or key page
      fbq('track', 'ViewContent', {
        content_name: 'Pro Plan',
        content_category: 'Pricing',
        value: 29.00,
        currency: 'USD'
      });
      
      // Lead capture (form submit, demo request)
      fbq('track', 'Lead', {
        content_name: 'Demo Request',
        value: 50.00,
        currency: 'USD'
      });
      
      // Purchase
      fbq('track', 'Purchase', {
        value: 99.00,
        currency: 'USD',
        content_type: 'product',
        contents: [{ id: 'pro-plan', quantity: 1 }]
      });
      
      // Add to cart (e-commerce)
      fbq('track', 'AddToCart', {
        content_ids: ['SKU-123'],
        content_type: 'product',
        value: 49.00,
        currency: 'USD'
      });
      ```
      
      ### Conversions API (CAPI)
      
      Server-side tracking that works alongside the pixel. Required for accurate tracking after iOS 14+ and cookie restrictions.
      
      Set up via:
      - **Direct integration** — send events from your server to Meta's API
      - **Partner integrations** — Shopify, WooCommerce, Segment, etc. have built-in CAPI support
      - **Conversions API Gateway** — Meta's managed solution via AWS
      
      Key: send the same events from both pixel (browser) AND CAPI (server), with a shared `event_id` for deduplication.
      
      ### Aggregated Event Measurement
      
      Required for iOS 14+ tracking. In Events Manager > Aggregated Event Measurement:
      1. Verify your domain
      2. Configure and prioritize your top 8 events in order of business importance
      3. Purchase should typically be #1, Lead #2
      
      ---
      
      ## LinkedIn
      
      ### Install the Insight Tag
      
      Add to every page, before `</body>`:
      
      ```html
      <script type="text/javascript">
        _linkedin_partner_id = "YOUR_PARTNER_ID";
        window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
        window._linkedin_data_partner_ids.push(_linkedin_partner_id);
        (function(l) {
          if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
          window.lintrk.q=[]}
          var s = document.getElementsByTagName("script")[0];
          var b = document.createElement("script");
          b.type = "text/javascript";b.async = true;
          b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
          s.parentNode.insertBefore(b, s);})(window.lintrk);
      </script>
      ```
      
      ### Conversion tracking
      
      LinkedIn supports two methods:
      
      **URL-based**: Fires when someone visits a specific URL (e.g., `/thank-you`).
      Set up in Campaign Manager > Analyze > Conversion Tracking > Create Conversion.
      
      **Event-based**: Fire manually on specific actions:
      
      ```javascript
      window.lintrk('track', { conversion_id: YOUR_CONVERSION_ID });
      ```
      
      ### LinkedIn CAPI
      
      For server-side tracking, LinkedIn offers a Conversions API. Set up via partner integrations (Segment, Tealium) or direct API calls. Deduplicates with the Insight Tag automatically when configured correctly.
      
      ---
      
      ## TikTok
      
      ### Install the TikTok Pixel
      
      Add to every page, in `<head>`:
      
      ```html
      <script>
        !function (w, d, t) {
          w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];
          ttq.methods=["page","track","identify","instances","debug","on","off",
          "once","ready","alias","group","enableCookie","disableCookie","holdConsent",
          "revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e)
          {t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};
          for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);
          ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;
          n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e};
          ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",
          o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,
          ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},
          ttq._o[e]=n||{};var s=document.createElement("script");
          s.type="text/javascript",s.async=!0,s.src=r+"?sdkid="+e+"&lib="+t;
          var a=document.getElementsByTagName("script")[0];
          a.parentNode.insertBefore(s,a)};
          ttq.load('YOUR_PIXEL_ID');
          ttq.page();
        }(window, document, 'ttq');
      </script>
      ```
      
      ### Standard events
      
      ```javascript
      // View content
      ttq.track('ViewContent', {
        content_id: 'pro-plan',
        content_type: 'product',
        content_name: 'Pro Plan',
        value: 29.00,
        currency: 'USD'
      });
      
      // Complete registration / sign up
      ttq.track('CompleteRegistration', {
        content_name: 'Free Trial'
      });
      
      // Purchase
      ttq.track('Purchase', {
        content_id: 'pro-plan',
        content_type: 'product',
        value: 99.00,
        currency: 'USD',
        quantity: 1
      });
      
      // Add to cart
      ttq.track('AddToCart', {
        content_id: 'SKU-123',
        content_type: 'product',
        value: 49.00,
        currency: 'USD'
      });
      ```
      
      ### Events API (server-side)
      
      TikTok's Events API works like Meta's CAPI — send the same events from your server for better attribution. Use `event_id` for deduplication with browser pixel events.
      
      ### Advanced Matching
      
      Pass hashed user data for better attribution:
      
      ```javascript
      ttq.identify({
        email: 'user@example.com',       // auto-hashed
        phone_number: '+11234567890'
      });
      ```
      
      ---
      
      ## Validation Checklist
      
      After installing any pixel, verify before going live:
      
      ### Browser-side checks
      
      - [ ] Pixel fires on every page (check via browser extension)
      - [ ] Conversion events fire at the right moment (after confirmed action, not on button click)
      - [ ] Event parameters contain correct values (currency, amount, content IDs)
      - [ ] No duplicate events firing on the same action
      - [ ] Events fire on both desktop and mobile
      
      ### Platform-side checks
      
      - [ ] Events appear in the platform's event manager/diagnostics
      - [ ] Test conversions show correct values
      - [ ] Event match quality is acceptable (Meta: score > 6)
      - [ ] Server-side events are deduplicating with browser events (not double-counting)
      
      ### Debugging tools
      
      | Platform | Tool |
      |----------|------|
      | Google | Google Tag Assistant, Chrome DevTools Network tab |
      | Meta | Meta Pixel Helper (Chrome extension), Events Manager Test Events |
      | LinkedIn | Insight Tag Validator in Campaign Manager |
      | TikTok | TikTok Pixel Helper (Chrome extension), Events Manager |
      | All | GTM Preview Mode (if using Google Tag Manager) |
      
      ---
      
      ## Common Mistakes
      
      - **Firing purchase events on button click instead of confirmed payment** — always fire on the success/thank-you page or after server confirmation
      - **Missing deduplication between pixel and server events** — without a shared `event_id`, you'll double-count conversions
      - **Not testing on mobile** — many pixels break on mobile browsers or in-app webviews
      - **Hardcoded test values** — remove test transaction amounts before going live
      - **Forgetting to exclude internal traffic** — your team's visits inflate conversion data
      - **Installing pixels without consent management** — GDPR/CCPA require user consent before firing tracking pixels in applicable regions
      - **Pixel installed but no conversion actions created** — the pixel collects data, but the ad platform won't optimize without defined conversion actions
      
      ---
      
      ## When to Use Server-Side Tracking
      
      Browser-only tracking is increasingly unreliable due to:
      - iOS 14+ App Tracking Transparency
      - Third-party cookie deprecation
      - Ad blockers (30%+ of tech audiences)
      
      **Use server-side (CAPI/Events API) when:**
      - Running Meta or TikTok ads (strongly recommended)
      - Your audience is tech-savvy (higher ad blocker usage)
      - You need accurate purchase/revenue attribution
      - You're spending >$5K/month on any platform
      
      **Server-side is optional when:**
      - Running Google Ads only (Enhanced Conversions covers most gaps)
      - Low ad spend / testing phase
      - B2B with LinkedIn only (Insight Tag is still reliable)
      
    • google-search-playbook.md 9.6 KB
      # Google Search Playbook (B2B)
      
      Intent-first operating rules for Google Ads: where to spend first, how to structure the account, when to loosen match types, and how to keep smart bidding pointed at revenue instead of junk form-fills. For RSA generation mechanics, see [rsa-output-spec.md](rsa-output-spec.md).
      
      ## Contents
      
      - The intent ladder
      - Brand bidding (and the pause test)
      - Capture before you create
      - Account structure
      - Keywords and match types
      - Negative keywords
      - The weekly search-terms ritual
      - Bidding by conversion volume
      - Offline conversions
      - Quality Score and landing pages
      - PMax for B2B
      - Benchmarks and the weekly scorecard
      
      ## The intent ladder
      
      Spend opens rung by rung — each tier unlocks only after the one below proves it converts to *pipeline*:
      
      1. **Brand** — "they want you" (brand name, brand + pricing/login). Cheapest clicks, highest conversion. Always on.
      2. **High-intent non-brand** — ready to buy ("cold email software," "best CRM for agencies"). The profit center; most budget lives here.
      3. **Competitor** — evaluating alternatives ("[competitor] alternative/vs"). Higher CPC, lower CVR; run selectively with dedicated comparison pages.
      4. **Problem-aware** — has the problem, isn't shopping ("how to scale outbound"). Longer payback; only after tiers 1–2 work.
      5. **Demand-gen/awareness** — broad, Display, YouTube. Last, with spare budget only.
      
      **Don't skip rungs.** Broad spend before high-intent proof is how B2B accounts burn budgets with nothing in the CRM.
      
      ## Brand bidding (and the pause test)
      
      Bid on brand by default — if you don't, competitors will, and you pay in lost deals rather than clicks. The exception: if you're the only bidder and organic owns the whole SERP, test pausing brand and watch **total brand conversions (paid + organic)**, not just paid. If total holds, you were cannibalizing yourself; if it drops, turn it back on. Cap brand budget — it rarely needs much, and shared budgets let brand eat everything (see below).
      
      ## Capture before you create
      
      Search **harvests existing demand**; it cannot create demand. If your category has near-zero search volume, say so and put the budget upstream (LinkedIn/Meta/YouTube) instead of forcing keywords nobody types. Demand creation happens on social; Search is where you catch it landing.
      
      ## Account structure
      
      Minimum viable split — each with an **independent budget**:
      
      - **Brand** (own budget — never shared)
      - **Non-brand high-intent** (one campaign, themed ad groups by solution)
      - **Competitor** (own budget and messaging — its CPC/CVR economics are different)
      - **Remarketing** (separate from Search)
      
      Why independent budgets: in a shared budget the cheapest, highest-converting campaign (always brand) starves the ones you actually need data from. The account looks profitable on paper and is blind everywhere that matters.
      
      - **Themed ad groups, not SKAGs:** 5–15 closely related keywords sharing one intent, answerable by one promise. If two keywords need different landing pages or value props, split the group. 2–3 RSAs per ad group.
      - **Consolidation rule:** a campaign that can't reach ~15–30 conversions/month can't feed smart bidding — merge it. Fewer, better-fed campaigns beat elaborate structures in low-volume B2B.
      - **Default settings to flip on every new Search campaign:** turn OFF Search Partners and Display Network until proven; set location targeting to **"Presence"** (people physically in the target geo — the default "presence or interest" serves people merely interested in it); remember language targeting keys off the user's Google interface language, not the query language.
      - **Don't compete with yourself:** the same keyword at the same match type in multiple ad groups splits your data and bids against your own account. Use negatives to route each query to exactly one home.
      
      ## Keywords and match types
      
      Source keywords from how **buyers describe the problem** (sales-call language, your own search-terms report, competitor ad copy) — not how you describe the product. A keyword with 50 searches/month and clear intent beats one with 5,000 and mixed intent. Tag every keyword by intent tier.
      
      **Match-type progression — in this order:**
      
      1. Start high-intent terms on **Phrase + Exact** (Exact still matches close variants; Phrase is the B2B workhorse), manual CPC or Max Conversions while volume is low.
      2. Mine the search-terms report weekly (ritual below).
      3. Introduce **Broad only after**: 30+ conversions/month in the campaign, AND smart bidding live, AND a tight negative list. Broad without all three is a donation to Google.
      
      ## Negative keywords
      
      Starter lists to apply at build time:
      
      - **Universal junk:** free, cheap, jobs, salary, hiring, career, intern, student, course, tutorial, training, certification, pdf, template, reddit, wiki, login (except in brand campaigns)
      - **Research intent:** "what is," "how to," "examples," "meaning," "definition"
      - **Category collisions:** terms your category shares with an unrelated one (selling sales-engagement? negative "employee engagement")
      - **Your brand as a negative in non-brand campaigns** — routes brand traffic to the brand campaign where it belongs
      
      **Match-type mechanics gotcha:** negative broad requires ALL its words present (any order) — negative broad "free trial" does **not** block "free" alone. Negative phrase blocks in-order phrases; negative exact blocks only that exact query. Most accidental over-blocking and under-blocking traces to this.
      
      **Don't over-negative:** every negative narrows reach, and it compounds fast at B2B volumes. Negative the clearly wrong, not the merely uncertain — an ambiguous term deserves more data before it's cut.
      
      ## The weekly search-terms ritual
      
      Once a week per campaign, three passes:
      
      1. **Waste:** terms with spend (3+ clicks) and zero conversions → negative the irrelevant ones.
      2. **Winners:** converting search terms that aren't keywords yet → add as Exact/Phrase in the right ad group.
      3. **Drift:** broad/phrase matches pulling adjacent-but-wrong meanings → tighten the match type or negative the drift.
      
      ## Bidding by conversion volume
      
      | Conversions/month (campaign) | Strategy |
      |---|---|
      | 0–15 | Manual CPC or Maximize Conversions (no target) |
      | 15–30 | Maximize Conversions |
      | 30+ stable | Target CPA — set at or slightly above your trailing 30-day actual |
      | Real revenue values flowing back | Target ROAS |
      
      Rules of thumb: smart bidding needs ~30 conversions in 30 days per campaign to learn. Set tCPA near actuals — an aggressively low target chokes delivery (Google just stops bidding). Move targets in **±10–15% steps and wait 1–2 weeks**; every change restarts learning, so don't panic-edit inside the learning window. Budget mechanics: campaigns can spend up to **2× daily budget** in a day (Google balances monthly — single-day overspend is normal); a budget-capped campaign that's converting often *lowers* its CPA when you raise the budget, because constrained smart bidding underperforms.
      
      ## Offline conversions
      
      The single highest-impact move in a B2B Google account: **import CRM outcomes** (SQL, opportunity, closed-won) back into Google via GCLID + offline conversion import or a native CRM integration, with real deal values. Until then, smart bidding optimizes to form-fills and buys you junk (see the optimize-to-quality trap in [b2b-paid-playbook.md](b2b-paid-playbook.md)). B2B clicks close in 60–180 days — in-platform conversion counts will never tell the truth on their own. Reconcile against the CRM monthly; the CRM wins.
      
      ## Quality Score and landing pages
      
      QS (1–10, per keyword) = expected CTR + ad relevance + landing page experience. Low QS means paying more for the same position — **fix the weak component before raising the bid.** Landing page rules that move it: message match (page headline echoes the ad's promise and the query — not a generic homepage); one job and one CTA per page; speed; proof above the fold. **Form length is an intent gate:** short forms buy volume at lower quality, longer qualified forms buy fewer/better — match it to what you're feeding back as the conversion event.
      
      ## PMax for B2B
      
      Value ranking: **brand Search > high-intent non-brand Search > remarketing > PMax > broad demand-gen.** PMax earns budget only after the cheaper, clearer wins are maxed. Never run it as the first campaign, on weak tracking, or on tiny budgets.
      
      Guardrails when you do run it: account-level **brand exclusions** (or it cannibalizes brand Search and claims the credit); audience signals from first-party data; negative keywords from day one; offline conversions imported *before* scaling it; check the CRM quality of PMax leads by campaign — if they convert to pipeline at half the rate of Search leads, PMax is cheap-looking and expensive-in-reality. Google auto-generates a bad video if you don't supply one.
      
      ## Benchmarks and the weekly scorecard
      
      B2B SaaS Search ranges (wide on purpose — anchor to your own first 30 days): brand CTR 8–20%, CVR 15–40%; non-brand high-intent CTR 2–6%, CVR 3–10%, CPC $8–40+, CPL $80–400+; competitor terms run higher CPC and lower CVR than non-brand.
      
      Weekly scorecard — exactly eight numbers: spend · leads · CPL · lead→SQL rate (from CRM) · SQLs · cost per SQL · Search impression share · top wasted search terms. Diagnostic: **Search Lost IS (budget)** vs **Lost IS (rank)** tells you whether you're capped by money or by Ad Rank — different problems, different fixes. If the eight are healthy and trending right, the account is healthy.
      
      ---
      
      *Framework lineage: adapted (re-expressed and restructured) from practitioner playbooks, notably Ivan Falco's ads-skills. Benchmarks are practitioner-reported starting points — recalibrate against your own account.*
      
    • linkedin-b2b-playbook.md 8.7 KB
      # LinkedIn B2B Playbook
      
      Operational rules for LinkedIn Ads: bidding, audience sizing, scaling triggers, benchmarks, and format-specific tactics. LinkedIn is the precision channel — highest-quality B2B targeting at the highest cost, so the operating discipline is about not wasting that precision.
      
      ## Contents
      
      - Bidding progression
      - Audience sizing rules
      - Job functions vs. job titles
      - Audience splitting rules
      - Penetration-based scaling
      - Benchmarks by funnel stage
      - Thought leader ads (TLAs)
      - Campaign group build order
      - Format notes (document, conversation, CTV)
      - Retargeting setup (non-retroactive!)
      - Account audit shortlist
      
      ## Bidding progression
      
      1. **Week 1:** launch on automated bidding / maximum delivery. Don't touch it — you're buying CPC data.
      2. **Week 2+:** switch to manual CPC set **~20% below the average CPC** the automated phase produced. This reliably cuts CPC without killing delivery.
      3. **Exceptions:** small retargeting/ABM audiences stay on automated (manual underdelivers on small pools); reset to automated for a week whenever you change objective; audiences under ~10K may never spend their full budget at any bid.
      
      Scheduling note: LinkedIn's ad day resets at UTC midnight. Professional activity peaks weekday mornings–early afternoon in the audience's timezone; dayparting there stretches limited budgets.
      
      ## Audience sizing rules
      
      - **Cold prospecting:** 50K–300K members. Minimum ~15K per cold campaign.
      - **Too-narrow failure mode:** hyper-narrow audiences spike CPMs several-fold and stall delivery entirely — budget won't spend at any bid. If it's not spending, the audience is usually too small, not the bid too low.
      - **Tiny TAM (<~30K addressable):** skip the TOF/BOF split — run one campaign that saturates the whole audience with all funnel layers.
      - **Retargeting:** audiences of roughly 1K–5K per segment (site visitors, 50%+ video viewers) are workable; below ~300 won't deliver.
      
      ## Job functions vs. job titles
      
      Title targeting is precise but small and expensive. **Job function + seniority** targeting typically triples the addressable audience with materially cheaper reach at similar engagement — at the cost of a weekly "negative title" exclusion pass for the first ~2 months (like negative keywords: exclude irrelevant titles as they show up in demographics).
      
      Platform gotchas:
      - **Job-title targeting and seniority targeting are mutually exclusive** — you can't stack them. Entry-level exclusions only work under function/seniority targeting.
      - The **Business Development function includes many CEOs, CMOs, and managing directors.** Don't blanket-exclude BD if you sell to the C-suite — filter with seniority exclusions instead.
      - Leave **Audience Expansion OFF** (it quietly spends a meaningful share of budget on out-of-ICP members) and **Audience Network OFF** for B2B lead gen.
      
      ## Audience splitting rules
      
      Split priority: **intent > persona > region/company size > seniority.**
      
      - **Region:** keep the US separate (most expensive market — grouped with cheaper regions, it eats the budget). DACH needs localized ads; UK/Canada/Australia group fine; Nordics/Netherlands run fine in English. Never group an expensive market with small ones.
      - **Company size:** segment by employee count (not revenue — LinkedIn's revenue data is estimated). Start with two bands, not three. Left unsegmented, LinkedIn over-serves the extremes (small companies and very large ones) and underserves mid-market — splitting forces fair distribution.
      
      ## Penetration-based scaling
      
      Audience penetration (reached ÷ audience size) is the scaling trigger, not spend:
      
      - 30-day penetration **<25%** → room to raise budget on this audience.
      - **25–35%** → hold; let penetration accumulate before adding spend.
      - **~35%+** = healthy saturation → scale horizontally (new audiences), not vertically.
      - Expect diminishing returns: doubling budget grows penetration ~50–70%, not 100%.
      - One campaign at 35%+ penetration beats three campaigns at 12% each — consolidate before multiplying.
      - **Spend rising but reach flat (frequency climbing)?** Either competitors outbid you or ad quality is dragging your auction price. Strong ads → raise budget/bids; weak ads → fix creative first, more money just buys the same people again.
      
      ## Benchmarks by funnel stage
      
      Practitioner-reported B2B SaaS ranges — recalibrate on your own account. **Careful:** for engagement-objective and thought-leader campaigns, LinkedIn's reported "CTR" includes social actions; judge traffic on **click-through to landing page (CTRTLP)** specifically.
      
      | Metric | Cold / TOF | MOF | BOF/retargeting |
      |---|---|---|---|
      | CTRTLP | 0.30–0.55% | 0.55–0.80% | 0.80–1.30% |
      | CPM | $33–65 typical | — | — |
      | CPC | $8–22+ | — | lower |
      | Cost per lead (Lead Gen Form) | — | $50–200 | — |
      | Cost per website form fill | — | — | $200–500 |
      
      Other useful bars: lead-gen form fill rate >8% (below = form too long, offer weak, or audience too cold); cost per SQL should stay under ~$500 (enterprise ACVs tolerate $300–500+ CPLs; SMB needs $50–150); video view rate >40%, completion 8–15% for horizontal; expect return data to lag 3–6 months.
      
      ## Thought leader ads (TLAs)
      
      Ads promoted from a person's profile rather than the company page — currently the platform's biggest efficiency arbitrage:
      
      - TLAs typically deliver **~3–6× the CTR of company-page ads** at a fraction of the CPC.
      - **Non-employee/creator TLAs often outperform employee TLAs** — partnerships with niche creators are worth 30–50% of TLA budget if available.
      - **Organic-first pipeline:** posts that hit ~2–3% organic CTR are your TLA candidates — the audience already voted.
      - **The 72-hour edit:** organic reach concentrates in a post's first ~3 days. Let it run organic, then edit the post to add the CTA/product mention and promote it as a TLA — you capture organic credibility first, then convert it to demand gen.
      - Auction insight: single-image ads face the most auction competition. Document, conversation, and TLA formats often buy cheaper reach purely because fewer advertisers use them — format diversification is a *bidding* tactic, not just creative variety.
      
      ## Campaign group build order
      
      Add groups in ROI order, funding each before the next: **1. Product value** (direct response on your core offer) → **2. Remarketing** → **3. Content** (only content that can't be consumed in-feed — it must earn the click) → **4. Social proof** (case studies, testimonials) → **5. Thought leadership** (slowest payback, add last). Group-budget optimization tends to favor cheap audiences and video — don't mix enterprise with SMB or static with video in one group.
      
      ## Format notes
      
      - **Document ads:** always 1080×1350 portrait (4:5). 5–7 slides: hook → pain → shift → solution → differentiators → CTA. The classic mistake is making the "solution" slide generic category requirements and the "differentiator" slide a rehash — slide N must add what slide N-1 couldn't. Big standalone stat slides (one number, source small) carry these.
      - **Conversation ads:** subject 2–4 words; 3–5 short lines per message; specific numbers beat vague benefit claims; lead with a soft CTA ("see how it works") over "book a demo"; route the primary CTA to a Lead Gen Form, not a scheduling link. Benchmarks: 35–50%+ open rate, 2–5% CTR.
      - **CTV:** Brand Awareness objective only, auto-bid only, ~$50/day minimum, limited geos. Completion metrics are meaningless (forced view). Only worth it above roughly $15K/month total spend — below that it cannibalizes measurable-signal budget.
      
      ## Retargeting setup (non-retroactive!)
      
      **LinkedIn retargeting audiences only start collecting from the moment you create them.** Create every retargeting audience you might ever want (site visitors, video viewers, ad engagers, lead-form openers, company page visitors) **before launch** — data you didn't capture is gone permanently.
      
      Cross-channel: tag paid-search traffic with UTMs and build LinkedIn (and Meta) retargeting audiences from it — see the [ABM playbook](abm-playbook.md) for the mechanic.
      
      ## Account audit shortlist
      
      The highest-frequency findings when auditing LinkedIn accounts, in order: Audience Expansion left on · Audience Network left on · audiences too small to deliver · fewer than 4 active ads per campaign · campaigns under ~10 results/week (starved — consolidate) · stale creative (3+ months old) · no retargeting audiences created · lead quality never reconciled against CRM · brand/geo budget mixing · everything on automated bidding forever.
      
      ---
      
      *Framework lineage: adapted (re-expressed and restructured) from practitioner playbooks, notably Ivan Falco's ads-skills. Benchmarks are practitioner-reported starting points — recalibrate against your own account.*
      
    • meta-decision-system.md 10.2 KB
      # Meta Decision System (B2B)
      
      A quantified kill/keep/scale engine for Meta ads. Every threshold derives from one anchor number, so decisions become arithmetic instead of vibes. Pairs with the strategy-level Meta playbook in SKILL.md (creative-as-targeting, creative volume) — this file is the *operating* layer.
      
      ## Contents
      
      - TCPL: the anchor variable
      - The ad-count ceiling
      - Two-campaign structure (Scaling / Testing)
      - Stage 1: delivery check (day 7)
      - Stage 2: quality evaluation (weekly)
      - Graduation criteria
      - Fatigue detection
      - Swap rules
      - Creative production math
      - Scaling protocol
      - Weekly cadence
      - Lead forms and social amnesia
      - Advantage+ transition
      - Benchmarks and seasonality
      
      ## TCPL: the anchor variable
      
      TCPL = **Target Cost Per Qualified Lead** (qualified = meets your ICP bar, not just a form-fill). Set it one of three ways:
      
      1. **From deal math (best):** TCPL = target cost per demo × qualified-lead-to-demo rate. ($2,000/demo × 0.28 = $560.)
      2. **From history:** TCPL = trailing 30-day CPL(qualified) × 0.80 — a 20% improvement is achievable through operational cleanup alone (killing zero-QL ads, graduating winners). Once you have both, use whichever is tighter.
      3. **New account:** target CAC × qualified-lead-to-customer rate, or a placeholder from your ACV tier; replace with method 2 after 30 days.
      
      Every rule below is expressed in multiples of TCPL. Review TCPL monthly.
      
      ## The ad-count ceiling
      
      More active ads than your budget can feed = every ad starves and nothing gets a fair read.
      
      **Ceiling = (daily budget × 14) / (2 × TCPL)** — i.e., over a 14-day evaluation window, each ad needs at least 2× TCPL of spend to be judged.
      
      $1,000/day at $500 TCPL → ceiling of 14 ads; run **6–10** (winners + 2–3 test slots). At the ceiling, launching a new test requires killing something first.
      
      ## Two-campaign structure (Scaling / Testing)
      
      Run two CBO campaigns over the **same audience**:
      
      - **Scaling campaign (~80% of budget)** — holds only graduated, proven ads.
      - **Testing campaign (~20%)** — holds new concepts and iterations, with its own protected budget.
      
      Why: inside a single CBO, proven ads always starve new ads — tests never get enough spend to be judged. Why not ABO for testing: equal forced distribution keeps spending on ads Meta has already deprioritized. The separation is *budget protection*, not audience segmentation.
      
      **Image-first validation:** launch new concepts as statics first; only produce the video/carousel/UGC version after the image passes the checks below. Exception: concepts that are inherently video (testimonial, demo, UGC).
      
      ## Stage 1: delivery check (day 7)
      
      CBO's spend allocation is itself a signal — Meta pre-screens your ads. At day 7 for each test ad:
      
      - **Fair share test:** minimum expected spend = (campaign daily budget ÷ active ads) × 7 × 0.5. Below that → **kill** (Meta actively deprioritized it). Zero spend → kill immediately.
      - **Ongoing:** if an ad has spent ≥ 1× TCPL lifetime AND averaged under ~$10/day over the last 7 days → kill. (The lifetime-spend gate stops you from killing ads CBO simply hasn't explored yet.)
      
      When iterating on a delivery-killed ad, change the **hook/visual/format only** — the audience never got far enough for copy or CTA to matter.
      
      ## Stage 2: quality evaluation (weekly, rolling 14-day data)
      
      Run in order; stop at the first triggered action:
      
      1. **Data gate:** spend < 3× TCPL → **wait** (not enough signal). At true cost-per-QL = target, 3× TCPL of spend should produce ~3 qualified leads; zero QLs at that spend is ~5% probability — so judging at 3× gives ~95% confidence without wasting budget (2× has a 13% false-negative rate; 5× overpays for certainty).
      2. **Zero pixel leads** at ≥3× TCPL → **swap and abandon the concept** (don't iterate a dead concept).
      3. **Quality check** (the layer Meta can't see — requires your CRM):
         - Pixel leads but zero qualified → swap; keep the format, change the angle.
         - Qualified rate <40% → swap; the ad attracts the wrong people. Add ICP-filtering language. (At 40% QL rate, true cost per QL is 2.5× the pixel CPL you see in Ads Manager — two ads identical in-platform can differ 60%+ in real cost.)
         - 40–60% → monitor one more week. ≥60% → proceed.
      4. **Cost check:** cost per QL ≤ TCPL → candidate winner. 1–1.5× TCPL → monitor (normal variance). >1.5× TCPL → swap (structural underperformance, not noise).
      
      ## Graduation criteria (Testing → Scaling)
      
      Graduate only when **all** are true: ≥5 qualified leads · qualified rate ≥60% · cost per QL ≤ TCPL · running ≥14 days · ≥1 QL in the last 7 days.
      
      ## Fatigue detection
      
      Frequency bands by campaign type (safe / warning / critical):
      
      | Campaign type | Safe | Warning | Critical |
      |---|---|---|---|
      | Cold prospecting | 1.0–2.5 | 2.5–4.0 | >4.0 |
      | Retargeting | 2.0–4.0 | 4.0–6.0 | >6.0 |
      | ABM (small audiences) | 2.0–5.0 | 5.0–8.0 | >8.0 |
      
      Other signals, in urgency order: CTR down 20%+ from baseline over 7 days; CPM up 30%+ over 2 weeks (leading indicator — moves before CTR); ad relevance rankings "below average"; CPA up with stable targeting.
      
      For **scaling-campaign ads**, apply a deliberately stricter bar than the general bands — these ads carry ~80% of spend, so fatigue there costs the most: warning at frequency 3.0–3.5 or cost +20% → start 2 iterations now (they take ~14 days to be ready); swap at >3.5, cost +40%, or >1.5× TCPL for 2 weeks.
      
      **Lifespan expectations (B2B):** statics 14–28 days; short video and carousels 21–35; UGC/testimonial 28–42. Small B2B audiences build frequency fast — plan refresh every 14–21 days.
      
      **Retire (don't iterate)** when CTR drops 30%+ from peak or frequency crosses the campaign type's critical band above — the concept is exhausted, not the execution.
      
      **Rotation without resetting learning:** never edit creative inside a performing ad — that resets the learning phase. Launch new ads alongside existing ones, or spin up a new ad set with the same targeting. Pausing doesn't reset; editing does.
      
      ## Swap rules
      
      **Never pause without a replacement.** Keep 2–3 iterations staged; replacement live within 7 days, immediately for critical fatigue. If the pipeline is empty, redirect the budget to proven ads rather than leaving a zombie running. What to change depends on why it died: delivery kill → hook/visual; quality kill → angle and ICP language; cost kill → offer and audience; fatigue → fresh execution of the same proven concept.
      
      ## Creative production math
      
      - **Test throughput** ≈ (monthly budget × 0.20) ÷ (3 × TCPL), per month. Delivery kills free budget early, so actual throughput runs ~1.5–2× the base rate.
      - **Win rates:** iterations on winners ~25%; brand-new concepts ~10%; blended ~1 in 6. To get N winners, plan ~6× N tests.
      - **Minimum proven-ad inventory** ≈ monthly budget ÷ $5,000 — each proven B2B ad absorbs roughly $5K/month before fatiguing. **You cannot scale budget ahead of creative supply**; if proven ads < minimum, fix the creative deficit before raising budget.
      - **Iteration priority** when refreshing a winner (ranked by impact): 1. hook (changes who stops) → 2. visual treatment → 3. format → 4. body copy/CTA.
      
      ## Scaling protocol
      
      Scale only when all: proven-ad count meets the next budget level's minimum; account frequency <3.0; cost per QL ≤ TCPL for 2+ consecutive weeks; 3+ replacements staged.
      
      - **Rate:** +20% every 5 days. Never +30% or more in one move — that resets learning.
      - **Rollback trigger:** cost per QL >1.5× TCPL after a scale step → cut budget 20–30% immediately, stabilize 2 weeks, resume at +10% per week.
      - **Hitting the wall** (account-wide average frequency >3.5 — an account-level *scale* guardrail, distinct from the per-ad fatigue bands above): expand lookalikes 1% → 2–3%, add new seed audiences, test broad, activate cross-channel UTM audiences (see [ABM playbook](abm-playbook.md)), re-open remarketing.
      
      ## Weekly cadence
      
      - **Monday — decision day:** pull rolling 14-day data; run Stage 2 on every test ad; run the fatigue check on every scaling ad.
      - **Wednesday — launch day:** launch new tests into freed slots; run Stage 1 on ads that hit day 7.
      - **Friday — scaling day:** apply scale steps or rollbacks.
      - **Monthly:** creative library audit + TCPL review.
      
      ## Lead forms and social amnesia
      
      The #1 B2B Meta lead-quality problem: frictionless auto-filled forms produce leads who don't remember converting ("social amnesia"). **Intentional friction = awareness = quality:**
      
      - Use **Higher Intent** form type (adds a review step), not More Volume.
      - **Require work email** — it can't auto-fill from the Facebook profile, forcing a conscious act. This is the single biggest quality lever.
      - Add 1–3 multiple-choice qualification questions (4+ spikes abandonment), ordered easiest → hardest.
      - Confirmation message sets expectations for what happens next (combats amnesia at the follow-up stage).
      
      Lead form vs. landing page: LP converting ≥5% → use the LP; LP under ~2% → lead form; demo/trial offers → LP; content/webinar → form.
      
      ## Advantage+ transition
      
      Manual is where you learn; Advantage+ is where you earn. Transition a campaign to Advantage+ only after: a proven offer, a validated audience, and **~50 conversions/week** on the optimization event (the learning-phase exit bar — budget needed ≈ target CPA × 50 ÷ 7 per day). If you can't hit 50/week on the target event, optimize a higher-volume event up-funnel and retarget converters. Advantage+ conflicts with strict ABM (you can't lock it to a list) — see the [ABM playbook](abm-playbook.md). Watch Campaign Score directionally (70+ healthy, <50 = fighting the algorithm) but never trade lead quality for score.
      
      ## Benchmarks and seasonality
      
      B2B SaaS Meta ranges (practitioner-reported; recalibrate on your own first 30 days): CTR 1.0–1.5% (red flag <0.8%); CPM $10–20 (red flag >$25); CPL (form) $20–50 (red flag >$75); landing page CVR 8–12%. Seasonality: Q1 CPMs are the year's lowest (scale aggressively); Q4 runs +60–80% (consider reducing B2B spend and banking budget for January).
      
      ---
      
      *Framework lineage: this decision system is adapted (re-expressed, reconciled, and restructured) from practitioner operating systems, notably Ivan Falco's ads-skills. All thresholds are starting points — recalibrate against your own account.*
      
    • platform-setup-checklists.md 7.4 KB
      # Platform Setup Checklists
      
      Complete setup checklists for major ad platforms.
      
      ## Contents
      - Google Ads Setup (Account Foundation, Conversion Tracking, Analytics Integration, Audience Setup, Campaign Readiness, Ad Extensions, Brand Protection)
      - Meta Ads Setup (Business Manager Foundation, Pixel & Tracking, Domain & Aggregated Events, Audience Setup, Catalog, Creative Assets, Compliance)
      - LinkedIn Ads Setup (Campaign Manager Foundation, Insight Tag & Tracking, Audience Setup, Lead Gen Forms, Document Ads, Creative Assets, Budget Considerations)
      - Twitter/X Ads Setup (Account Foundation, Tracking, Audience Setup, Creative)
      - TikTok Ads Setup (Account Foundation, Pixel & Tracking, Audience Setup, Creative)
      - Universal Pre-Launch Checklist
      
      ## Google Ads Setup
      
      ### Account Foundation
      
      - [ ] Google Ads account created and verified
      - [ ] Billing information added
      - [ ] Time zone and currency set correctly
      - [ ] Account access granted to team members
      
      ### Conversion Tracking
      
      - [ ] Google tag installed on all pages
      - [ ] Conversion actions created (purchase, lead, signup)
      - [ ] Conversion values assigned (if applicable)
      - [ ] Enhanced conversions enabled
      - [ ] Test conversions firing correctly
      - [ ] Import conversions from GA4 (optional)
      
      ### Analytics Integration
      
      - [ ] Google Analytics 4 linked
      - [ ] Auto-tagging enabled
      - [ ] GA4 audiences available in Google Ads
      - [ ] Cross-domain tracking set up (if multiple domains)
      
      ### Audience Setup
      
      - [ ] Remarketing tag verified
      - [ ] Website visitor audiences created:
        - All visitors (180 days)
        - Key page visitors (pricing, demo, features)
        - Converters (for exclusion)
      - [ ] Customer match lists uploaded
      - [ ] Similar audiences enabled
      
      ### Campaign Readiness
      
      - [ ] Negative keyword lists created:
        - Universal negatives (free, jobs, careers, reviews, complaints)
        - Competitor negatives (if needed)
        - Irrelevant industry terms
      - [ ] Location targeting set (include/exclude)
      - [ ] Language targeting set
      - [ ] Ad schedule configured (if B2B, business hours)
      - [ ] Device bid adjustments considered
      
      ### Ad Extensions
      
      - [ ] Sitelinks (4-6 relevant pages)
      - [ ] Callouts (key benefits, offers)
      - [ ] Structured snippets (features, types, services)
      - [ ] Call extension (if phone leads valuable)
      - [ ] Lead form extension (if using)
      - [ ] Price extensions (if applicable)
      - [ ] Image extensions (where available)
      
      ### Brand Protection
      
      - [ ] Brand campaign running (protect branded terms)
      - [ ] Competitor campaigns considered
      - [ ] Brand terms in negative lists for non-brand campaigns
      
      ---
      
      ## Meta Ads Setup
      
      ### Business Manager Foundation
      
      - [ ] Business Manager created
      - [ ] Business verified (if running certain ad types)
      - [ ] Ad account created within Business Manager
      - [ ] Payment method added
      - [ ] Team access configured with proper roles
      
      ### Pixel & Tracking
      
      - [ ] Meta Pixel installed on all pages
      - [ ] Standard events configured:
        - PageView (automatic)
        - ViewContent (product/feature pages)
        - Lead (form submissions)
        - Purchase (conversions)
        - AddToCart (if e-commerce)
        - InitiateCheckout (if e-commerce)
      - [ ] Conversions API (CAPI) set up for server-side tracking
      - [ ] Event Match Quality score > 6
      - [ ] Test events in Events Manager
      
      ### Domain & Aggregated Events
      
      - [ ] Domain verified in Business Manager
      - [ ] Aggregated Event Measurement configured
      - [ ] Top 8 events prioritized in order of importance
      - [ ] Web events prioritized for iOS 14+ tracking
      
      ### Audience Setup
      
      - [ ] Custom audiences created:
        - Website visitors (all, 30/60/90/180 days)
        - Key page visitors
        - Video viewers (25%, 50%, 75%, 95%)
        - Page/Instagram engagers
        - Customer list uploaded
      - [ ] Lookalike audiences created (1%, 1-3%)
      - [ ] Saved audiences for common targeting
      
      ### Catalog (E-commerce)
      
      - [ ] Product catalog connected
      - [ ] Product feed updating correctly
      - [ ] Catalog sales campaigns enabled
      - [ ] Dynamic product ads configured
      
      ### Creative Assets
      
      - [ ] Images in correct sizes:
        - Feed: 1080x1080 (1:1)
        - Stories/Reels: 1080x1920 (9:16)
        - Landscape: 1200x628 (1.91:1)
      - [ ] Videos in correct formats
      - [ ] Ad copy variations ready
      - [ ] UTM parameters in all destination URLs
      
      ### Compliance
      
      - [ ] Special Ad Categories declared (if housing, credit, employment, politics)
      - [ ] Landing page complies with Meta policies
      - [ ] No prohibited content in ads
      
      ---
      
      ## LinkedIn Ads Setup
      
      ### Campaign Manager Foundation
      
      - [ ] Campaign Manager account created
      - [ ] Company Page connected
      - [ ] Billing information added
      - [ ] Team access configured
      
      ### Insight Tag & Tracking
      
      - [ ] LinkedIn Insight Tag installed on all pages
      - [ ] Tag verified and firing
      - [ ] Conversion tracking configured:
        - URL-based conversions
        - Event-specific conversions
      - [ ] Conversion values set (if applicable)
      
      ### Audience Setup
      
      - [ ] Matched Audiences created:
        - Website retargeting audiences
        - Company list uploaded (for ABM)
        - Contact list uploaded
      - [ ] Lookalike audiences created
      - [ ] Saved audiences for common targeting
      
      ### Lead Gen Forms (if using)
      
      - [ ] Lead gen form templates created
      - [ ] Form fields selected (minimize for conversion)
      - [ ] Privacy policy URL added
      - [ ] Thank you message configured
      - [ ] CRM integration set up (or CSV export process)
      
      ### Document Ads (if using)
      
      - [ ] Documents uploaded (PDF, PowerPoint)
      - [ ] Gating configured (full gate or preview)
      - [ ] Lead gen form connected
      
      ### Creative Assets
      
      - [ ] Single image ads: 1200x627 (1.91:1) or 1080x1080 (1:1)
      - [ ] Carousel images ready
      - [ ] Video specs met (if using)
      - [ ] Ad copy within character limits:
        - Intro text: 600 max, 150 recommended
        - Headline: 200 max, 70 recommended
      
      ### Budget Considerations
      
      - [ ] Budget realistic for LinkedIn CPCs ($8-15+ typical)
      - [ ] Audience size validated (50K+ recommended)
      - [ ] Daily vs. lifetime budget decided
      - [ ] Bid strategy selected
      
      ---
      
      ## Twitter/X Ads Setup
      
      ### Account Foundation
      
      - [ ] Ads account created
      - [ ] Payment method added
      - [ ] Account verified (if required)
      
      ### Tracking
      
      - [ ] Twitter Pixel installed
      - [ ] Conversion events created
      - [ ] Website tag verified
      
      ### Audience Setup
      
      - [ ] Tailored audiences created:
        - Website visitors
        - Customer lists
      - [ ] Follower lookalikes identified
      - [ ] Interest and keyword targets researched
      
      ### Creative
      
      - [ ] Tweet copy within 280 characters
      - [ ] Images: 1200x675 (1.91:1) or 1200x1200 (1:1)
      - [ ] Video specs met (if using)
      - [ ] Cards configured (website, app, etc.)
      
      ---
      
      ## TikTok Ads Setup
      
      ### Account Foundation
      
      - [ ] TikTok Ads Manager account created
      - [ ] Business verification completed
      - [ ] Payment method added
      
      ### Pixel & Tracking
      
      - [ ] TikTok Pixel installed
      - [ ] Events configured (ViewContent, Purchase, etc.)
      - [ ] Events API set up (recommended)
      
      ### Audience Setup
      
      - [ ] Custom audiences created
      - [ ] Lookalike audiences created
      - [ ] Interest categories identified
      
      ### Creative
      
      - [ ] Vertical video (9:16) ready
      - [ ] Native-feeling content (not too polished)
      - [ ] First 3 seconds are compelling hooks
      - [ ] Captions added (most watch without sound)
      - [ ] Music/sounds selected (licensed if needed)
      
      ---
      
      ## Universal Pre-Launch Checklist
      
      Before launching any campaign:
      
      - [ ] Conversion tracking tested with real conversion
      - [ ] Landing page loads fast (<3 sec)
      - [ ] Landing page mobile-friendly
      - [ ] UTM parameters working
      - [ ] Budget set correctly (daily vs. lifetime)
      - [ ] Start/end dates correct
      - [ ] Targeting matches intended audience
      - [ ] Ad creative approved
      - [ ] Team notified of launch
      - [ ] Reporting dashboard ready
      
    • rsa-output-spec.md 3.9 KB
      # Google RSA Output Spec
      
      When the user requests Google Ads RSAs (Responsive Search Ads), output MUST comply with these platform limits and structural requirements. Do not output any RSA that violates them.
      
      ## Hard limits per RSA (enforce before responding)
      
      Per-field **character** limits are owned by `suede-ad-creative` — use the numbers it states,
      so the two skills cannot drift. This spec adds the stricter **quantity** mandate on top:
      Google permits "up to" 15 headlines and 4 descriptions; a Suede RSA ships all of them.
      
      - **Headlines:** exactly **15** per RSA, each within the headline character limit `suede-ad-creative` states (count characters, including spaces). Render as `1. ... (NN chars)` so the reader can verify.
      - **Descriptions:** exactly **4** per RSA, each within the stated description character limit.
      - **Paths:** up to 2 path fields, each within the stated path character limit.
      - **Final URL:** present, https.
      - **Pinning:** state any pinned positions explicitly. Default = unpinned unless user asks.
      - **Per-account guardrail:** Google enforces **3 RSAs max per ad group**. When the user asks for >3, group them by ad group.
      
      ## Required sidecar artifacts (always include with RSA request)
      
      1. **Ad group structure**, labeled `Ad group structure:` — list each ad group with its theme, target keywords (match types), and which RSAs map to it.
      2. **Negative keyword list**, labeled `Negative keywords:` — minimum **8** entries, group-level vs campaign-level called out.
      3. **Sitelinks** (≥ 4), **Callouts** (≥ 4 ≤25 chars), **Structured snippets** if relevant.
      
      ## Medical / CFM compliance (when product context indicates pt-BR medical practice)
      
      If `.agents/product-marketing.md` indicates a Brazilian medical practice (CFM-regulated), the following terms are **forbidden** in headlines, descriptions, sitelinks, and callouts:
      
      - Superlatives: `#1`, `melhor`, `o melhor`, `melhor do brasil`, `top`, `referência`
      - Outcome promises: `garantido`, `garantia`, `cura`, `cura definitiva`, `100%`, `resultado garantido`, `livre da dor`
      - Comparative claims vs other doctors/clinics
      
      Use neutral framing: `atendimento`, `consulta`, `avaliação`, `segunda opinião`, `agende sua consulta`, `tire suas dúvidas`. Geo modifier (`Porto Alegre`, `POA`, `Zona Sul POA`) required where the prompt specifies a region.
      
      ## Output ORDER (mandatory — emit in this order to avoid truncation)
      
      1. **Ad group structure** (short)
      2. **Negative keywords** (≥8, MANDATORY — emit BEFORE RSAs so it isn't dropped if output runs long)
      3. **Sitelinks** (≥4)
      4. **Callouts** (≥4)
      5. **RSA1, RSA2, RSA3** (largest section, last — safe to truncate gracefully)
      
      ## Output template (mandatory shape)
      
      ```
      Ad group structure:
      - AG1 [theme]: keywords (match types) → RSA1, RSA2
      - AG2 [theme]: ...
      
      Negative keywords:
        Campaign-level:
          - <kw>
          - <kw>
          (≥4 here)
        Ad-group level:
          - AG1: <kw>, <kw>
          - AG2: <kw>, <kw>
          (≥4 more here — TOTAL ≥8 entries)
      
      Sitelinks (≥4):
        - <title (≤25)> | <desc1 (≤35)> | <desc2 (≤35)> | URL
      
      Callouts (≥4, each ≤25 chars):
        - <callout>
      
      RSA1 — [ad group name]
        Final URL: https://...
        Path1: ...   Path2: ...
        Headlines (15, each ≤30 chars):
          1. <headline> (NN chars)
          ...
          15. <headline> (NN chars)
        Descriptions (4, each ≤90 chars):
          1. <description> (NN chars)
          ...
          4. <description> (NN chars)
        Pinning: H1=none; H2=none; ...   (or explicit pins)
      
      RSA2 — ...
      RSA3 — ...
      ```
      
      ## Self-check before responding
      
      Before sending the output, run this checklist mentally:
      
      - [ ] Each RSA has exactly 15 headlines, exactly 4 descriptions.
      - [ ] Every headline is ≤30 chars; every description is ≤90 chars. Character counts printed.
      - [ ] Negative keyword list labeled and ≥8 entries.
      - [ ] Ad group structure labeled.
      - [ ] If medical (CFM): no forbidden superlative/outcome words; geo modifier present where required; language is pt-BR.
      
      If any check fails, rewrite before responding. Do not ship partial RSAs.
      
  • CARD.md 4.4 KB
    # Skill Card — Suede Paid Ads
    
    <!-- Generated by scripts/build-skill-cards.mjs — do not hand-edit. -->
    <!-- Regenerate with: npm run build:cards -->
    
    Release record for the `suede-ads` skill, following the NVIDIA skill-card template (<https://docs.nvidia.com/skills/skill-cards>). It tells a reviewer what the skill does, who owns it, what it needs, what could go wrong, and what evidence backs the release — without requiring them to open the source first.
    
    ## Description
    
    Suede-owned paid-acquisition operating system for channel choice, campaign structure, audiences, bidding, budget pacing, negative keywords, retargeting, and kill-or-scale decisions.
    
    Status: production. Ships in the `suede-skills` plugin (the full pack) at release 0.19.0; loads as a Claude Code / Codex agent skill from this directory's [SKILL.md](./SKILL.md).
    
    ## Owner
    
    Jason Colapietro, Suede Labs AI (<https://github.com/JasonColapietro>). Security contact: `info@suedeai.ai` per [SECURITY.md](../../SECURITY.md).
    
    ## License / Terms of Use
    
    MIT ([LICENSE](../../LICENSE)). The pack's combined license expression is `MIT AND BSD-3-Clause`; this skill bundles no third-party licensed material of its own.
    
    ## Use Case
    
    Target users: developers and creators running the skill inside a Claude Code or Codex CLI session.
    
    Use when planning, auditing, or optimizing paid campaigns on Google, Meta, LinkedIn, X, or comparable platforms.
    
    Out of scope — producing creative variants (use suede-ad-creative), implementing measurement (use suede-analytics), or optimizing the landing page (use suede-site-alchemy).
    
    ## Deployment Geography
    
    Global. The skill is a prompt-and-script package that runs locally inside the invoking agent session; it pins no region-specific service of its own.
    
    ## Requirements / Dependencies
    
    - A Claude Code or Codex CLI session with the `suede-skills` plugin installed (install options: <https://skills.suedeai.ai/>).
    - Bundled files loaded relative to this directory: `agents/` (1 file), `references/` (10 files).
    - Credentials: none are bundled or required by the skill files. Any tool or API credentials come from the host session; never paste credentials into skill files, prompts, or outputs.
    
    ## Known Risks and Mitigations
    
    - Risk: an agent treats a quality gate as autonomous authority. Mitigation: every gate in the pack is advisory — it changes what is reported, never what the user decided; only extreme-risk findings (data loss, credential exposure, legal/rights violations, payment mistakes, irreversible public damage) pause for the user's explicit choice.
    - Risk: a skill instruction is used to act outside its mandate. Mitigation: the hard limits in the skill body's "Boundaries" section, quoted below.
    
    From "Boundaries":
    
    - Do not create, launch, pause, delete, or change campaigns, bids, audiences, or budgets without explicit authorization.
    - Do not claim ROAS, attribution, or incrementality when conversion tracking and revenue inputs have not been verified.
    - Do not recommend spend above the stated cap; if no cap exists, provide a bounded test budget and wait for approval.
    - Do not target sensitive traits, evade platform policy, or present inferred audience attributes as verified facts.
    
    ## References
    
    - Skill source: [`skills/suede-ads/SKILL.md`](./SKILL.md)
    - Rendered reference page: <https://skills.suedeai.ai/skills/suede-ads.html>
    - Security policy and reviewed scanner exceptions: [SECURITY.md](../../SECURITY.md) and [`.plugin-scanner.toml`](../../.plugin-scanner.toml) at the repo root
    
    ## Skill Output
    
    Structured Markdown returned in the agent's response, shaped by the output contract defined in the skill body: "Google RSA Output Spec (mandatory when generating RSAs)". The skill publishes, posts, and sends nothing without the user's explicit authorization; delivery decisions stay with the user.
    
    ## Skill Version
    
    0.19.0 — the pack is single-versioned, so every skill releases together; see [VERSION](../../VERSION) and [CITATION.cff](../../CITATION.cff) for the release identifier this card describes.
    
    ## Ethical Considerations
    
    - The skill produces recommendations for a human decision-maker. Publishing, sending, payment, and rights decisions stay with the user.
    - Its gates require verifiable claims and honest reporting; do not use the skill to fabricate claims, evidence, metrics, or attribution.
    - Report suspected misuse or a security concern privately per [SECURITY.md](../../SECURITY.md); do not open a public issue for it.
    
  • SKILL.md 24.2 KB
    ---
    name: suede-ads
    description: "Suede-owned paid-acquisition operating system for channel choice, campaign structure, audiences, bidding, budget pacing, negative keywords, retargeting, and kill-or-scale decisions. Use when planning, auditing, or optimizing paid campaigns on Google, Meta, LinkedIn, X, or comparable platforms. NOT FOR: producing creative variants (use suede-ad-creative), implementing measurement (use suede-analytics), or optimizing the landing page (use suede-site-alchemy)."
    metadata:
      version: 2.2.0
    ---
    
    # Suede Paid Ads
    
    Use this Suede paid-acquisition playbook to create, optimize, and scale campaigns against explicit acquisition economics. Never assume account access.
    
    ## Before Starting
    
    **Check for product marketing context first:**
    If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
    
    Gather this context (ask if not provided):
    
    ### 1. Campaign Goals
    - Which platform(s) are running now, or which do you want to start with?
    - What's the primary objective? (Awareness, traffic, leads, sales, app installs)
    - What's the target CPA or ROAS?
    - What's the monthly/weekly budget?
    - Any constraints? (Brand guidelines, compliance, geographic)
    
    ### 2. Product & Offer
    - What are you promoting? (Product, free trial, lead magnet, demo)
    - What's the landing page URL?
    - What makes this offer compelling?
    
    ### 3. Audience
    - Who is the ideal customer?
    - What problem does your product solve for them?
    - What are they searching for or interested in?
    - Do you have existing customer data for lookalikes?
    
    ### 4. Current State
    - Have you run ads before? What worked/didn't?
    - Do you have existing pixel/conversion data?
    - What's your current funnel conversion rate?
    - Do you have creative assets already, or do they need to be produced?
    
    ---
    
    ## Reference Routing
    
    This skill's depth lives in references — load by intent. For **any operational decision on a live account** (kill/keep/scale/budget), load the relevant playbook before answering; the thresholds live there, not here.
    
    | User intent | Load | Covers |
    |---|---|---|
    | B2B strategy, funnel stages, budget splits, kill rules, lead quality, breakeven math | [b2b-paid-playbook.md](references/b2b-paid-playbook.md) | Demand lifecycle, leading/lagging signals, kill rules, offline conversion loop, U/B/F lead scoring, scaling quadrant |
    | Meta operations: when to kill/graduate/scale an ad, fatigue, testing structure | [meta-decision-system.md](references/meta-decision-system.md) | TCPL-anchored decision tree, ad-count ceiling, 80/20 CBO structure, fatigue bands, lead forms, Advantage+ transition |
    | LinkedIn operations: bidding, audience sizing, scaling, benchmarks, TLAs, formats | [linkedin-b2b-playbook.md](references/linkedin-b2b-playbook.md) | Bidding progression, penetration scaling, sizing rules, funnel benchmarks, document/conversation ads, audit shortlist |
    | Google Search: what to spend on first, structure, match types, negatives, PMax | [google-search-playbook.md](references/google-search-playbook.md) | Intent ladder, account structure, match-type gates, negatives, bidding by volume, offline conversions, PMax guardrails |
    | Named-account targeting, pipeline acceleration, cross-channel retargeting | [abm-playbook.md](references/abm-playbook.md) | LinkedIn/Meta ABM, list mechanics, acceleration campaigns, UTM cross-channel remarketing, ABM measurement |
    | Generating Google RSAs | [rsa-output-spec.md](references/rsa-output-spec.md) | Mandatory output spec — limits, sidecars, template, self-check |
    | Audience setup, tracking setup, launch checklists, copy formulas | [audience-targeting.md](references/audience-targeting.md) · [conversion-tracking.md](references/conversion-tracking.md) · [platform-setup-checklists.md](references/platform-setup-checklists.md) · [ad-copy-templates.md](references/ad-copy-templates.md) | Existing foundations |
    
    ---
    
    ## Platform Selection Guide
    
    | Platform | Best For | Use When |
    |----------|----------|----------|
    | **Google Ads** | High-intent search traffic | People actively search for your solution |
    | **Meta** | Demand generation, visual products | Creating demand, strong creative assets |
    | **LinkedIn** | B2B, decision-makers | Job title/company targeting matters, higher price points |
    | **Twitter/X** | Tech audiences, thought leadership | Audience is active on X, timely content |
    | **TikTok** | Younger demographics, viral creative | Audience skews 18-34, video capacity |
    
    ---
    
    ## Campaign Structure Best Practices
    
    ### Account Organization
    
    ```
    Account
    ├── Campaign 1: [Objective] - [Audience/Product]
    │   ├── Ad Set 1: [Targeting variation]
    │   │   ├── Ad 1: [Creative variation A]
    │   │   ├── Ad 2: [Creative variation B]
    │   │   └── Ad 3: [Creative variation C]
    │   └── Ad Set 2: [Targeting variation]
    └── Campaign 2...
    ```
    
    ### Naming Conventions
    
    ```
    [Platform]_[Objective]_[Audience]_[Offer]_[Date]
    
    Examples:
    META_Conv_Lookalike-Customers_FreeTrial_[YYYYQ#]
    GOOG_Search_Brand_Demo_Ongoing
    LI_LeadGen_CMOs-SaaS_Whitepaper_[MMMYY]
    ```
    
    ### Budget Allocation
    
    **Testing phase (first 2-4 weeks):**
    - 70% to proven/safe campaigns
    - 30% to testing new audiences/creative
    
    **Scaling phase:**
    - Consolidate budget into winning combinations
    - Increase budgets ~20% at a time — never 30%+ in one move (resets platform learning)
    - Wait 3-5 days between increases for algorithm learning
    
    ---
    
    ## Ad Copy Frameworks
    
    ### Key Formulas
    
    **Problem-Agitate-Solve (PAS):**
    > [Problem] → [Agitate the pain] → [Introduce solution] → [CTA]
    
    **Before-After-Bridge (BAB):**
    > [Current painful state] → [Desired future state] → [Your product as bridge]
    
    **Social Proof Lead:**
    > [Impressive stat or testimonial] → [What you do] → [CTA]
    
    **For detailed templates and headline formulas**: See [references/ad-copy-templates.md](references/ad-copy-templates.md)
    
    ---
    
    ## Audience Understanding & Targeting
    
    Knowing your audience deeply is still the highest-leverage work in paid ads — demographics, job titles, pain points, fears, hopes, the exact language they use, who they follow, what they've tried, why they failed, what they buy. **Gather every identifier you can.**
    
    What has changed is **where you apply that knowledge.** As ad-platform algorithms have gotten dramatically better at finding the right person, jamming all your audience identifiers into the platform's *targeting filters* underperforms feeding those same identifiers into the *creative* (headlines, copy, visuals, hooks, examples).
    
    The discipline now: **audience knowledge → creative first, targeting filters second.** How much that ratio tips toward "creative" varies meaningfully by platform.
    
    ### Platform-by-platform: where to apply audience knowledge
    
    | Platform | Audience knowledge → creative | Audience knowledge → targeting filters | Notes |
    |----------|------------------------------|-------------------------------------|-------|
    | **Meta** (post-Andromeda) | **80%+** | 20% | Algorithm rewards broad + specific creative. See [[#Modern Meta playbook (Andromeda era — 2026+)]] below for the full reframe. Interest-stacking now actively hurts. |
    | **Google Search** | 40% | **60%** | Keywords are still the dominant signal — match-types, search-intent layering, and negative keywords still drive performance. Creative (RSA headlines) matters but is downstream of the keyword. |
    | **Google Performance Max / Demand Gen** | **70%** | 30% | Audience signals are advisory, not deterministic. Creative + product feed quality dominate. |
    | **LinkedIn** | 40% | **60%** | Job-title / company / industry filters still produce real precision because LinkedIn's identity data is high-quality. Creative makes the click; firmographics make the *right person* see it. |
    | **TikTok** | **70%** | 30% | Algorithm is closer to Meta's model — broad targeting + native-feeling creative wins. Some audience interests help but creative dominates. |
    | **Twitter/X** | 50% | 50% | Interest + follower targeting still meaningful, but creative differentiation is high-leverage given lower competition. |
    
    These ratios are directional, not precise. Test in your actual account.
    
    For how each identifier becomes a headline, hook, or angle, use `suede-ad-creative` — it owns the angle-to-copy mapping.
    
    ### Key Concepts (still apply)
    
    - **Lookalikes**: Base on best customers (by LTV), not all customers. Still high-value across platforms.
    - **Retargeting**: Segment by funnel stage (visitors vs. cart abandoners). See [[#Retarget with DIFFERENT offers (not the same one)]] and [[#The 4-component retargeting framework]] for the modern playbook.
    - **Exclusions**: Exclude existing customers and recent converters — showing ads to people who already bought wastes spend.
    
    **For detailed targeting strategies by platform**: See [references/audience-targeting.md](references/audience-targeting.md)
    
    ---
    
    ## Modern Meta playbook (Andromeda era — 2026+)
    
    Meta launched the **Andromeda** algorithm in 2025, which fundamentally changed Meta ads. The old playbook (interest stacking, polished video creative, single-winner scaling) underperforms. The new playbook:
    
    ### Creative volume is the constraint (statics > polished video)
    - Andromeda is "a hungry panda" — it needs constant fresh creative or it fatigues
    - **Statics often outperform video in 2026** because:
      - Meta's algorithm has a bias toward statics — it can show more statics per session per user, so they're cheaper to deliver
      - Static creative is 10x cheaper and faster to produce than video, enabling the volume Andromeda needs
      - Even top advertisers running 17+ VSLs report that down-and-dirty native statics often beat 2.5-month-production VSLs
    - **Dedicate 1 hour per week** to producing fresh creatives for your winning offer. Volume > polish.
    
    ### Creative IS the targeting (broad audience + specific creative)
    - The old playbook: stack interests, narrow the audience, hope to find the right buyer
    - The new playbook: target broadly (just the country) and let the creative do the targeting
    - **Long-form ad copy works better than short-form** in 2026 — gives Meta a wider context window to understand who to show the ad to
    - Test it: take your best winning ad with interest-stacked targeting, duplicate it, remove all targeting (just pick the country), run side-by-side for 7 days. Check CPAs. Broad typically wins.
    
    ### The one-keyword hack (identity-trigger keywords)
    - Take your winning ad
    - Duplicate it with a niche/identity keyword inserted in the headline or body copy
    - *"Here's how to get 462 leads per week on autopilot"* → *"Here's how to get 462 **dental** leads per week on autopilot"* / *"...**lawyer** leads..."* / *"...**property investment** leads..."*
    - The keyword is an **identity trigger** for the viewer AND a targeting signal for Andromeda
    - Dramatically drops CPL and opens audience pockets you couldn't reach with a generic ad
    
    ### AI variant farming (the 100-people test)
    - Take your winning ad
    - Feed to Claude/ChatGPT/Kong with the prompt:
      > *"I want you to read this ad and be the author. If I show the next ad I'm going to ask you to write to 100 people, not 1 in 100 would be able to tell you it's written by a different person. Now write this for [demographic/niche]."*
    - The output should read essentially the same with subtle relevance shifts for the target
    - Apply in sequence: body copy → headlines → creative
    - Drop all variants in a CBO, let Meta's AI allocate spend
    
    ### Zombie campaigns
    - After running a CBO, Meta will give 80% of variants no spend
    - Take the dead variants you have **high conviction** about
    - Launch them in a separate ad set ("zombie campaign")
    - Typically resurrects 20% as winners that Meta's first allocation passed over
    
    ### Don't make ads look like ads
    - Hundreds of millions of people have ad blockers — the polished-ad aesthetic kills performance
    - Study what content **natively performs** in your niche on TikTok/Instagram/YouTube → produce ads that match that aesthetic
    - **Burner account technique:** create a clean Instagram/TikTok account, follow all influencers and pages in your niche, like their content. Your feed becomes a curated view of what's natively winning. Produce ads that match.
    - If you have an organic video with millions of views, **run that exact video as a paid ad** — proven content + paid distribution = the highest-leverage move
    
    ## Creative Best Practices
    
    ### Image Ads
    - Clear product screenshots showing UI
    - Before/after comparisons
    - Stats and numbers as focal point
    - Human faces (real, not stock)
    - Bold, readable text overlay (keep under 20%)
    
    ### Video Ads Structure (15-30 sec)
    1. Hook (0-3 sec): Pattern interrupt, question, or bold statement
    2. Problem (3-8 sec): Relatable pain point
    3. Solution (8-20 sec): Show product/benefit
    4. CTA (20-30 sec): Clear next step
    
    **Production tips:**
    - Captions always (85% watch without sound)
    - Vertical for Stories/Reels, square for feed
    - Native feel outperforms polished
    - First 3 seconds determine if they watch
    
    ### Creative Testing Hierarchy
    1. Concept/angle (biggest impact)
    2. Hook/headline
    3. Visual style
    4. Body copy
    5. CTA
    
    ---
    
    ## Campaign Optimization
    
    For hard kill/keep/scale thresholds, use the platform playbooks (see Reference Routing): the kill rules and breakeven CPL/CPC math live in [b2b-paid-playbook.md](references/b2b-paid-playbook.md), and Meta's full decision tree lives in [meta-decision-system.md](references/meta-decision-system.md).
    
    ### Key Metrics by Objective
    
    | Objective | Primary Metrics |
    |-----------|-----------------|
    | Awareness | CPM, Reach, Video view rate |
    | Consideration | CTR, CPC, Time on site |
    | Conversion | CPA, ROAS, Conversion rate |
    
    ### Optimization Levers
    
    "Too high" and "low" below are not opinions. **Too high** means above the break-even CPA / ROAS ceiling computed in Scaling discipline, and **low** means below the funnel benchmark in the platform playbook for that channel. Compute the ceiling before you pull any lever — and for hard kill/scale thresholds, use the playbooks routed at the top of Campaign Optimization.
    
    **If CPA is too high:**
    1. Check landing page (is the problem post-click?)
    2. Tighten audience targeting
    3. Test new creative angles
    4. Improve ad relevance/quality score
    5. Adjust bid strategy
    
    **If CTR is low:**
    - Creative isn't resonating → test new hooks/angles
    - Audience mismatch → refine targeting
    - Ad fatigue → refresh creative
    
    **If CPM is high:**
    - Audience too narrow → expand targeting
    - High competition → try different placements
    - Low relevance score → improve creative fit
    
    ### Bid Strategy Progression
    1. Start with manual or cost caps
    2. Gather conversion data (50+ conversions)
    3. Switch to automated with targets based on historical data
    4. Monitor and adjust targets based on results
    
    ---
    
    ## Retargeting Strategies
    
    ### Funnel-Based Approach
    
    | Funnel Stage | Audience | Message | Goal |
    |--------------|----------|---------|------|
    | Top | Blog readers, video viewers | Educational, social proof | Move to consideration |
    | Middle | Pricing/feature page visitors | Case studies, demos | Move to decision |
    | Bottom | Cart abandoners, trial users | Urgency, objection handling | Convert |
    
    ### Retargeting Windows
    
    | Stage | Window | Frequency Cap |
    |-------|--------|---------------|
    | Hot (cart/trial) | 1-7 days | Higher OK |
    | Warm (key pages) | 7-30 days | 3-5x/week |
    | Cold (any visit) | 30-90 days | 1-2x/week |
    
    ### Exclusions to Set Up
    - Existing customers (unless upsell)
    - Recent converters (7-14 day window)
    - Bounced visitors (<10 sec)
    - Irrelevant pages (careers, support)
    
    ### Retarget with DIFFERENT offers (not the same one)
    
    The conventional retargeting playbook re-shows the same product/offer to people who didn't buy. The Sabri Suby principle: **the #1 reason someone didn't buy is the offer wasn't right for them.** Re-showing the same thing harder doesn't help.
    
    Instead, retarget with **different** products, services, or offers from your catalog:
    - Visitor clicked on protein powder, didn't buy → retarget with creatine (totally different category)
    - Visitor downloaded a lead magnet, didn't book a call → retarget with a different lead magnet on a related topic
    - Visitor viewed pricing, didn't sign up → retarget with a free audit or assessment instead
    
    The lift from this is often dramatic — a 2-3 ROAS audience on the original offer can hit 6+ ROAS on a different offer.
    
    ### The 4-component retargeting framework
    
    Build out your retargeting layer with these 4 ad types running simultaneously:
    
    1. **Objection-handling ad** — directly addresses the most common reasons people didn't buy. To find these, **outbound call every lead** who didn't convert and ask why. The verbatim objections become the headline of this ad.
    2. **Proof testimonial carousel** — multi-image/multi-slide carousel of testimonials and proof that supports the claims of your original ad
    3. **Other-offers CBO** — your other best-performing ads for other products/services in one CBO, retargeted to the same audience
    4. **Value-first audit/assessment ad** — wraps your call in a free piece of value. Whether they buy or not, they leave with something useful. Lowers the friction to engage.
    
    These four together, retargeting the same audience that didn't convert from the top-of-funnel ad, dramatically lift the ROAS of the entire funnel.
    
    ---
    
    ## Landing Page Alignment (the headline-mirror trick)
    
    The ad platform tests headlines against far more people than ever reach the landing page, so it resolves a winning headline much faster than on-page testing does. Use it that way:
    
    1. Run **20-40 different headlines** as ad variations
    2. Pick the winner by CTR **and** downstream conversion, not CTR alone
    3. **Mirror the winning headline verbatim** in the landing page H1, sub-headline, and lead-in copy
    4. Expect a **15-20% minimum lift** in landing-page conversion rate from that change alone
    
    Keep at least 3 split tests running somewhere in the funnel — creative, page, offer, or post-conversion flow — at any given time.
    
    Post-click page work itself belongs to `suede-site-alchemy`.
    
    ---
    
    ## Reporting & Analysis
    
    ### Weekly Review
    - Spend vs. budget pacing
    - CPA/ROAS vs. targets
    - Top and bottom performing ads
    - Audience performance breakdown
    - Frequency check (fatigue risk)
    - Landing page conversion rate
    
    ### Attribution Considerations
    - Platform attribution is inflated
    - Use UTM parameters consistently
    - Compare platform data to GA4
    - Look at blended CAC, not just platform CPA
    
    ### Scaling discipline (net cash > ROAS percentage)
    
    The most common scaling failure: a business at a 40 ROAS spending $5k/month, refusing to scale because "if I spend more, my ROAS will drop." This is the wrong frame.
    
    **Net cash flow > ROAS percentage at the business level:**
    - ROAS dropping from 10 → 5 sounds bad
    - But if spend goes from $10k → $100k, you net dramatically more total profit
    - The number to optimize is **blended ROAS at the business level**, not per-ad-set ROAS
    - Even better: optimize **net free cash flow**, not ROAS at all
    
    **Find your break-even ROAS:**
    1. Calculate the absolute maximum you can pay to acquire a customer and still be profitable (factoring LTV)
    2. That's your break-even ROAS / CPA ceiling
    3. **Scale until you approach that ceiling**, not until your ad-account ROAS drops below an arbitrary preference
    
    **The 3-hour founder review:**
    - Block out **3 hours per month** in the calendar to physically review the numbers yourself
    - Not what your data analyst says. Not what your media buyer says. You, going through the actual data
    - The confidence this generates is irreplaceable — and confidence is what lets you scale with conviction
    - "Data gives you confidence. Confidence gives you speed."
    
    **Outbound-call your leads who didn't convert:**
    - Every lead that downloaded a lead magnet or hit your funnel but didn't buy gets a call
    - Ask why they didn't book, what was confusing, what the actual blocker was
    - These verbatim answers become objection-handling ads (see Retargeting section)
    - Massive insight-to-creative loop that most advertisers skip
    
    ---
    
    ## Platform Setup
    
    Before launching campaigns, ensure proper tracking and account setup.
    
    **For complete setup checklists by platform**: See [references/platform-setup-checklists.md](references/platform-setup-checklists.md)
    
    **For conversion pixel installation and event setup**: See [references/conversion-tracking.md](references/conversion-tracking.md)
    
    ### Universal Pre-Launch Checklist
    
    Each box names the artifact that proves it. A box is checked when the artifact exists, not when it sounds true.
    
    - [ ] Conversion tracking fired — the test conversion is visible in the platform's event manager with a timestamp
    - [ ] Landing page loads in <3 sec — cite the PageSpeed / Lighthouse number and the test date
    - [ ] Landing page mobile-friendly — a mobile render of the page, not a desktop assumption
    - [ ] UTM parameters working — paste the resolved destination URL with parameters intact
    - [ ] Budget set correctly — the daily/lifetime figure, against the cap the user stated
    - [ ] Targeting matches intended audience — the saved audience definition, read back
    
    Any unchecked box means do not recommend launch. Name the box and what is missing.
    
    ---
    
    ## Google RSA Output Spec (mandatory when generating RSAs)
    
    When the user requests Google Ads RSAs, load [references/rsa-output-spec.md](references/rsa-output-spec.md) and follow it exactly — hard character limits, required sidecar artifacts (ad groups, negatives, sitelinks, callouts), output order, template shape, CFM medical compliance, and the pre-send self-check. Do not output any RSA that violates it.
    
    ---
    
    ## Common Mistakes to Avoid
    
    - **Too many campaigns** — fragmenting budget across campaigns none of which exit learning
    - **Optimizing for the wrong metric** — clicks or CTR when the objective is conversions
    - **Only one ad per ad set** — the algorithm has nothing to allocate between
    - **Overlapping audiences competing** — the same account bidding against itself
    
    ---
    
    ## Tool Integrations
    
    This pack does not include ad-network integrations. Work through an authorized
    platform UI, current export, API, or installed connector; verify current
    official documentation and the selected account before any mutation.
    
    | Platform family | Typical use | Verify before execution |
    |-----------------|-------------|-------------------------|
    | Search ads | Capture declared intent | Query scope, match behavior, negatives, location, conversion action |
    | Social feed ads | Create or harvest demand | Audience controls, placement, creative specs, attribution window |
    | Professional-network ads | Reach role or account segments | Targeting availability, minimum audience, lead form and CRM mapping |
    | Short-video ads | Visual discovery and creator-style demand | Placement specs, audio rights, age and regional policy |
    
    For the measurement contract, use
    [references/conversion-tracking.md](references/conversion-tracking.md) and
    route implementation and firing checks to `suede-analytics`.
    
    ---
    
    ## Boundaries
    
    - Do not create, launch, pause, delete, or change campaigns, bids, audiences, or budgets without explicit authorization.
    - Do not claim ROAS, attribution, or incrementality when conversion tracking and revenue inputs have not been verified.
    - Do not recommend spend above the stated cap; if no cap exists, provide a bounded test budget and wait for approval.
    - Do not target sensitive traits, evade platform policy, or present inferred audience attributes as verified facts.
    
    **When authorization is missing.** If an authorized account or connector is present and the user asks for a mutation you have no approval for, stop before the call. Name the exact mutation and the account, campaign, or ad set it would hit. Offer: a draft-only change list they can apply themselves, a request for written approval on that specific change, or continuing read-only with an audit instead. Then wait — do not execute on assumed consent. (For the spend-cap case, the standing rule in the third boundary above already applies; don't restate it.)
    
    ## Routing
    
    - Need ad copy or visual variants -> use `suede-ad-creative`.
    - Need conversion tracking and attribution -> use `suede-analytics`.
    - Need post-click conversion work -> use `suede-site-alchemy`.
    - Need CRM handoff or offline conversion design -> use `suede-revops`.
    - From those skills, route paid channel, budget, bid, and campaign decisions back to `suede-ads`.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related