ads-creative · diff
git:20260220.af6c644 to git:20260223.63345e4
196 added, 31 removed. Audit A to A.
---
name: ads-creative
- description: Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative fatigue, evaluates platform-native compliance, and provides production priorities. Use when user says "creative audit", "ad creative", "creative fatigue", "ad copy", "ad design", or "creative review".
+ description: >
+ Cross-platform creative quality audit covering ad copy, video, image, and
+ format diversity across all platforms. Detects creative fatigue, evaluates
+ platform-native compliance, and provides production priorities. Collects brand
+ context and creates branding.md if missing. Uses infographic-v2 for generating
+ ad creatives. Use when user says "creative audit", "ad creative", "creative
+ fatigue", "ad copy", "ad design", or "creative review".
---
# Cross-Platform Creative Quality Audit
## Process
- 1. Collect creative assets or performance data from active platforms
- 2. Read `references/platform-specs.md` for creative specifications
- 3. Read `references/benchmarks.md` for CTR/engagement benchmarks
- 4. Read `references/scoring-system.md` for weighted scoring algorithm
- 5. Evaluate creative quality per platform
- 6. Assess cross-platform creative consistency
- 7. Generate production priority recommendations
+ 1. **Brand context check** — look for `./branding.md`. If not found, run the Brand Info Collection flow below before proceeding.
+ 2. Collect creative assets or performance data from active platforms
+ 3. Read `ads/references/platform-specs.md` for creative specifications
+ 4. Read `ads/references/creative-volume.md` for per-platform volume and refresh requirements
+ 5. Read `ads/references/benchmarks.md` for CTR/engagement benchmarks
+ 6. Read `ads/references/scoring-system.md` for weighted scoring algorithm
+ 7. Evaluate creative quality per platform
+ 8. Run Brand Consistency Audit using branding.md (advisory, not scored)
+ 9. Assess cross-platform creative consistency
+ 10. Generate production priority recommendations
+ 11. **Offer to generate new creatives** using `/infographic-v2` for any flagged gaps
+ ---
+
+ ## Brand Info Collection
+
+ Run this at the start if `./branding.md` does not exist in the project root.
+
+ **Goal:** Collect enough brand context to personalize the creative audit and enable on-brand creative generation via infographic-v2.
+
+ ### Step 1: Ask naturally
+
+ > "Before I audit your creatives, I need some brand context to check consistency. Let me ask a few quick questions."
+
+ ### Step 2: Collect in one conversational pass
+
+ Ask these in a natural flow — batch where possible, don't make it feel like a form:
+
+ 1. **Brand name** and **website URL**
+ 2. **Industry / business model** (SaaS, e-commerce, service, B2B, B2C, hybrid)
+ 3. **Brand colors** — primary, secondary, accent (hex codes if known; offer to extract from their website via WebFetch if unsure)
+ 4. **Typography** — headline and body fonts (or "check my website")
+ 5. **Brand voice** — formal vs casual (1-10), serious vs playful, technical vs simple
+ 6. **Target audience** — who they sell to, main pain points
+ 7. **Value proposition** — one sentence on what makes them different
+ 8. **Approved CTAs** — e.g., "Start Free Trial", "Book a Demo", "Shop Now"
+ 9. **Anything forbidden** in their ads — competitor mentions, specific claims, imagery restrictions
+
+ If the user provides a website URL, use WebFetch to pre-fill colors, fonts, tagline, and value proposition from the site before asking remaining questions.
+
+ ### Step 3: Generate branding.md
+
+ Write `./branding.md` in the project root using this format:
+
+ ```markdown
+ # Brand Context — [Brand Name]
+
+ <!-- Generated by /ads-creative on [DATE] -->
+
+ ## Brand Identity
+
+ | Field | Value |
+ |-------|-------|
+ | Brand Name | |
+ | Industry | |
+ | Website | |
+ | Tagline / Slogan | |
+ | Business Model | |
+
+ ## Visual Identity
+
+ ### Brand Colors
+ | Role | Color | Hex | Usage |
+ |------|-------|-----|-------|
+ | Primary | | #______ | Main brand color, CTAs, headers |
+ | Secondary | | #______ | Accents, supporting elements |
+ | Accent | | #______ | Highlights, badges, alerts |
+
+ ### Typography
+ | Role | Font | Fallback |
+ |------|------|----------|
+ | Headlines | | Sans-serif |
+ | Body | | Sans-serif |
+
+ ### Visual Style
+ - **Photography style**: [lifestyle / studio / user-generated / illustrated / mixed]
+ - **Illustration style**: [flat / 3D / hand-drawn / none]
+
+ ## Brand Voice
+
+ ### Tone & Personality
+ | Dimension | Position (1-10) |
+ |-----------|----------------|
+ | Formal ←→ Casual | |
+ | Serious ←→ Playful | |
+ | Technical ←→ Simple | |
+
+ ### Messaging Guidelines
+ - **Brand words**: [words to always use]
+ - **Forbidden words**: [words to never use]
+
+ ## Target Audience
+
+ ### Primary Persona
+ | Field | Value |
+ |-------|-------|
+ | Role / Title | |
+ | Key Pain Points | |
+ | Goals | |
+ | Where they spend time | |
+
+ ## Value Proposition
+
+ ### Core USP
+ [One sentence]
+
+ ### Key Benefits
+ | Benefit | Proof Point |
+ |---------|------------|
+ | | |
+ | | |
+ | | |
+
+ ## Ad-Specific Guidelines
+
+ ### Approved CTAs
+ - Primary: [e.g., "Start Free Trial"]
+ - Secondary: [e.g., "Learn More"]
+
+ ### Forbidden Elements
+ - [e.g., "Never mention competitors by name"]
+ ```
+
+ ### Step 4: Confirm and continue
+
+ Display a brief summary:
+
+ ```
+ Brand context saved: ./branding.md
+
+ Brand: [name]
+ Colors: [primary] [secondary] [accent]
+ Voice: [tone summary]
+ Audience: [persona summary]
+
+ Proceeding with creative audit...
+ ```
+
+ Then continue with the normal creative audit flow (step 2 onward).
+
+ ---
+
## Per-Platform Assessment
### Google Ads Creative
- RSA: ≥8 unique headlines, ≥3 descriptions per ad group
- RSA ad strength: "Good" or "Excellent"
- Pin usage: minimal and strategic (over-pinning kills RSA flexibility)
- Extensions: sitelinks (≥4), callouts (≥4), structured snippets, image
- PMax asset groups: text + image + video + optional product feed
- YouTube: video quality, hook, subtitles (see ads-youtube sub-skill)
### Meta Ads Creative
- Format diversity: ≥3 formats active (image, video, carousel, collection)
- - Creative volume: ≥5 creatives per ad set
- - Fatigue detection: CTR declining >20% over 14 days = FAIL
+ - Creative volume: Standard ≥5 per ad set (ideal 5-8 for Andromeda); ASC ≥50 (ideal 50-150)
+ - Fatigue detection: CTR declining >20% over 14 days = FAIL; top brands refresh every 10.4 days
- Video length: 15s max Stories/Reels, 30s max Feed
- UGC/testimonial content tested
- Advantage+ Creative enhancements enabled
- Headline under 40 chars, primary text under 125 chars
### LinkedIn Creative
- Thought Leader Ads active, ≥30% budget for B2B
- Format diversity: ≥2 formats tested (single image, carousel, video, document)
- Video ads tested
- Creative refresh: every 4-6 weeks
- Professional tone appropriate for platform
### TikTok Creative
- - ≥6 creatives per ad group (Critical requirement)
+ - ≥6 creatives per ad group (Critical; top performers: 10-20/campaign; Smart+ launch: ≥4)
- All video 9:16 vertical 1080x1920 (non-negotiable)
- Native-looking content (not corporate)
- Hook in first 1-2 seconds
- - No creative active >7 days with declining CTR
+ - Fatigue onset: 3-5 days; typical lifespan: 7-10 days; refresh every 10-14 days
+ - No creative active >7 days with declining CTR; hard ceiling: 30 days regardless
- Spark Ads tested (~3% CTR vs ~2% standard)
- Sound-on optimization (never silent)
- Safe zone compliance: X:40-940, Y:150-1470
- Trending audio used
### Microsoft Creative
- RSA: ≥8 headlines, ≥3 descriptions
- Multimedia Ads tested (unique rich format)
- Ad copy optimized for Bing demographics (older, higher income, professional)
- Action Extension utilized (unique to Microsoft)
- Filter Link Extension tested
## Creative Fatigue Detection
### Signals of Fatigue
| Signal | Threshold | Action |
|--------|-----------|--------|
| CTR declining | >20% over 14 days | Refresh creative |
| Frequency (Meta) | >5.0 prospecting, >12.0 retargeting | New audience or creative |
| Watch time declining (TikTok) | <3s average | New hook needed |
| QS declining (Google) | Drop of 2+ points | Refresh ad copy |
| Engagement rate drop | >30% decline | Full creative overhaul |
### Refresh Cadence by Platform
| Platform | Recommended Refresh |
|----------|-------------------|
| Google Search | Every 8-12 weeks |
- | Meta | Every 2-4 weeks |
- | LinkedIn | Every 4-6 weeks |
- | TikTok | Every 5-7 days (fastest fatigue) |
+ | Meta | Every 10-14 days (top brands avg 10.4 days); hard ceiling 90 days |
+ | LinkedIn | Every 2-4 weeks; 80/20 winner/testing split |
+ | TikTok | Every 10-14 days (fatigue onset 3-5 days, lifespan 7-10 days); hard ceiling 30 days |
| Microsoft | Every 8-12 weeks |
| YouTube | Every 4-8 weeks |
## Format Diversity Matrix
Evaluate which formats are active per platform:
| Format | Google | Meta | LinkedIn | TikTok | Microsoft |
|--------|--------|------|----------|--------|-----------|
- | Static Image | RSA image ext | Yes | Yes | No | Multimedia |
- | Video | YouTube, PMax | Yes | Yes | Yes (required) | No |
- | Carousel | No | Yes | Yes | No | No |
- | Collection | No | Yes | No | No | No |
- | Document | No | No | Yes | No | No |
- | Shopping | PMax, Shopping | Catalog | No | Shop | Shopping |
+ | Static Image | RSA image ext | ✅ | ✅ | ❌ | Multimedia |
+ | Video | YouTube, PMax | ✅ | ✅ | ✅ (required) | ❌ |
+ | Carousel | ❌ | ✅ | ✅ | ❌ | ❌ |
+ | Collection | ❌ | ✅ | ❌ | ❌ | ❌ |
+ | Document | ❌ | ❌ | ✅ | ❌ | ❌ |
+ | Shopping | PMax, Shopping | Catalog | ❌ | Shop | Shopping |
## Universal Creative Best Practices
### Cross-Platform Safe Zone
- 900x1000px usable area works across all vertical placements
- Keep critical elements centered and within safe margins
- Test on mobile devices (75%+ of ad impressions are mobile)
### Ad Copy Principles
- Lead with benefit, not feature
- Include clear CTA (what should they do next?)
- Match ad message to landing page (message match)
- Use numbers and specifics over vague claims
- Test emotional vs rational appeals
### Video Production Standards
- H.264 codec, AAC audio, MP4 container
- Minimum 720p (1080p preferred)
- Subtitles/captions always (accessibility + sound-off viewing)
- Brand mention within first 5s (awareness) or at CTA (performance)
+ ## Brand Consistency Audit (Advisory)
+
+ Using `./branding.md`, evaluate these dimensions. Results are **advisory only** — they
+ appear as "Brand Consistency Notes" in the report but are NOT included in the health score.
+
+ | Dimension | What to Check |
+ |-----------|--------------|
+ | Color compliance | Ad visuals use brand primary/secondary colors (hex match) |
+ | Typography | Headlines and body text match brand font guidelines |
+ | Tone alignment | Ad copy matches brand voice dimensions (formal/casual, etc.) |
+ | CTA consistency | CTAs match approved CTA list from branding.md |
+ | Visual style | Photography/illustration style matches brand guidelines |
+ | Forbidden elements | No forbidden words or elements present in ads |
+ | Audience match | Messaging addresses documented persona pain points |
+
+ ## Creative Generation with Infographic v2
+
+ After the audit, when the production priority list identifies creatives to produce (static images, infographics, data visuals for ads), offer to generate them using `/infographic-v2`.
+
+ **Flow:**
+ 1. Identify the highest-priority static creative gaps from the audit
+ 2. Ask: "I can generate ad creatives for the top gaps using the infographic tool. Want me to start with [highest priority gap]?"
+ 3. If yes, invoke `/infographic-v2` — it will pick up `./branding.md` for brand-consistent output
+ 4. The infographic skill handles concept selection, visualization approach, and generation
+ 5. After generation, return to the next creative gap or wrap up
+
+ **What infographic-v2 uses from branding.md:**
+ - Brand colors → color palette for the infographic
+ - Typography → font selection
+ - Visual style → style anchors
+ - Brand voice → headline and copy tone
+ - Approved CTAs → CTA text in ad creatives
+
## Output
### Creative Quality Report
```
Cross-Platform Creative Health
Google: ████████░░ X/X checks passing
Meta: ██████████ X/X checks passing
LinkedIn: ███████░░░ X/X checks passing
TikTok: █████░░░░░ X/X checks passing
Microsoft: ████████░░ X/X checks passing
```
### Deliverables
- `CREATIVE-AUDIT-REPORT.md` — Per-platform creative assessment
- Fatigue alerts (any creative past refresh cadence)
- Format diversity gaps per platform
- Production priority list (most impactful creative to produce next)
- Quick Wins (format conversions, CTA changes, Spark Ads setup)
-
- ### PDF Report
-
- After writing all markdown deliverables, generate a styled PDF version:
-
- ```bash
- npx --yes md-to-pdf CREATIVE-AUDIT-REPORT.md
- ```
-
- Always produce both formats — markdown for editing, PDF for sharing with stakeholders.
+ - **Generated ad creatives** via infographic-v2 (if user opts in)