--- name: ad-creative description: > Design high-converting ad creative across Google, Meta, LinkedIn, Twitter/X, and TikTok. Includes platform-specific format specs, A/B testing frameworks, headline formulas, creative iteration methodology, and compliance validation. Use when writing ad copy, generating headline variations, creating ad sets, iterating on winning ads, validating creative against platform specs, or when user mentions ad copy, RSA headlines, Meta ad copy, LinkedIn ads, creative testing, ad variations, or bulk creative production. license: MIT metadata: version: 1.0.0 author: borghei category: marketing domain: advertising updated: 2026-03-09 --- # Ad Creative Production-grade ad creative design, iteration, and optimization across all major advertising platforms. --- ## Table of Contents - [Keywords](#keywords) - [Quick Start](#quick-start) - [Core Workflows](#core-workflows) - [Platform Specifications](#platform-specifications) - [Creative Frameworks by Funnel Stage](#creative-frameworks-by-funnel-stage) - [Headline Formula Library](#headline-formula-library) - [Iteration Methodology](#iteration-methodology) - [A/B Testing Framework](#ab-testing-framework) - [Quality Validation](#quality-validation) - [Best Practices](#best-practices) - [Integration Points](#integration-points) --- ## Keywords ad creative, ad copy, headline generation, RSA headlines, Meta ad copy, LinkedIn ads, Google Ads, Twitter/X ads, TikTok ads, creative testing, A/B testing, ad variations, bulk creative, performance creative, display ads, search ads, social ads, CTA optimization, ad compliance, character limits, creative matrix, ad iteration, conversion copy, platform-specific ads --- ## Quick Start ### Generate Ad Copy from Scratch 1. Define product, audience, and funnel stage 2. Select platform and ad format from the specs table 3. Choose creative framework matching funnel stage 4. Generate 8-15 headline variations using formula library 5. Write body copy per platform character limits 6. Run quality validation checklist before submission ### Iterate on Existing Ads 1. Collect performance data (CTR, CVR, CPA) for current ads 2. Diagnose winning pattern: hook type, emotional driver, CTA style 3. Generate 3-5 on-theme variations preserving the winning pattern 4. Generate 2-3 new angle tests for exploration 5. Validate all copy against platform compliance rules --- ## Core Workflows ### Workflow 1: Full Creative Set Generation **Step 1: Define the Creative Brief** Document before writing any copy: ```markdown ## Creative Brief - Product/Offer: [Specific product, feature, or lead magnet] - Value Proposition: [One sentence — what changes in the customer's life] - Target Audience: [Job title, pain point, awareness level] - Platform(s): [Google / Meta / LinkedIn / Twitter/X / TikTok] - Funnel Stage: [Awareness / Consideration / Decision] - Existing Creative: [Yes/No — if yes, attach performance data] - Budget Context: [Daily/monthly spend, CPA targets] ``` **Step 2: Generate Headlines by Formula Type** Produce minimum 10 headlines, distributed across formula categories: - 3 benefit-first headlines - 2 curiosity headlines - 2 social proof headlines - 2 problem agitation headlines - 1 urgency headline (only if genuine scarcity exists) **Step 3: Write Platform-Specific Body Copy** For each platform, write 2-3 body copy variations: - Respect character limits exactly - Match tone to platform norms - Include CTA aligned with landing page offer **Step 4: Assemble Ad Sets** Organize into testable ad sets: ``` [AD SET: Benefit-First] | [Platform] | [Funnel Stage] Headline A: "..." (28/30 chars) Headline B: "..." (26/30 chars) Body: "..." (87/90 chars) CTA: "Start Free Trial" ``` **Step 5: Validate and Submit** Run every ad through the quality checklist before upload. ### Workflow 2: Performance-Based Iteration **Step 1: Audit Current Creative** For each running ad, classify: - Hook type: Problem / Benefit / Curiosity / Social Proof / Urgency - Emotional driver: Fear / Ambition / FOMO / Frustration / Relief - CTA type: Click / Sign up / Learn more / Book / Download - Performance tier: Winner / Average / Underperformer **Step 2: Extract the Winning Pattern** Identify what the top performers share: - Specific numbers vs. vague claims - Customer voice vs. brand voice - Direct benefit vs. emotional appeal - Short vs. long format **Step 3: Generate Variations** - 3-5 on-theme variations (same hook type, different angle) - 2-3 exploration variations (new hook type, untested territory) **Step 4: Build a Creative Testing Matrix** | Angle | Google | Meta | LinkedIn | |-------|--------|------|----------| | Benefit-first | [copy] | [copy] | [copy] | | Social proof | [copy] | [copy] | [copy] | | Problem agitation | [copy] | [copy] | [copy] | ### Workflow 3: Cross-Platform Adaptation **Step 1: Lock the Core Message** Define the single transferable message that works across all platforms. **Step 2: Adapt Per Platform** Reformat (not rewrite from scratch): - Adjust character count to platform specs - Modify tone (LinkedIn = professional, TikTok = casual, Google = direct) - Change CTA style to match platform conventions - Adjust visual/copy balance per platform norms --- ## Platform Specifications ### Character Limits Reference | Platform | Format | Headline Limit | Body/Description Limit | Key Constraints | |----------|--------|---------------|------------------------|-----------------| | Google RSA | Search | 30 chars x 15 | 90 chars x 4 descriptions | Max 3 pinned positions | | Google Display | Display | 30 chars x 5 short, 90 chars x 1 long | 90 chars x 5 | Requires 5+ images | | Google Performance Max | Multi | 30 chars x 5 short, 90 chars x 5 long | 90 chars x 5 | Auto-placement | | Meta Feed | Image/Video | 40 chars headline | 125 chars primary text (recommended) | Image text < 20% | | Meta Stories | Vertical | 40 chars | 125 chars | 9:16 aspect ratio | | LinkedIn Sponsored | Content | 70 chars headline | 150 chars intro text | No clickbait policies | | LinkedIn Message | InMail | 60 chars subject | 1,500 chars body | Personalization required | | Twitter/X | Promoted | 70 chars headline | 280 chars total | No deceptive tactics | | TikTok In-Feed | Video | No text overlay limit | 80-100 chars caption | Hook in first 2-3 seconds | | TikTok Spark | Native | Varies | 100 chars | Must use creator content | ### Platform-Specific Rejection Triggers **Google Ads:** - ALL CAPS (except acronyms like SaaS, API) - Excessive punctuation (!!!, ???, ....) - Misleading claims ("guaranteed #1 ranking") - Trademarked competitor names in headlines - Gimmicky formatting (s.p.a.c.e.d letters) **Meta Ads:** - Image text exceeding 20% of image area - Before/after body transformation images - Personal attributes assumptions ("Are you overweight?") - Fake UI elements (play buttons, notifications) - Sensationalized content **LinkedIn Ads:** - Clickbait headlines - Misleading claims about job opportunities - Profanity or inappropriate language - Targeting by sensitive categories --- ## Creative Frameworks by Funnel Stage ### Awareness Stage: Lead with the Problem The audience does not know you. Meet them where they are. **Framework: Problem > Amplify > Hint** ``` Hook: [State the problem in their language] Amplify: [Show the cost of inaction] Hint: [Tease that a solution exists — don't pitch yet] ``` **What works at awareness:** - Curiosity hooks that create an open loop - Statistic-led hooks with surprising data - "You know that feeling when..." relatable hooks - Questions that make them stop scrolling **What fails at awareness:** - Product pitches to cold audiences - Feature lists nobody asked for - Brand-centric messaging ("We're the leading...") ### Consideration Stage: Lead with the Solution They know the problem. They are evaluating options. **Framework: Solution > Mechanism > Proof** ``` Hook: [Name the outcome they want] Mechanism: [Explain how you deliver it differently] Proof: [Show evidence it works] ``` **What works at consideration:** - Benefit-first headlines with specificity - Comparison frames ("Unlike X, we do Y") - How-it-works explanations in 3 steps - Case study references with real numbers ### Decision Stage: Lead with Proof They are close. Remove the last objection. **Framework: Proof > Risk Removal > Action** ``` Hook: [Testimonial, case study, or result with numbers] Risk Removal: [Free trial, money-back, no credit card] Action: [Specific, clear CTA] ``` **What works at decision:** - Social proof headlines with specific metrics - Guarantee-first positioning - Before/after transformation stories - Urgency only if real (limited slots, deadline-based pricing) --- ## Headline Formula Library ### Benefit-First Formulas ``` [Verb] [specific outcome] [timeframe or qualifier] ``` Examples: - "Cut your churn rate by 30% without chasing customers" - "Ship features your team actually uses" - "Hire senior engineers in 2 weeks, not 4 months" - "Reduce support tickets by 60% this quarter" ### Curiosity Formulas ``` [Surprising claim or counterintuitive angle] ``` Examples: - "The email sequence that gets replies when your first one fails" - "Why your best customers leave at 90 days" - "What your analytics dashboard is hiding from you" ### Social Proof Formulas ``` [Number] [people/companies] [outcome] ``` Examples: - "1,200 SaaS teams use this to reduce support tickets" - "Trusted by 40,000 developers across 80 countries" - "How Stripe doubled activation in 6 weeks" ### Problem Agitation Formulas ``` [Describe the pain vividly in their language] ``` Examples: - "Still losing 40% of signups before they see value?" - "Your ads are running, your budget is spending, and you can't tell what's working" - "Another month of manually updating spreadsheets?" ### Urgency Formulas (Use Only with Genuine Scarcity) ``` [Real constraint + specific deadline or quantity] ``` Examples: - "Q1 pricing ends March 31 — new rates from April 1" - "Only 3 onboarding slots open this month" Anti-pattern to avoid: - "LIMITED TIME DEAL!! ACT NOW!!!" — gets rejected and destroys trust --- ## Iteration Methodology ### Step 1: Diagnose the Winner For every winning ad, document: | Dimension | Answer | |-----------|--------| | Hook type | Problem / Benefit / Curiosity / Social Proof | | Funnel stage served | Awareness / Consideration / Decision | | Emotional driver | Fear / Ambition / FOMO / Frustration / Relief | | CTA friction level | Low (learn more) / Medium (free trial) / High (book demo) | | Specificity level | Vague claims / Specific numbers / Case study reference | ### Step 2: Generate On-Theme Variations Preserve the winning pattern, vary one element at a time: - Same hook type, different product angle - Same emotional driver, different customer scenario - Same structure, different proof point ### Step 3: Test New Territory For every 3-5 on-theme variations, include 2-3 exploration ads: - Different hook type than the winner - Different emotional driver - Different audience segment language ### Step 4: Measure and Learn After 7-14 days with statistical significance: - Promote winners to main rotation - Pause underperformers - Document what worked for the creative playbook - Feed learnings into next iteration cycle --- ## A/B Testing Framework ### Testing Hierarchy (Highest to Lowest Impact) 1. **Creative concept/angle** — The biggest lever. Test different value propositions 2. **Hook/headline** — First impression. Test different opening patterns 3. **Visual style** — Image vs. video, lifestyle vs. product, dark vs. light 4. **Body copy** — Supporting argument. Test different proof points 5. **CTA** — Action text. Test different friction levels ### Testing Rules - Test one variable at a time per ad set - Minimum 1,000 impressions per variant before drawing conclusions - Run tests for 7-14 days minimum - Use platform-native A/B tools when available - Document every test hypothesis, variant, and result - Calculate statistical significance before declaring winners (95% confidence) ### Test Documentation Template ```markdown ## A/B Test: [Name] - Hypothesis: [If we change X, then Y will improve because Z] - Variable: [Headline / Body / CTA / Visual] - Control: [Current version] - Variant: [New version] - Metric: [CTR / CVR / CPA / ROAS] - Duration: [Start date - End date] - Sample size: [Impressions per variant] - Result: [Winner + confidence level] - Learning: [What we learned for future creative] ``` --- ## Quality Validation ### Pre-Submission Checklist **Platform Compliance:** - [ ] All character counts within platform limits - [ ] No ALL CAPS except standard acronyms - [ ] No excessive punctuation (!!! or ??? or ....) - [ ] No trademarked competitor names in restricted positions - [ ] No platform name references in copy ("Facebook," "Google") - [ ] No fake UI elements in images - [ ] Image text ratio under 20% for Meta **Copy Quality:** - [ ] Headline makes sense standalone without description - [ ] Specific claims over vague claims ("save 3 hours" not "save time") - [ ] CTA matches the landing page offer exactly - [ ] No unsubstantiated superlatives (#1, best-in-class, industry-leading) - [ ] No claims that require disclaimers you have not included **Strategic Alignment:** - [ ] Copy matches the target funnel stage - [ ] Language matches how the audience describes this problem - [ ] Hook type varies across the ad set (not all the same formula) - [ ] Landing page message matches ad promise **Common Rejection Reasons to Pre-Check:** - Misleading destination (ad says X, landing page says Y) - Unsubstantiated claims about results or performance - Trademark violations in headline text - Policy-violating content categories (alcohol, healthcare claims, financial guarantees) --- ## Best Practices 1. **Write 3x more headlines than you need** — Generate 15-20, select the best 8-10. Creative quality increases with volume. 2. **Pin headlines strategically** — In Google RSA, pin only your strongest headline to Position 1. Let the algorithm optimize the rest. 3. **Never reuse landing page copy verbatim** — Ad copy and landing page should feel connected but not identical. The ad earns the click; the page earns the conversion. 4. **Refresh creative every 2-4 weeks** — Ad fatigue degrades performance. Track frequency metrics and replace creative before CTR declines. 5. **Localize, do not just translate** — Different markets require different cultural references, humor styles, and proof points. 6. **Match CTA friction to funnel stage** — Awareness: "Learn more." Consideration: "See how it works." Decision: "Start free trial." 7. **Use dynamic keyword insertion carefully** — It improves relevance but can produce awkward headlines. Always preview all combinations. 8. **Test video vs. static on Meta and TikTok** — Video consistently outperforms static for awareness, but static can win for retargeting. 9. **Lead with mobile** — 80%+ of social ad impressions are mobile. Design for small screens first. 10. **Keep proof points current** — "Trusted by 500 companies" should update as you grow. Stale numbers erode credibility. --- ## Integration Points - **Paid Ads** — Use for campaign strategy, audience targeting, and budget optimization. Ad Creative handles the copy; Paid Ads handles the campaign. - **Copywriting** — Use for landing page and long-form web copy. Ad creative follows different constraints (character limits, platform compliance). - **Campaign Analytics** — Use to measure ad performance and feed learnings back into the iteration cycle. - **Marketing Psychology** — Use psychological principles (anchoring, social proof, loss aversion) to strengthen ad messaging. - **Brand Guidelines** — Reference brand voice and visual standards to maintain consistency across ad creative. --- ## Troubleshooting | Symptom | Likely Cause | Fix | |---------|-------------|-----| | Ad rejected by platform | Policy violation (caps, claims, trademarked terms) | Run `headline_generator.py` to generate compliant variants. Check rejection triggers. | | All headlines same style | No formula diversity | Generate across 5 formula types: benefit, curiosity, social proof, problem, urgency. | | CTR declining across ad set | Creative fatigue | Run `creative_fatigue_detector.py`. Refresh every 2-4 weeks. | | High CTR but low conversions | Ad-to-landing-page mismatch | Ensure headline promise matches landing page. Message match is the #1 conversion factor. | | Can't fill all Google RSA slots | Not enough headline variations | Use `headline_generator.py` to produce 15+ variations from value proposition. | | Video underperforming on Meta | Hook not in first 2-3 seconds | 80%+ of social impressions are mobile. Hook must appear in first 2 seconds. | | Same CPA across all creative | Not testing enough angles | Build a creative testing matrix with 5 hook types x platforms. Use `creative_matrix_builder.py`. | --- ## Success Criteria - 3+ creative variants per ad group/set (minimum for testing) - All copy within platform character limits with zero rejections - Headline formula mix: benefit, curiosity, social proof, problem, urgency - Creative refreshed every 2-4 weeks before fatigue signals appear - A/B test documentation for every test: hypothesis, variants, result, learning - Winning patterns documented in creative playbook for institutional knowledge - CTR above platform benchmarks with declining CPA trend --- ## Scope & Limitations **In Scope:** Ad headline/body copy generation, platform-specific formatting, A/B testing frameworks, creative iteration methodology, compliance validation, cross-platform adaptation. **Out of Scope:** Visual design/production, video editing, campaign management (use paid-ads), landing page copy (use copywriting), media buying. --- ## Python Automation Tools ### 1. Headline Generator (`scripts/headline_generator.py`) Generates ad headline variations from a value proposition using proven formula patterns, scored for platform compliance. ```bash python scripts/headline_generator.py --value-prop "Reduce churn by 30%" --platform google --audience "SaaS teams" python scripts/headline_generator.py --value-prop "Reduce churn by 30%" --json ``` ### 2. Creative Fatigue Detector (`scripts/creative_fatigue_detector.py`) Analyzes ad performance trends (CTR, CPA, frequency) to detect creative fatigue and recommend refresh timing. ```bash python scripts/creative_fatigue_detector.py campaign_data.json python scripts/creative_fatigue_detector.py --sample --json ``` ### 3. Creative Matrix Builder (`scripts/creative_matrix_builder.py`) Generates a cross-platform creative testing matrix from a brief, organized by hook type and funnel stage. ```bash python scripts/creative_matrix_builder.py brief.json python scripts/creative_matrix_builder.py --sample --json ```