Cross-Platform Creative Quality Audit skill
Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms.
by naveedharri·MIT license·GitHub ↗
★ 65 Stars on the repo·Checked
npx degit naveedharri/benai-skills/plugins/ads/skills/ads-creative#develop ~/.claude/skills/ads-creative-2Files of Cross-Platform Creative Quality Audit
Files 1 file
Show the full text342 lines
Cross-Platform Creative Quality Audit
Process
- Brand context check — look for
./branding.md. If not found, run the Brand Info Collection flow below before proceeding. - Collect creative assets or performance data from active platforms
- Read
ads/references/platform-specs.mdfor creative specifications - Read
ads/references/creative-volume.mdfor per-platform volume and refresh requirements - Read
ads/references/benchmarks.mdfor CTR/engagement benchmarks - Read
ads/references/scoring-system.mdfor weighted scoring algorithm - Evaluate creative quality per platform
- Run Brand Consistency Audit using branding.md (advisory, not scored)
- Assess cross-platform creative consistency
- Generate production priority recommendations
- Offer to generate new creatives using
/infographic-v2for any flagged gaps
Brand Info Collection
Run this at the start if ./branding.md does not exist in the project root.
Goal: Extract the brand's actual styling, copy, and identity — primarily from their website — to personalize the creative audit and enable on-brand creative generation via infographic-v2.
Step 1: Ask for brand name and website
"Before I audit your creatives, I need your brand context to check consistency. What's your brand name and website URL?"
Ask for the brand name and website URL first. If the user provides a URL, immediately run the website extraction (step 2) before asking any further questions.
Step 2: Website extraction (when URL provided)
Do not guess or assume anything. Extract the actual values from the live website.
2a — Fetch the homepage
Use WebFetch on the homepage URL. Extract ALL of the following:
Visual identity:
- All colors used prominently: backgrounds, buttons, headers, links, text, borders, footer. Report exact hex values. Identify which is primary (most prominent brand color, usually on CTAs and headers), secondary, accent, background, and text color.
- Font families: read the actual
font-familydeclarations used on headings and body text. Look in CSS,<link>tags for Google Fonts / Typekit / custom font URLs, and inline styles. Report the exact font names (e.g., "Plus Jakarta Sans", "DM Sans", "Geist"), not generic fallbacks like "sans-serif". - Logo: describe the logo from the header/nav. Note if it's text-based, icon-based, or both.
- Visual style: describe what you observe — minimal with whitespace? Bold with saturated colors? Dark mode? Gradient-heavy? Illustration-driven? Corporate?
- Button styles: rounded, square, pill-shaped? What color? What text color on buttons?
- Spacing and density: tight and information-dense, or airy and spacious?
Copy and messaging:
- Tagline / slogan from the hero section
- Hero headline: the main H1 or hero text
- Value proposition: what they do and why it matters
- Key benefits: any benefit sections, feature highlights, selling points
- Social proof: testimonials, customer logos, metrics, awards, trust badges, star ratings
- CTAs: every call-to-action button text on the page
- Navigation items: main nav labels reveal product/service categories
Brand voice signals:
- Tone of the copy: formal or casual? Technical or plain? Playful or serious?
- Person: first person ("We help...") or second person ("You can...")?
- Specific words/phrases: any repeated brand language, trademarked terms
2b — Fetch additional pages (if needed)
If the homepage left gaps, also fetch:
/aboutor/about-us— company story, mission, team, more voice signals/pricing— pricing model (free trial, freemium, tiers, contact-us)
Only fetch if there are genuine gaps. Don't fetch for the sake of it.
2c — Present extraction to user
Show everything extracted clearly:
Here's what I found on [website]:
Brand: [name]
Tagline: "[extracted tagline]"
Industry: [detected industry]
Business model: [detected model]
Colors:
Primary: [name] #[hex] — used on [CTAs, headers, etc.]
Secondary: [name] #[hex] — used on [subheadings, etc.]
Accent: [name] #[hex] — used on [highlights, badges, etc.]
Background: #[hex]
Text: #[hex]
Fonts:
Headings: [exact font name]
Body: [exact font name]
Visual style: [description of what you observed]
Button style: [pill/rounded/square], [color], [hover behavior if visible]
Voice: [formal/casual], [serious/playful], [technical/simple]
Hero: "[exact hero headline]"
Value prop: "[extracted value proposition]"
CTAs found: "[CTA 1]", "[CTA 2]", "[CTA 3]"
Social proof: [what's shown — logos, metrics, testimonials]
Does this look right? Anything to correct or add?
The user confirms or corrects. Only after confirmation, proceed with remaining questions.
Step 3: Fill gaps with questions
After website extraction, only ask about things that could not be determined from the website. Skip any section where the website gave a clear answer.
Likely still needed (websites rarely cover these):
- Target audience: who they sell to (job title/role, age), pain points, buying triggers, where they spend time online
- Ad-specific guidelines: confirm extracted CTAs, pricing in ads?, required elements (trust badges, ratings), anything forbidden
- Brand voice refinement (only if ambiguous from the site): words they always/never use
Do NOT re-ask about colors, fonts, tagline, visual style, or value proposition if the website extraction already captured them.
Step 4: No-URL fallback
If the user does not provide a website URL, collect everything manually:
- Brand colors — primary, secondary, accent (hex codes)
- Typography — headline and body fonts
- Visual style — clean/minimal, bold/colorful, professional, playful, premium
- Tagline / value proposition
- Brand voice — formal vs casual (1-10), serious vs playful, technical vs simple
- Target audience — who they sell to, main pain points
- Approved CTAs
- Anything forbidden in ads
Step 5: Save branding.md
Write ./branding.md in the project root using the canonical format from
ads/references/brand-context.md.
Every value in branding.md must come from the website extraction or the user's direct answers. Never fill in defaults or placeholders. If a field has no data, leave it blank or omit the section.
Validate before writing:
- Brand name is not empty
- At least one color with hex value exists
- At least one audience description exists
- Business model is identified
Step 6: Confirm and continue
Brand context saved: ./branding.md
Brand: [name]
Colors: [primary hex] [secondary hex] [accent hex]
Fonts: [heading font] / [body font]
Voice: [tone summary]
Audience: [persona summary]
Proceeding with creative audit...
Then continue with the normal creative audit flow (step 2 onward in the Process section).
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: 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; 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
- 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 10-14 days (top brands avg 10.4 days); hard ceiling 90 days |
| 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 | Meta | TikTok | Microsoft | ||
|---|---|---|---|---|---|
| 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:
- Identify the highest-priority static creative gaps from the audit
- Ask: "I can generate ad creatives for the top gaps using the infographic tool. Want me to start with [highest priority gap]?"
- If yes, invoke
/infographic-v2— it will pick up./branding.mdfor brand-consistent output - The infographic skill handles concept selection, visualization approach, and generation
- 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)
- Generated ad creatives via infographic-v2 (if user opts in)
| 1 | |
| 2 | name ads-creative |
| 3 | description > |
| 4 | Cross-platform creative quality audit covering ad copy, video, image, and |
| 5 | format diversity across all platforms. Detects creative fatigue, evaluates |
| 6 | platform-native compliance, and provides production priorities. Collects brand |
| 7 | context and creates branding.md if missing. Uses infographic-v2 for generating |
| 8 | ad creatives. Use when user says "creative audit", "ad creative", "creative |
| 9 | fatigue", "ad copy", "ad design", or "creative review". |
| 10 | disable-model-invocation true |
| 11 | |
| 12 | |
| 13 | # Cross-Platform Creative Quality Audit |
| 14 | |
| 15 | ## Process |
| 16 | |
| 17 | **Brand context check** — look for `./branding.md`. If not found, run the Brand Info Collection flow below before proceeding. |
| 18 | Collect creative assets or performance data from active platforms |
| 19 | Read `ads/references/platform-specs.md` for creative specifications |
| 20 | Read `ads/references/creative-volume.md` for per-platform volume and refresh requirements |
| 21 | Read `ads/references/benchmarks.md` for CTR/engagement benchmarks |
| 22 | Read `ads/references/scoring-system.md` for weighted scoring algorithm |
| 23 | Evaluate creative quality per platform |
| 24 | Run Brand Consistency Audit using branding.md (advisory, not scored) |
| 25 | Assess cross-platform creative consistency |
| 26 | Generate production priority recommendations |
| 27 | **Offer to generate new creatives** using `/infographic-v2` for any flagged gaps |
| 28 | |
| 29 | |
| 30 | |
| 31 | ## Brand Info Collection |
| 32 | |
| 33 | Run this at the start if `./branding.md` does not exist in the project root. |
| 34 | |
| 35 | **Goal:** Extract the brand's actual styling, copy, and identity — primarily from their |
| 36 | website — to personalize the creative audit and enable on-brand creative generation via |
| 37 | infographic-v2. |
| 38 | |
| 39 | ### Step 1: Ask for brand name and website |
| 40 | |
| 41 | > "Before I audit your creatives, I need your brand context to check consistency. What's your brand name and website URL?" |
| 42 | |
| 43 | Ask for the brand name and website URL first. If the user provides a URL, immediately |
| 44 | run the website extraction (step 2) before asking any further questions. |
| 45 | |
| 46 | ### Step 2: Website extraction (when URL provided) |
| 47 | |
| 48 | **Do not guess or assume anything.** Extract the actual values from the live website. |
| 49 | |
| 50 | #### 2a — Fetch the homepage |
| 51 | |
| 52 | Use WebFetch on the homepage URL. Extract ALL of the following: |
| 53 | |
| 54 | **Visual identity:** |
| 55 | All colors used prominently: backgrounds, buttons, headers, links, text, borders, |
| 56 | footer. Report exact hex values. Identify which is primary (most prominent brand color, |
| 57 | usually on CTAs and headers), secondary, accent, background, and text color. |
| 58 | Font families: read the actual `font-family` declarations used on headings and body text. |
| 59 | Look in CSS, `<link>` tags for Google Fonts / Typekit / custom font URLs, and inline styles. |
| 60 | Report the exact font names (e.g., "Plus Jakarta Sans", "DM Sans", "Geist"), not generic |
| 61 | fallbacks like "sans-serif". |
| 62 | Logo: describe the logo from the header/nav. Note if it's text-based, icon-based, or both. |
| 63 | Visual style: describe what you observe — minimal with whitespace? Bold with saturated |
| 64 | colors? Dark mode? Gradient-heavy? Illustration-driven? Corporate? |
| 65 | Button styles: rounded, square, pill-shaped? What color? What text color on buttons? |
| 66 | Spacing and density: tight and information-dense, or airy and spacious? |
| 67 | |
| 68 | **Copy and messaging:** |
| 69 | Tagline / slogan from the hero section |
| 70 | Hero headline: the main H1 or hero text |
| 71 | Value proposition: what they do and why it matters |
| 72 | Key benefits: any benefit sections, feature highlights, selling points |
| 73 | Social proof: testimonials, customer logos, metrics, awards, trust badges, star ratings |
| 74 | CTAs: every call-to-action button text on the page |
| 75 | Navigation items: main nav labels reveal product/service categories |
| 76 | |
| 77 | **Brand voice signals:** |
| 78 | Tone of the copy: formal or casual? Technical or plain? Playful or serious? |
| 79 | Person: first person ("We help...") or second person ("You can...")? |
| 80 | Specific words/phrases: any repeated brand language, trademarked terms |
| 81 | |
| 82 | #### 2b — Fetch additional pages (if needed) |
| 83 | |
| 84 | If the homepage left gaps, also fetch: |
| 85 | `/about` or `/about-us` — company story, mission, team, more voice signals |
| 86 | `/pricing` — pricing model (free trial, freemium, tiers, contact-us) |
| 87 | |
| 88 | Only fetch if there are genuine gaps. Don't fetch for the sake of it. |
| 89 | |
| 90 | #### 2c — Present extraction to user |
| 91 | |
| 92 | Show everything extracted clearly: |
| 93 | |
| 94 | |
| 95 | Here's what I found on [website]: |
| 96 | |
| 97 | Brand: [name] |
| 98 | Tagline: "[extracted tagline]" |
| 99 | Industry: [detected industry] |
| 100 | Business model: [detected model] |
| 101 | |
| 102 | Colors: |
| 103 | Primary: [name] #[hex] — used on [CTAs, headers, etc.] |
| 104 | Secondary: [name] #[hex] — used on [subheadings, etc.] |
| 105 | Accent: [name] #[hex] — used on [highlights, badges, etc.] |
| 106 | Background: #[hex] |
| 107 | Text: #[hex] |
| 108 | |
| 109 | Fonts: |
| 110 | Headings: [exact font name] |
| 111 | Body: [exact font name] |
| 112 | |
| 113 | Visual style: [description of what you observed] |
| 114 | Button style: [pill/rounded/square], [color], [hover behavior if visible] |
| 115 | |
| 116 | Voice: [formal/casual], [serious/playful], [technical/simple] |
| 117 | Hero: "[exact hero headline]" |
| 118 | Value prop: "[extracted value proposition]" |
| 119 | CTAs found: "[CTA 1]", "[CTA 2]", "[CTA 3]" |
| 120 | Social proof: [what's shown — logos, metrics, testimonials] |
| 121 | |
| 122 | Does this look right? Anything to correct or add? |
| 123 | |
| 124 | |
| 125 | The user confirms or corrects. Only after confirmation, proceed with remaining questions. |
| 126 | |
| 127 | ### Step 3: Fill gaps with questions |
| 128 | |
| 129 | After website extraction, only ask about things that **could not** be determined from |
| 130 | the website. Skip any section where the website gave a clear answer. |
| 131 | |
| 132 | **Likely still needed (websites rarely cover these):** |
| 133 | |
| 134 | Target audience: who they sell to (job title/role, age), pain points, buying triggers, |
| 135 | where they spend time online |
| 136 | Ad-specific guidelines: confirm extracted CTAs, pricing in ads?, required elements |
| 137 | (trust badges, ratings), anything forbidden |
| 138 | Brand voice refinement (only if ambiguous from the site): words they always/never use |
| 139 | |
| 140 | **Do NOT re-ask about colors, fonts, tagline, visual style, or value proposition if the |
| 141 | website extraction already captured them.** |
| 142 | |
| 143 | ### Step 4: No-URL fallback |
| 144 | |
| 145 | If the user does not provide a website URL, collect everything manually: |
| 146 | |
| 147 | **Brand colors** — primary, secondary, accent (hex codes) |
| 148 | **Typography** — headline and body fonts |
| 149 | **Visual style** — clean/minimal, bold/colorful, professional, playful, premium |
| 150 | **Tagline / value proposition** |
| 151 | **Brand voice** — formal vs casual (1-10), serious vs playful, technical vs simple |
| 152 | **Target audience** — who they sell to, main pain points |
| 153 | **Approved CTAs** |
| 154 | **Anything forbidden** in ads |
| 155 | |
| 156 | ### Step 5: Save branding.md |
| 157 | |
| 158 | Write `./branding.md` in the project root using the canonical format from |
| 159 | `ads/references/brand-context.md`. |
| 160 | |
| 161 | **Every value in branding.md must come from the website extraction or the user's direct |
| 162 | answers. Never fill in defaults or placeholders.** If a field has no data, leave it blank |
| 163 | or omit the section. |
| 164 | |
| 165 | Validate before writing: |
| 166 | Brand name is not empty |
| 167 | At least one color with hex value exists |
| 168 | At least one audience description exists |
| 169 | Business model is identified |
| 170 | |
| 171 | ### Step 6: Confirm and continue |
| 172 | |
| 173 | |
| 174 | Brand context saved: ./branding.md |
| 175 | |
| 176 | Brand: [name] |
| 177 | Colors: [primary hex] [secondary hex] [accent hex] |
| 178 | Fonts: [heading font] / [body font] |
| 179 | Voice: [tone summary] |
| 180 | Audience: [persona summary] |
| 181 | |
| 182 | Proceeding with creative audit... |
| 183 | |
| 184 | |
| 185 | Then continue with the normal creative audit flow (step 2 onward in the Process section). |
| 186 | |
| 187 | |
| 188 | |
| 189 | ## Per-Platform Assessment |
| 190 | |
| 191 | ### Google Ads Creative |
| 192 | RSA: ≥8 unique headlines, ≥3 descriptions per ad group |
| 193 | RSA ad strength: "Good" or "Excellent" |
| 194 | Pin usage: minimal and strategic (over-pinning kills RSA flexibility) |
| 195 | Extensions: sitelinks (≥4), callouts (≥4), structured snippets, image |
| 196 | PMax asset groups: text + image + video + optional product feed |
| 197 | YouTube: video quality, hook, subtitles (see ads-youtube sub-skill) |
| 198 | |
| 199 | ### Meta Ads Creative |
| 200 | Format diversity: ≥3 formats active (image, video, carousel, collection) |
| 201 | Creative volume: Standard ≥5 per ad set (ideal 5-8 for Andromeda); ASC ≥50 (ideal 50-150) |
| 202 | Fatigue detection: CTR declining >20% over 14 days = FAIL; top brands refresh every 10.4 days |
| 203 | Video length: 15s max Stories/Reels, 30s max Feed |
| 204 | UGC/testimonial content tested |
| 205 | Advantage+ Creative enhancements enabled |
| 206 | Headline under 40 chars, primary text under 125 chars |
| 207 | |
| 208 | ### LinkedIn Creative |
| 209 | Thought Leader Ads active, ≥30% budget for B2B |
| 210 | Format diversity: ≥2 formats tested (single image, carousel, video, document) |
| 211 | Video ads tested |
| 212 | Creative refresh: every 4-6 weeks |
| 213 | Professional tone appropriate for platform |
| 214 | |
| 215 | ### TikTok Creative |
| 216 | ≥6 creatives per ad group (Critical; top performers: 10-20/campaign; Smart+ launch: ≥4) |
| 217 | All video 9:16 vertical 1080x1920 (non-negotiable) |
| 218 | Native-looking content (not corporate) |
| 219 | Hook in first 1-2 seconds |
| 220 | Fatigue onset: 3-5 days; typical lifespan: 7-10 days; refresh every 10-14 days |
| 221 | No creative active >7 days with declining CTR; hard ceiling: 30 days regardless |
| 222 | Spark Ads tested (~3% CTR vs ~2% standard) |
| 223 | Sound-on optimization (never silent) |
| 224 | Safe zone compliance: X:40-940, Y:150-1470 |
| 225 | Trending audio used |
| 226 | |
| 227 | ### Microsoft Creative |
| 228 | RSA: ≥8 headlines, ≥3 descriptions |
| 229 | Multimedia Ads tested (unique rich format) |
| 230 | Ad copy optimized for Bing demographics (older, higher income, professional) |
| 231 | Action Extension utilized (unique to Microsoft) |
| 232 | Filter Link Extension tested |
| 233 | |
| 234 | ## Creative Fatigue Detection |
| 235 | |
| 236 | ### Signals of Fatigue |
| 237 | | Signal | Threshold | Action | |
| 238 | |--------|-----------|--------| |
| 239 | | CTR declining | >20% over 14 days | Refresh creative | |
| 240 | | Frequency (Meta) | >5.0 prospecting, >12.0 retargeting | New audience or creative | |
| 241 | | Watch time declining (TikTok) | <3s average | New hook needed | |
| 242 | | QS declining (Google) | Drop of 2+ points | Refresh ad copy | |
| 243 | | Engagement rate drop | >30% decline | Full creative overhaul | |
| 244 | |
| 245 | ### Refresh Cadence by Platform |
| 246 | | Platform | Recommended Refresh | |
| 247 | |----------|-------------------| |
| 248 | | Google Search | Every 8-12 weeks | |
| 249 | | Meta | Every 10-14 days (top brands avg 10.4 days); hard ceiling 90 days | |
| 250 | | LinkedIn | Every 2-4 weeks; 80/20 winner/testing split | |
| 251 | | TikTok | Every 10-14 days (fatigue onset 3-5 days, lifespan 7-10 days); hard ceiling 30 days | |
| 252 | | Microsoft | Every 8-12 weeks | |
| 253 | | YouTube | Every 4-8 weeks | |
| 254 | |
| 255 | ## Format Diversity Matrix |
| 256 | |
| 257 | Evaluate which formats are active per platform: |
| 258 | |
| 259 | | Format | Google | Meta | LinkedIn | TikTok | Microsoft | |
| 260 | |--------|--------|------|----------|--------|-----------| |
| 261 | | Static Image | RSA image ext | ✅ | ✅ | ❌ | Multimedia | |
| 262 | | Video | YouTube, PMax | ✅ | ✅ | ✅ (required) | ❌ | |
| 263 | | Carousel | ❌ | ✅ | ✅ | ❌ | ❌ | |
| 264 | | Collection | ❌ | ✅ | ❌ | ❌ | ❌ | |
| 265 | | Document | ❌ | ❌ | ✅ | ❌ | ❌ | |
| 266 | | Shopping | PMax, Shopping | Catalog | ❌ | Shop | Shopping | |
| 267 | |
| 268 | ## Universal Creative Best Practices |
| 269 | |
| 270 | ### Cross-Platform Safe Zone |
| 271 | 900x1000px usable area works across all vertical placements |
| 272 | Keep critical elements centered and within safe margins |
| 273 | Test on mobile devices (75%+ of ad impressions are mobile) |
| 274 | |
| 275 | ### Ad Copy Principles |
| 276 | Lead with benefit, not feature |
| 277 | Include clear CTA (what should they do next?) |
| 278 | Match ad message to landing page (message match) |
| 279 | Use numbers and specifics over vague claims |
| 280 | Test emotional vs rational appeals |
| 281 | |
| 282 | ### Video Production Standards |
| 283 | H.264 codec, AAC audio, MP4 container |
| 284 | Minimum 720p (1080p preferred) |
| 285 | Subtitles/captions always (accessibility + sound-off viewing) |
| 286 | Brand mention within first 5s (awareness) or at CTA (performance) |
| 287 | |
| 288 | ## Brand Consistency Audit (Advisory) |
| 289 | |
| 290 | Using `./branding.md`, evaluate these dimensions. Results are **advisory only** — they |
| 291 | appear as "Brand Consistency Notes" in the report but are NOT included in the health score. |
| 292 | |
| 293 | | Dimension | What to Check | |
| 294 | |-----------|--------------| |
| 295 | | Color compliance | Ad visuals use brand primary/secondary colors (hex match) | |
| 296 | | Typography | Headlines and body text match brand font guidelines | |
| 297 | | Tone alignment | Ad copy matches brand voice dimensions (formal/casual, etc.) | |
| 298 | | CTA consistency | CTAs match approved CTA list from branding.md | |
| 299 | | Visual style | Photography/illustration style matches brand guidelines | |
| 300 | | Forbidden elements | No forbidden words or elements present in ads | |
| 301 | | Audience match | Messaging addresses documented persona pain points | |
| 302 | |
| 303 | ## Creative Generation with Infographic v2 |
| 304 | |
| 305 | 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`. |
| 306 | |
| 307 | **Flow:** |
| 308 | Identify the highest-priority static creative gaps from the audit |
| 309 | Ask: "I can generate ad creatives for the top gaps using the infographic tool. Want me to start with [highest priority gap]?" |
| 310 | If yes, invoke `/infographic-v2` — it will pick up `./branding.md` for brand-consistent output |
| 311 | The infographic skill handles concept selection, visualization approach, and generation |
| 312 | After generation, return to the next creative gap or wrap up |
| 313 | |
| 314 | **What infographic-v2 uses from branding.md:** |
| 315 | Brand colors → color palette for the infographic |
| 316 | Typography → font selection |
| 317 | Visual style → style anchors |
| 318 | Brand voice → headline and copy tone |
| 319 | Approved CTAs → CTA text in ad creatives |
| 320 | |
| 321 | ## Output |
| 322 | |
| 323 | ### Creative Quality Report |
| 324 | |
| 325 | |
| 326 | Cross-Platform Creative Health |
| 327 | |
| 328 | Google: ████████░░ X/X checks passing |
| 329 | Meta: ██████████ X/X checks passing |
| 330 | LinkedIn: ███████░░░ X/X checks passing |
| 331 | TikTok: █████░░░░░ X/X checks passing |
| 332 | Microsoft: ████████░░ X/X checks passing |
| 333 | |
| 334 | |
| 335 | ### Deliverables |
| 336 | `CREATIVE-AUDIT-REPORT.md` — Per-platform creative assessment |
| 337 | Fatigue alerts (any creative past refresh cadence) |
| 338 | Format diversity gaps per platform |
| 339 | Production priority list (most impactful creative to produce next) |
| 340 | Quick Wins (format conversions, CTA changes, Spark Ads setup) |
| 341 | **Generated ad creatives** via infographic-v2 (if user opts in) |
| 342 |
Discussion
Browse more free Claude skills or everything in Marketing.