Paid Ads

When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, TikTok, or other paid channels. Also use when the user mentions "PPC", "paid media", "ROAS", "CPA", "CAC", "ad spend", "campaign structure", "audience targeting", "ad creative", "bidding strategy", "conversion tracking", "retargeting", "lookalike audiences", "account audit", or "media buying". Covers campaign setup, optimization, scaling, and creative strategy across all major ad platforms.

Paid Ads

You are a senior paid media strategist with 10+ years running ad accounts from $1k/month to $10M+/month across Google, Meta, LinkedIn, Twitter/X, TikTok and Reddit. You help operators, founders and marketers build profitable paid acquisition systems — not vanity campaigns.

Ad Copy Templates

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's changed in 2026 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

PlatformAudience knowledge → creativeAudience knowledge → targeting filtersNotes
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 Search40%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 Gen70%30%Audience signals are advisory, not deterministic. Creative + product feed quality dominate.
LinkedIn40%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.
TikTok70%30%Algorithm is closer to Meta's model — broad targeting + native-feeling creative wins. Some audience interests help but creative dominates.
Twitter/X50%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.

Applying audience knowledge to creative

Once you've gathered audience identifiers, here's how to put each kind into the creative:

Key Concepts (still apply)

Common failure mode

Trying to make up for weak creative with hyper-precise targeting. If your creative is generic but you stack 12 interests + 3 demographic filters + a custom audience, what you've built is a small audience that all see a bad ad. Better: gather the same audience identifiers, write 5 creative variants that each speak to a different segment, target broadly, let the algorithm match each creative to the right segment.

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


Modern Meta playbook (Andromeda era — 2026+)

Meta's Andromeda algorithm (2025) made creative volume and variety the main lever: target broadly and let specific creative do the targeting, ship many cheap static concepts, and make ads look native rather than polished. The full playbook (creative volume, creative as targeting, identity keywords, AI variants, zombie campaigns, native-looking ads) is in references/meta-andromeda-playbook.md.


Creative Best Practices

Image Ads

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:

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

ObjectivePrimary Metrics
AwarenessCPM, Reach, Video view rate
ConsiderationCTR, CPC, Time on site
ConversionCPA, ROAS, Conversion rate

Optimization Levers

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:

If CPM is high:

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 StageAudienceMessageGoal
TopBlog readers, video viewersEducational, social proofMove to consideration
MiddlePricing/feature page visitorsCase studies, demosMove to decision
BottomCart abandoners, trial usersUrgency, objection handlingConvert

Retargeting Windows

StageWindowFrequency Cap
Hot (cart/trial)1-7 daysHigher OK
Warm (key pages)7-30 days3-5x/week
Cold (any visit)30-90 days1-2x/week

Exclusions to Set Up

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:

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)

Ad-to-landing-page congruence is the single most underrated lever in paid ads. Most advertisers spend 90% of effort on ads and 10% on the landing page; flip that ratio.

Headline mirroring

Meta is the best split-testing tool that exists — your ad headlines are exposed to ~1000x the audience that actually clicks through to your landing page. That means you get statistically-significant data on which headlines work much faster on Meta than on your landing page.

The play:

  1. Run 20-40 different headlines as ad variations
  2. Identify the best-performing headline (by CTR + downstream conversion)
  3. Mirror that winning headline on your landing page — exact wording in the H1, sub-headline, and lead-in copy of the body
  4. Expect a 15-20% minimum lift in landing-page conversion rate from this single change

This works because the viewer who clicked is expecting that specific promise. When the landing page restates the exact promise verbatim, scent matches and conversion follows. When the landing page pivots to a different angle, bounce rate spikes regardless of how good the page is.

Three split tests minimum at all times

A standing discipline: at any given moment, you should have at least 3 split tests running somewhere in your funnel — ad creative, landing page, offer, or post-conversion flow. If you don't, you've capped your improvement curve.

The math: 3 simultaneous tests × ~10-20% lift each (compounding) = a fundamentally better funnel within a quarter.

Reporting & Analysis

Weekly Review

Attribution Considerations

Brand vs. non-brand (measure them separately)

Wherever people can search your name — Google Ads especially, but any channel with branded demand — split brand from non-brand before you evaluate or optimize anything. A branded query is demand that already exists; someone typing your name is harvesting it, not incremental performance the campaign created. So a cheap brand CPA / high brand ROAS is a readout of your existing awareness, not of media efficiency.

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:

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:

Outbound-call your leads who didn't convert:


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


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.

Audit & Recommendation Guardrails

Before auditing a live account, grading account health, quoting benchmarks, or recommending changes to running campaigns, load audit-guardrails.md. The non-negotiables:

Common Mistakes to Avoid

Strategy

Targeting

Creative

Budget


Task-Specific Questions

  1. What platform(s) are you currently running or want to start with?
  2. What's your monthly ad budget?
  3. What does a successful conversion look like (and what's it worth)?
  4. Do you have existing creative assets or need to create them?
  5. What landing page will ads point to?
  6. Do you have pixel/conversion tracking set up?

Tool Integrations

For implementation, see the tools registry. Key advertising platforms:

PlatformBest ForMCPGuide
Google AdsSearch intent, high-intent traffic✓google-ads.md
Meta AdsDemand gen, visual products, B2C-meta-ads.md
LinkedIn AdsB2B, job title targeting-linkedin-ads.md
TikTok AdsYounger demographics, video-tiktok-ads.md

For tracking setup, see references/conversion-tracking.md, ga4.md, segment.md



References

Abm Playbook

abm-playbook.md

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)

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:

List mechanics:

Account pages. For 1:1 and 1:few, send the click to a page built for that account or segment, not the generic homepage. Ways to build them:

Whichever you use: keep account pages noindex and out of the sitemap, use only public or first-party facts about the account, and have a human review before anything publishes.

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:

Acceleration campaigns (ads against open pipeline)

Ads aimed at accounts already in your pipeline, to speed deals rather than source them:

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:

Measuring ABM

Judge ABM on account movement, not CPL:


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

ad-copy-templates.md

Ad Copy Templates Reference

Detailed formulas and templates for writing high-converting ad copy.

Contents

Primary Text Formulas

Problem-Agitate-Solve (PAS)

B0

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)

B1

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

B2

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

B3

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

B4

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

FormulaExample
[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

TypeExample
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

Hard CTAs (conversion)

Best for: Bottom of funnel, warm audiences, clear offers

Urgency CTAs (use when genuine)

Best for: Limited-time offers, scarcity situations

Action-Oriented CTAs

Best for: Active voice, clear next step


Platform-Specific Copy Guidelines

Google Search Ads

Meta Ads (Facebook/Instagram)

LinkedIn Ads


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

audience-targeting.md

Audience Targeting Reference

Detailed targeting strategies for each major ad platform.

Contents

Search Campaign Targeting

Keywords:

Audience layering:

RLSA (Remarketing Lists for Search Ads):

Display/YouTube Targeting

Custom intent audiences:

In-market audiences:

Affinity audiences:

Customer match:

Similar/lookalike audiences:


Meta Audiences

Core Audiences (Interest/Demographic)

Interest targeting tips:

Demographic targeting:

Behavior targeting:

Custom Audiences

Website visitors:

Customer list:

Engagement audiences:

App activity:

Lookalike Audiences

Source audience quality matters:

Size recommendations:

Layering strategies:


LinkedIn Audiences

Job-Based Targeting

Job titles:

Job functions:

Seniority levels:

Skills:

Company-Based Targeting

Company size:

Industry:

Company names (ABM):

Company growth rate:

High-Performing Combinations

Use CaseTargeting Combination
Enterprise salesCompany size 1000+ + VP/CXO + Industry
SMB salesCompany size 11-200 + Manager/Director + Function
Developer toolsSkills + Job function + Company type
ABM campaignsCompany list + Decision-maker titles
Broad awarenessIndustry + Seniority + Geography

Twitter/X Audiences

Targeting options:

Best practices:


TikTok Audiences

Targeting options:

Best practices:


Audience Size Guidelines

PlatformMinimum RecommendedIdeal Range
Google Search1,000+ searches/mo5,000-50,000
Google Display100,000+500K-5M
Meta100,000+500K-10M
LinkedIn50,000+100K-500K
Twitter/X50,000+100K-1M
TikTok100,000+1M+

Too narrow = expensive, slow learning Too broad = wasted spend, poor relevance


Exclusion Strategy

Always exclude:

Audit Guardrails

audit-guardrails.md

Account Audits, Scoring & Recommendation Guardrails

Load this before auditing a live ad account, grading account health, quoting benchmarks, or recommending changes to a running campaign. It exists to prevent the classic AI-audit failure mode: confidently grading things you never saw, and turning folklore heuristics into verdicts.

Audit scoring semantics

Every check in an audit resolves to exactly one of four results:

ResultMeaningExample
PassYou saw the evidence and it's rightConversion tracking fired on a test conversion you observed
FailYou saw the evidence and it's wrongSearch terms report shows clearly irrelevant queries taking a large share of disclosed clicks
UnknownThe evidence needed to judge this wasn't availableNo access to the search terms report
Not applicableThis check doesn't apply to the accountPMax checks on an account that doesn't run PMax

The rule that makes an audit honest: keep "account health" and "evidence coverage" separate.

Grade the audit itself by coverage before presenting scores:

Evidence coverageHow to present the audit
80%+ of applicable checks verifiedGraded — scores are meaningful
60–79%Provisional — label every score as provisional and list what's unverified
Below 60%Insufficient evidence — report findings, but do not present a health score at all

Partial audits stay partial. If a platform or data source fails (no access, auth failure, missing export), exclude it from any cross-platform rollup entirely — a failed source is not a zero. Say "Google and Meta audited; LinkedIn not audited (no access)" and never label the result a complete audit.

What never counts against health

Recommendation safety

Every optimization heuristic is conditional — it depends on sample size, conversion lag, margin, objective, campaign maturity, and learning-phase state. Before recommending a bid, budget, targeting, creative, or keyword change, check those conditions. Specifically, never:

Hard stops

These asks get a refusal plus the correct alternative — treat them as response contracts, not suggestions:

User asksRespond
"Add my Meta conversions and Google conversions for the total"Refuse the sum when attribution windows or conversion definitions differ. Report the numbers side by side, note each window, and offer a blended view from a neutral source (GA4, CRM, or revenue data).
"Give me negative keywords to cut wasted spend" (no search terms report)Request the search terms report. Explain the overblocking review. Name zero candidate negatives.
"Pause everything above $X CPA right now"Show what a fixed kill rule would have caught vs. destroyed given conversion lag and sample size, then propose an evidence-based kill rule from the account's own data (see the platform playbooks).
"Just tell me my account health score" (with major data gaps)Give findings, name coverage, and decline to put a single number on what you mostly couldn't see.

Benchmark discipline

Benchmarks are comparison evidence, not pass/fail thresholds. When quoting one:

  1. Label provenance. Account's own data → independent research → platform-published → vendor case study. Anything from a vendor or platform marketing page is vendor-supplied — say so.
  2. Check cohort fit before applying it: platform, objective, industry, geography, price point, and attribution window. A B2C ecommerce CTR median says nothing about B2B lead gen.
  3. Use the narrowest defensible comparison, in order of preference:
  4. Same account, same objective, same attribution window, prior comparable period
  5. The account's own experiment or holdout
  6. First-party CRM/revenue cohort joined to spend
  7. A comparable peer cohort with disclosed methodology
  8. Broad industry benchmark — directional only, never a verdict
  9. Never blend numbers with different attribution windows, conversion definitions, or currencies into one figure without normalizing and saying you did.

Untrusted data and live accounts


Scoring semantics, recommendation-safety rules, and the benchmark-evidence ladder are distilled and remixed from claude-ads by Daniel Agrici (MIT), reused with credit.

B2b Paid Playbook

b2b-paid-playbook.md

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, LinkedIn, Google Search, ABM).

Contents

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:

StageOutcomeBuyer awarenessTypical offersKPIs
CreateBuild affinity & trustUnaware / Problem-awareEducational content, POVCost per consumption, blended cost/opp
CaptureConvert in-market buyersSolution / Product-awareDemos, trialsPipe-to-spend, direct cost/opp
Accelerate (sales-led) / Activate (product-led)Close open deals faster / convert free usersProduct / Offer-awareCase studies, webinars, eventsPipeline velocity, paid signups
ReviveRestart closed-lostOffer-awareIncentivized demos, guided trialsSQOs created, cost/SQO
ExpandGrow existing accountsMost awareReferral programs, new-feature contentExpansion 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

StageBudget sizeTime to ROIDifficulty
CreateHigh90+ daysHigh (needs strong content + POV)
CaptureModerate<45 daysHigh (expensive, competitive)
Accelerate/ActivateLowTracks sales cycleLow
ReviveLow<45 daysLow
ExpandLow<60 daysMedium (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:

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:

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:

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).

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:

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 effortHigh effort
High budgetAudiences — bigger audiences, more segments, more frequencyGeography — new countries/regions (localization work)
Low budgetAds — new creative, angles, formatsObjectives & bids — change objective or bid strategy to buy cheaper

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

conversion-tracking.md

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:

Get tracking right before spending a dollar on ads.


Platform Pixels Overview

PlatformPixel/Tag NameEvents APIKey Events
Google AdsGoogle tag (gtag.js)Enhanced Conversionspurchase, sign_up, generate_lead
MetaMeta Pixel + CAPIConversions APIPurchase, Lead, ViewContent, AddToCart
LinkedInInsight TagConversions APIconversion (URL or event-based)
TikTokTikTok PixelEvents APIPurchase, ViewContent, AddToCart, CompleteRegistration
Twitter/XTwitter Pixel-Purchase, SignUp, Download

Install the Google tag

Add to every page, in <head>:

B0

Replace AW-XXXXXXXXX with your Conversion ID from Google Ads > Tools > Conversions.

Set up conversion actions

In Google Ads > Goals > Conversions > New conversion action:

ConversionCategoryValueCount
PurchasePurchaseDynamic (order value)Every
Sign up / LeadSign-upFixed ($X estimated value)One
Demo requestLeadFixed ($X estimated value)One
Free trial startSign-upFixed ($X estimated value)One

Fire conversion events

B1

Enhanced Conversions

Sends hashed first-party data (email, phone) to improve attribution after cookie restrictions. Enable in Google Ads > Goals > Settings > Enhanced conversions.

B2

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>:

B3

Replace YOUR_PIXEL_ID from Meta Events Manager.

Standard events

B4

Conversions API (CAPI)

Server-side tracking that works alongside the pixel. Required for accurate tracking after iOS 14+ and cookie restrictions.

Set up via:

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>:

B5

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:

B6

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>:

B7

Standard events

B8

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:

B9


Validation Checklist

After installing any pixel, verify before going live:

Browser-side checks

Platform-side checks

Debugging tools

PlatformTool
GoogleGoogle Tag Assistant, Chrome DevTools Network tab
MetaMeta Pixel Helper (Chrome extension), Events Manager Test Events
LinkedInInsight Tag Validator in Campaign Manager
TikTokTikTok Pixel Helper (Chrome extension), Events Manager
AllGTM Preview Mode (if using Google Tag Manager)

Common Mistakes


When to Use Server-Side Tracking

Browser-only tracking is increasingly unreliable due to:

Use server-side (CAPI/Events API) when:

Server-side is optional when:

Creative Research Automation

creative-research-automation.md

Creative Research Automation

An agentic workflow for running the creative-strategy research that usually eats most of a strategist's time — ad-library teardowns, review→persona mapping, and organic competitor analysis — as repeatable agent runs instead of monthly manual reports. Adapted from Dara Denney's Claude Cowork practice ($100M+ Meta spend).

The core reframe: don't ask the agent to replace the strategist. Offload the research — the part that's slow, mechanical, and where most hours actually go. The agent opens the browser, reads the pages, scrapes the data, and hands back a structured artifact you steer and use.

Contents

When to use this

This is the paid-social creative research cut. For structured competitor dossiers from a URL list, hand off to competitor-profiling. For deep voice-of-customer analysis and JTBD, hand off to customer-research. Persona output feeds product-marketing.

Workflow 1: Ad Library analysis

Point the agent at a competitor's active paid creative and get back a structured teardown of what they're running and who it's for.

Prompt pattern (fill the brackets, paste the real link):

> Do a creative analysis on [brand]. Their Facebook Ad Library is here: [exact ad-library URL]. Open it with the Chrome connector. Report on the schema below. If a field can't be verified from the library, mark it "unknown" — don't guess.

Output schema (one report per brand):

FieldWhat to capture
Active-ad countHow many ads currently running
Product linesWhich products/offers the ads promote
Creator partnersNamed creators/handles in partnership ads
Video/image split% video vs. % static
Video-duration distributionBuckets (e.g. <15s / 15–30s / 30–60s / 60s+)
% partnership adsShare flagged as paid partnerships
Messaging pillarsThe 3–6 recurring angles/claims
Inferred personasWho each cluster of ads appears to target
Top-10 by impressionsRanked, with what each leans on

Useful follow-up in the same chat: "where are these ranking by impressions?" and "which of these have been running longest?" (longest-running ≈ proven winner). The % partnership ads and creator partners fields feed partnership/creator strategy; the format split + duration feeds the format taxonomy an ad brief starts from.

Workflow 2: Review → persona mapping

Turn a competitor's (or your own) product reviews into personas grounded in real customer language — and surface the gap between who the creative targets and who actually buys.

Three chained steps, same chat:

  1. Scrape reviews → CSV. Point the agent at the exact reviews URL (Amazon, G2, Trustpilot, site reviews). Have it export to CSV and auto-split by product variant. For huge counts (tens of thousands), sample — ~3k reviews is plenty for signal and far faster than pulling 40k+.
  2. Reviews → editable personas doc. Synthesize the reviews into personas in an editable document first (not straight to a deck). This is reviewable, correctable — and doubles as an excellent reusable context document: upload it to a project so every downstream creative/copy task shares the same grounded personas.
  3. Doc → visual deck. Once the personas doc is approved, turn it into a visual presentation (charts, persona cards) for stakeholders.

The signature move — persona mapping. Ask the agent to compare two things side by side:

The gap is the insight. Creative aimed at a 25-year-old early adopter while reviews are dominated by 45-year-old repeat buyers means the targeting-in-creative is off — a concrete brief for the next round. This is the paid-creative complement to full customer-research; persist the personas doc as shared context for both.

Workflow 3: Competitor / brand teardown (organic)

A monthly organic teardown of a competitor's (or an admired brand's) owned social — separate from their paid Ad Library.

Prompt pattern:

> Do an organic teardown of [brand] on [platform]: [exact profile URL]. Open it with the Chrome connector. Give me follower count, top reels/posts by likes with direct links, what they're doubling down on, and their strengths + gaps I can exploit.

Output:

Run it against your competitors, your clients' competitors, or brands you admire for inspiration. Ask follow-up questions against the generated report in the same chat. For a full structured competitor dossier (pricing, positioning, SEO), hand the shortlist to competitor-profiling.

Running it well (practical notes)

Where the outputs go

google-ads-audit-checklist.md

Google Ads Audit Checklist (Ecommerce)

An itemized, ecommerce-oriented audit of a live Google Ads + Merchant Center account: 32 checks across 11 categories, built to find wasted spend, uncover prospecting opportunities, and surface incremental revenue before scaling.

Load audit-guardrails.md first — it governs how every item below is scored. Each check resolves to exactly one of pass / fail / unknown / not applicable. An unknown (evidence unavailable) reduces coverage, never health. Not applicable (e.g. Shopping checks on a lead-gen account) affects neither. Do not grade what you couldn't see, don't invent negative keywords, and draft every change before touching a live account.

Work top to bottom. For each item, record the result, the evidence you saw (or the missing source), and — on a fail — a draft fix, not an applied one.


Tracking

  1. Conversion tracking configuration — Confirm a single source of truth for purchases. Two systems counting the same order (GA4 import + native tag, or a duplicate gtag) inflates conversions and makes the bidder optimize toward phantom volume. Fail if double-counting or missing purchase value; pass on a verified test conversion with the right value + currency. Deep dive: conversion-tracking.md.

Targeting

  1. Customer list for audience targeting — Check that a hashed customer email list is uploaded and actively used — as a signal/lookalike source for prospecting and as an exclusion where it should be (existing buyers on non-upsell campaigns). Uploaded-but-unused is a fail. Deep dive: Customer Match in audience-targeting.md.
  2. Negative keyword lists (Search, Shopping) — Review shared and campaign-level negatives for irrelevant, out-of-market, or unprofitable queries draining budget. No search-terms report → unknown, not fail. Never name candidate negatives from imagination; request the report and run the overblocking review (see audit-guardrails).

Campaign Structure

  1. Branded vs. non-branded split — Isolate brand traffic into its own campaign. Brand terms buried inside "generic" or catch-all campaigns inflate blended ROAS and hide non-brand inefficiency. Fail if brand and non-brand share a campaign with no way to read them apart.

Merchant Center (GMC)

  1. Shipping settings — Confirm configured shipping speeds/costs match real fulfillment. Understated speed loses the auction; overstated speed risks disapproval. Free-shipping thresholds should be reflected.
  2. Promotions — Check that live sales, discounts, and evergreen offers are set up as GMC promotions so they render as promotion links on Shopping ads. Missing = leaving CTR on the table.
  3. Product feed titles — The title's first ~70 characters do the ranking and the clicking. Verify the highest-intent keyword, then key feature/benefit, sit before truncation — brand-first titles waste that space unless the brand is the query.
  4. Product images — Assess whether images stand out in the Shopping carousel (clean, on-white where required, but distinct from competitors). Weak imagery caps CTR no matter the bid.
  5. Store quality overview — Read the Merchant Center diagnostics: disapprovals, missing/invalid attributes (GTIN, availability, price mismatches), and feed warnings. Disapproved products = silent zero-impression revenue leak.
  6. Product ratings — Verify individual product ratings sync from the review source and render as star annotations. A configured feed that isn't showing stars is a fail worth chasing.
  7. Impressions on eligible products — Check the full catalog is actually getting served, not a head of hero SKUs soaking all impressions. Zero-impression eligible products are untested inventory.

Shopping

  1. Campaign segmentation — Confirm each Shopping/PMax segment has enough conversion volume (~30–50+/month) to let the bidder learn. Over-segmentation starves every bucket; consolidate before adding structure.
  2. Budget allocation across products — Trace whether spend flows to positive-ROI SKUs. If losers eat budget while winners are capped, that's a reallocation fail (draft the shift; don't restructure a learning campaign as a reflex).

Bidding & Budget

  1. Bidding strategy — branded (Search) — On brand, high-intent clicks are cheap and near-certain; basic tROAS/Max-conversion-value can let Google overpay for volume you'd win anyway. Prefer manual/portfolio control or a tight target on brand.
  2. Campaign bidding targets — Sanity-check every Target ROAS/CPA against campaign type (brand vs. non-brand, hero vs. long-tail). A single blanket target across mismatched economics is a fail — and per audit-guardrails, one budget-to-CPA ratio doesn't fit all objectives.
  3. Non-branded terms in brand campaigns — Read the brand campaign's search terms for generic, non-branded queries that leaked in. Move them to non-brand so brand ROAS isn't propped up by prospecting spend.
  4. Bidding strategy — non-branded (Search, PMax, Shopping, Demand Gen) — Match strategy to volume and goal: value-based bidding needs conversion data; thin campaigns may need manual/tCPA first. Mismatched strategy on low volume never exits learning.
  1. New search terms for expansion — Mine the search-terms report for converting queries not yet directly targeted; expand into keywords, and feed the language back into product titles and content. (Same report gates item 3 — pull once, use for both.)
  2. Ad copy performance — Check CTR relative to impressions, ad strength, and whether underperformers are being refreshed. Weak copy raises CPC via Quality Score before it ever costs a conversion.
  3. Brand keyword match types — Brand-protection keywords should run exact or phrase only. Broad on brand invites Google to spend brand budget on loosely related, lower-intent queries.
  4. Brand ad copy quality — Verify brand ads use consistent formatting, lead with USPs, and track the promotional calendar. Brand is your highest-intent surface; generic brand copy underconverts a captive audience.
  5. Quality Score — Low QS means higher CPC and lower rank for the same bid. Read it as a diagnostic (expected CTR / ad relevance / landing-page experience components), not a metric to game.

Performance Max

  1. PMax signals — Check asset groups actually carry audience signals — search themes plus the customer list — rather than empty signal fields. Signals are advisory, not deterministic, but empty ones forfeit a real optimization lever.
  2. PMax budget on Shopping — Shopping is usually the money placement inside PMax. Confirm a meaningful share of PMax spend lands there (via the account report or product-level data) rather than bleeding into low-intent display/video.

Landing Page

  1. Comparison page funnel — Look for a listicle-style review page on an independent domain that positions the brand as #1 — a proven cold-traffic funnel Shopping/PMax can point to.
  2. Head-to-head competitor pages — "Us vs. them" pages that capture comparison-stage demand. Absence is an opportunity, not a defect.
  3. Advertorials — Check whether cold Google traffic is met with advertorial (story-led, editorial-feel) landers, not just a raw PDP.
  4. Landing page optimization — Confirm the ad's promise (offer, price, hero product) appears clearly above the fold on the lander. Ad-to-page scent mismatch wastes the click regardless of bid — the highest-leverage post-click fix.

Demand Gen

  1. Performance by format — Segment Demand Gen results by network (Shorts, In-Stream, In-Feed + Discovery, Gmail, Display) to find which format actually drives efficient conversions; a blended DG number hides the winner and the drain.
  2. Quiz funnel for cold traffic (Landing Page) — A quiz funnel warms and segments cold Google/Demand-Gen traffic through a personalized path. Its absence is a prospecting-funnel gap to flag.
  3. Demand Gen demographics — Analyze performance by age, gender, parental status, and household-income bands to catch mis-serving and inform exclusions/bid adjustments.
  4. Top-of-funnel campaign (Search) — Confirm something is reaching cold audiences who don't yet know the product — with a conversion goal, not a bare awareness objective. All-bottom-funnel accounts cap out at existing demand.

Rolling it up


Adapted into this skill's framing from ECHELONN's public Google Ads Audit Checklist (Jackson Blackledge, ECHELONN.IO). Item structure credited; descriptions and scoring are rewritten to this skill's voice and paired with the four-state audit model in audit-guardrails.md.

Google Search Playbook

google-search-playbook.md

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.

Contents

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:

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.

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:

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–15Manual CPC or Maximize Conversions (no target)
15–30Maximize Conversions
30+ stableTarget CPA — set at or slightly above your trailing 30-day actual
Real revenue values flowing backTarget 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 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

linkedin-b2b-playbook.md

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

  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

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:

Audience splitting rules

Split priority: intent > persona > region/company size > seniority.

Penetration-based scaling

Audience penetration (reached ÷ audience size) is the scaling trigger, not spend:

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.

MetricCold / TOFMOFBOF/retargeting
CTRTLP0.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:

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

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 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 Andromeda Playbook

meta-andromeda-playbook.md

Modern Meta Playbook (Andromeda Era)

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)

Creative IS the targeting (broad audience + specific creative)

The one-keyword hack (identity-trigger keywords)

AI variant farming (the 100-people test)

Zombie campaigns

Don't make ads look like ads

Meta Decision System

meta-decision-system.md

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

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:

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).

Destination testing (CBO per persona, one ad set per destination)

A complementary structure for when the lander, not the creative, is the biggest unknown: one CBO per persona; inside it, one ad set per destination type — PDP, listicle/advertorial, quiz, demo page — with the same creatives in every ad set. Holding creative constant makes the read clean: any CPM or performance divergence between ad sets is the destination.

Why it works: the destination is a test axis of the same rank as creative — a losing funnel can hide winning creative, and different personas convert through different funnel shapes. CBO allocates budget across destinations the way it allocates across ads, and practitioners running this report wide CPM/performance spreads between destinations plus meaningful new-reach gains (~30%) from the added variety.

Fit with the two-campaign structure: treat a destination test like a concept test — run it in the Testing campaign with a protected budget, judge each ad set against TCPL at the usual spend gates, then graduate the winning creative × destination pair. Practitioner-reported pattern (Alexander Pauwelyn, 2026), not a platform-documented mechanic — validate against your own account data.

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:

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):
  1. 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 typeSafeWarningCritical
Cold prospecting1.0–2.52.5–4.0>4.0
Retargeting2.0–4.04.0–6.0>6.0
ABM (small audiences)2.0–5.05.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

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.

Weekly cadence

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:

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. Watch Campaign Score directionally (70+ healthy, <50 = fighting the algorithm) but never trade lead quality for score.

Partnership ads (the net-new-reach lever)

Everything above optimizes conversion inside an audience Meta already reaches you. Partnership ads are how you reach a net-new one. Andromeda targets by persona, not interest lists — and a creator's own following is a pre-assembled persona. Running an ad as a partnership (branded content from the creator's handle) inherits that seed audience, so the algorithm expands from people who already trust the fronting creator. This is the single highest-leverage lever on Meta right now; a serious account without partnership ads is bringing a butter knife to a gunfight.

Where it fits the decision system: partnership ads are a scaling move, not a testing gimmick. When the account hits the wall (frequency >3.5, rolling reach flattening — see below), the "add new seed audiences" step in the scaling protocol is largely this. Judge them against TCPL like any other ad, but expect a different failure mode: a weak partnership ad is usually the wrong creator, not the wrong hook.

Partnership-ads playbook:

  1. Pre-test before you promote. Don't pay to boost a creator's post on faith. Let their content run organically (or in a cheap traffic/engagement test) first; promote only the pieces that already earn saves, shares, and watch-through. Paid spend amplifies what's working — it doesn't rescue a flat creator.
  2. Pick for persona overlap, not follower count. The seed audience only helps if the creator's followers are your ICP. A 15K-follower creator whose audience is exactly your buyer beats a 500K generalist. Vet the audience, not the vanity metric.
  3. Deal structure basics: get whitelisting / branded-content-partner access (run ads from the creator's handle, not just reposts — this is what unlocks the seed audience) with usage rights for a defined window (typically 3–6 months, renewable) plus spend/paid-amplification rights. Pay a flat content fee; add per-deliverable pricing for extra cuts. Avoid pure revenue-share on cold creators — you can't attribute cleanly yet.
  4. Companion tactic — commission low-fi statics per creator. When you contract a creator for the partnership video, also commission a few quick, low-fi statics (screenshot-style, "how they'd post it to their own story"). Each creator then becomes a mini-funnel: the partnership video punctures cold net-new reach, the low-fi statics support mid-funnel conversion under the same trusted face. Cheap to add, and it multiplies the return on the creator relationship.

Format-level guidance on which creator-fronted formats to run (founder content, yapper, authority, amateur-investigation, creator low-fi statics, etc.) lives in the ad-creative format taxonomy: meta-creative-formats.md (sibling addition — forward link).

Rolling reach as a health signal

Rolling month-over-month reach (unique people reached, MoM) is the account's net-new-audience gauge — the thing conversion metrics can't tell you. CPL and ROAS can look fine while you quietly recycle the same shrinking pool; the tell is reach going flat or declining month over month even as spend holds.

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.

Payback Period

payback-period.md

Payback Period Budgeting

The gate before every channel decision: can I afford this channel? Advertising has to be deterministic — $1 in, more than $1 out, on a clock you can name. Payback Period is how you set the clock.

Kill LTV:CAC first

LTV:CAC is a useless, often destructive metric. It feels rigorous and is usually a lie. Four flaws:

  1. It assumes all customers churn. LTV bakes in an eventual death for every account. Your best customers don't churn — they compound. A metric that pre-writes everyone's obituary underprices your actual base.
  2. It assumes churn is evenly timed. It isn't. Baremetrics data shows more churn happens in the first 3 months than in any other window — front-loaded, not smooth. Blended LTV smears that spike into a flat average and hides the real risk (and the real payback math).
  3. It hides per-plan variance under blended ARPU. A $9/mo plan and a $999/mo plan get averaged into one number that describes neither. The channels, creative, and payback that work for the $9 buyer are nothing like the $999 buyer — but blended LTV:CAC says "3:1, we're fine" and you scale the wrong thing.
  4. It ignores revenue delay. Free trials, free plans, and long sales cycles mean money arrives weeks or months after CAC is spent. LTV:CAC treats acquisition and revenue as simultaneous. They're not. The gap is where startups run out of cash.

A "healthy" 3:1 LTV:CAC can sit on top of a channel that bankrupts you, because the ratio never asks when the cash comes back.

The replacement: Payback Period

Revenue-only ratio = CAC / monthly ARPU. For acquisition-cost recovery use gross-margin payback = CAC / (monthly ARPU × gross margin), with gross margin as a fraction. The revenue-only ratio assumes 100% gross margin; it excludes serving costs. See the CAC payback definition.

The simplified ratio is in months and assumes steady monthly gross profit with no churn or collection delay. A 3–12 month target is a planning reference. Choose a target using your cash runway, margins and cohort recovery; a shorter or longer ratio alone does not justify changing spend.

Because it's per-cohort and per-plan (not blended), it exposes exactly what LTV:CAC hides.

Worked example — same CAC, wildly different payback

Say a channel costs $300 to acquire a customer (CAC = $300). The table below is revenue-only, before serving costs and churn; it is a comparison, not permission to scale:

PlanARPU (monthly)Revenue-only ratio = CAC / ARPUVerdict
Starter$9300 / 9 = 33.3 monthsDon't fund paid acquisition for this plan. 33.3 months before costs and churn, and longer once margin is included.
Pro$99300 / 99 = 3.0 monthsCheck margin first. At 80% gross margin it's 3.8 months; at 20% it's 15.2 months, which is too slow to scale.
Enterprise$999300 / 999 = 0.3 monthsScale, after confirming when cash is actually collected (annual invoices, net-60 terms).

Same CAC does not imply the same affordability. At 20% gross margin the $99 plan takes 300 / (99 × 0.20) = 15.2 months even before churn, despite its 3.0-month revenue-only ratio. Compare plans separately and verify serving costs before approving spend.

The practical move: compute recovery per plan (or per cohort) against measured margin, retention and cash timing. Use the 3–12 month target as a planning assumption to compare with runway, not a universal approval rule.

Cohort recovery — account for when churn happens

CAC / (ARPU × annual retention) is not discounted payback. A single year-end retention percentage cannot identify the monthly recovery path. Time-value discounting requires an explicit discount rate; retention describes customer survival.

For a cohort, find the first month where cumulative gross profit per original acquired customer covers CAC:

B0

Use measured retained revenue per original customer instead when available; do not multiply by retention again. Include collection delay when assessing cash recovery. If the observed cohort has not recovered CAC, report that rather than inventing a payback date.

Example: CAC $300, ARPU $99 and 80% gross margin. Two cohorts both retain 70% at month 12:

The old single-retention ratio gives the same 4.3 months to both cohorts and ignores gross margin. Their actual recovery differs despite identical year-end retention.

Using it as the channel gate

  1. Compute CAC for the channel (all-in: spend / customers, including creative and management).
  2. Compute gross-margin payback and check the measured cohort recovery path, including revenue collection timing.
  3. Compare recovery with runway and your chosen target (the 3–12 month band is a planning reference). Do not scale on a revenue-only ratio or annual retention multiplier.
  4. Re-run monthly — CAC drifts up as you scale; the gate moves with it.

This composes with breakeven CPL/CPC math in b2b-paid-playbook.md: breakeven tells you the most you can pay per lead; payback tells you how long your cash is tied up — you need both to scale without running dry.

Two adjacent rules

OOH without social amplification is a waste of money. Out-of-home (billboards, transit, print) has no click, no pixel, no deterministic loop on its own. It only pays back when it's engineered to be photographed, posted, and amplified on social — the OOH buys the moment, social buys the reach. Running OOH with no social plan is buying awareness you can't measure or compound.

Narrative momentum (ad copy): the strongest-performing ads carry a story forward rather than restate a pitch — each line earns the next, building tension toward the CTA instead of front-loading features. Pair it with the discipline of testing one variable at a time (copy, then creative, then audience) so you can tell what actually moved payback. Depth on both lives in the ad-creative skill; this file only flags them as levers that change your CAC.


Source: Corey Haines, Founding Marketing*, ch. 7 ("Spend budget where customers spend their time"). Payback targets and the Baremetrics first-3-months churn finding are practitioner-reported — recalibrate against your own cohort data. For attribution of the CAC inputs, see the attribution skill; for setting ARPU and plan structure, see the pricing skill.*

Platform Setup Checklists

platform-setup-checklists.md

Platform Setup Checklists

Complete setup checklists for major ad platforms.

Contents

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 (E-commerce)

Creative Assets

Compliance


LinkedIn Ads Setup

Campaign Manager Foundation

Insight Tag & Tracking

Audience Setup

Lead Gen Forms (if using)

Document Ads (if using)

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

Before launching any campaign:

Reading Google Ads Data

reading-google-ads-data.md

Reading Google Ads Data Without False Conclusions

Load this before analyzing, auditing, or reporting on a Google Ads account, or before deciding whether to pause, keep, or scale anything in one. audit-guardrails.md covers how to grade what you find. This file covers how the data misleads you before you get that far.

Google Ads reports are partial by design and plausible by accident. Default views omit data without saying so, resource names suggest contents they don't have, and small accounts produce numbers that look like findings. Most wrong conclusions come from not knowing that, not from bad reasoning.

Query patterns and API gotchas live in google-ads.md.

What the data hides

Search terms are a sample, not the total

Google withholds any query searched by too few people. On low-volume accounts, 50–65% of clicks routinely have no disclosed search term. The visible terms are a non-random sample skewed toward common searches.

B0

Names describe intentions, not contents

An ad group called "Competitor - Commercial" can hold entirely informational keywords. A campaign named for one theme can target another. Read the keyword list and the search terms; treat every name as a label someone typed once.

"Conversions" is several things in one column

metrics.conversions counts actions marked primary, plus any secondary action a campaign's custom goal pulls in. metrics.all_conversions adds the rest. Check campaign goals as well as action settings. One campaign's conversions might mix a page-view proxy, a trial signup, and a booked demo.

One ad group can send traffic to several pages

Ads carry their own final URLs, and stale pages linger in rotation long after a new landing page ships. Before concluding anything about landing page performance, check which destinations are serving and how traffic splits between them.

Dates are click dates

Conversions are attributed back to the originating click. A conversion recorded today can appear dated a week earlier. When a client says "we got a conversion today" and your pull says the 11th, both are right. Say "clicked on the 11th."

Identical campaign names are usually experiment arms

Expired experiment arms inherit the base campaign's name and can keep an ENABLED status while serving nothing. Check campaign.experiment_type and campaign.serving_status before believing a duplicate exists.

Change history is short: 30 days with detail, 90 without

change_event (field-level before and after) covers 30 days. change_status covers 90 days but only says which resource changed, not what. Past that, the API has nothing. A performance shift four months ago may have no recoverable explanation, so say that instead of guessing one.

Other people are changing the account

Client staff, automated rules, scripts, and agents all leave changes. In change_event, client_type says which client made the change: GOOGLE_ADS_WEB_CLIENT (the UI), GOOGLE_ADS_API, GOOGLE_ADS_SCRIPTS, GOOGLE_ADS_AUTOMATED_RULE, GOOGLE_ADS_BULK_UPLOAD, GOOGLE_ADS_RECOMMENDATIONS, INTERNAL_TOOL (Google-side tooling), and others in the enum. Report the client, not a guess at who or why: an API change could be an agency tool or a script. Google Ads Editor changes aren't returned at all, so a missing edit doesn't mean nobody made one. A repeating weekday-and-time pattern under one user is a scheduled job, not a person.

The window is not the picture

A 30-day pull on a campaign that has run since spring is a slice of a longer series. Recent CPA can differ sharply from lifetime CPA.

Small numbers

Most false findings in small accounts are sample-size errors that look like insight. Skepticism runs both ways: one conversion on one click proves no more than zero conversions on five clicks disproves.

Zero conversions in N clicks only rules out conversion rates at or above (95% confidence):

ClicksRules out CVR ≥What you can say
545%Nothing. Zero is the expected outcome
1026%Still nothing useful
3010%Can begin doubting a strong CVR
506%Meaningful for high-intent search
1003%Underperforming if break-even CVR is above 3%

Before calling spend wasted, work out what it would have to convert at to be worth keeping:

B1

If break-even CVR is below the plausible range for that traffic, the term isn't failing, it's unmeasured. Then estimate how long a readable sample takes at current click volume. "Let it run" is only an honest answer when it comes with a date you'll actually know by. At five clicks a month, sometimes the honest answer is that you never will.

Documents describe a day; accounts move

Audits, status docs, and proposals were true when written. Every performance number in them is stale until re-pulled. The claims most likely to be repeated confidently ("zero conversions," "wasted spend," "wrong intent") are exactly the ones that change. Carry the date with the claim: as of the audit on the 2nd.

Stating findings

Know which of these each claim is:

Keep stale claims out of client-facing sentences unless they're labeled as such.

The test before anything reaches a client: can they disprove this in a minute with their own account access? They have the same reports. Volunteer the limits first (the disclosed-clicks ratio, the sample size, the config changes). It costs nothing, since they'd find them anyway, and it's what makes the rest credible.

If a claim touches a landing page, open it. Don't characterize a page from its URL, a status doc, or what the client says is on it. Calendar embeds and chat widgets load via JavaScript and won't show in a static fetch, so absence there isn't evidence.

When a client challenges a finding and they're right, concede the substance plainly and move on. Stacked retractions cost more credibility than the original error.

Conclusions that sound right

Sounds likeUsually
"This campaign has zero conversions"True on the day the doc was written
"The search terms are junk"You're seeing ~40% of the clicks
"That ad group is wrong-intent"It's named that; the keywords say otherwise
"$X wasted on those terms"Below any readable sample size
"It converted, so the term works"One conversion on one click is noise
"Performance declined in August"Bids changed three times that month
"Traffic lands on the new page"Two ads serve; one points at the old page
"It got a demo"It got a conversion; check which action
"There are duplicate campaigns"Expired experiment arms with the base name
"Nobody touched it last quarter"Change history only covers 30 days

Rsa Output Spec

rsa-output-spec.md

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)

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:

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)

B0

Self-check before responding

Before sending the output, run this checklist mentally:

If any check fails, rewrite before responding. Do not ship partial RSAs.


Exported from Marketing Skills on 2026-10-12