Strategic paid advertising planning with industry-specific templates. Covers platform selection, campaign architecture, budget planning, creative strategy, and phased implementation roadmap. Use when user says "ad plan", "ad strategy", "campaign planning", "media plan", "PPC strategy", or "advertising plan".
From adsnpx claudepluginhub naveedharri/benai-skillsThis skill uses the workspace's default tool permissions.
assets/agency.mdassets/b2b-enterprise.mdassets/ecommerce.mdassets/finance.mdassets/generic.mdassets/government.mdassets/healthcare.mdassets/hybrid.mdassets/info-products.mdassets/local-service.mdassets/mobile-app.mdassets/nonprofit.mdassets/real-estate.mdassets/saas.mdassets/seasonal.mdCheck for ./branding.md in the project root.
If found: Load brand identity, voice, audience, visual guidelines, competitor positioning. Confirm with the user: "I found your brand context (branding.md). Using it for this plan." Skip to step 1.
If not found: Collect brand context before proceeding. This information shapes every downstream step — platform selection, creative strategy, audience targeting, and budget allocation.
"Before building your ad strategy, I need to understand your brand. 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 full website extraction (step 0.2) before asking any further questions. Everything that can be extracted from the website should be extracted — never ask the user for information that's already on their site.
Also collect (if not already clear from the website):
This is the most important part of brand context setup. Do not guess or assume anything. Extract the actual values the business uses on their live website.
Use WebFetch on the homepage URL. Instruct it to extract ALL of the following:
Visual identity:
font-family declarations 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".Copy and messaging:
Brand voice signals:
If the homepage alone doesn't give a complete picture, also fetch:
/about or /about-us — for company story, mission, team info, more voice signals/pricing — for pricing model (free trial, freemium, contact-us, subscription tiers)Only fetch these if there are genuine gaps after the homepage. Don't fetch for the sake of it.
Show the user everything extracted, organized 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.
After the 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 specifics:
Competitor positioning:
/ads-competitor for analysis.")Ad-specific guidelines:
Brand voice refinement (if the website extraction was ambiguous):
Do NOT ask about colors, fonts, tagline, visual style, or value proposition if the website extraction already captured them. Only ask if the extraction was inconclusive.
If the user does not provide a website URL, fall back to asking all questions manually:
Visual identity:
Copy and messaging:
Brand voice:
Target audience, competitor positioning, and ad guidelines — same as step 0.3.
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 entirely.
Validate before writing:
Display summary:
Brand context saved: ./branding.md
Brand: [name]
Industry: [industry]
Voice: [tone summary]
Audience: [persona summary]
USP: [one-line value prop]
Colors: [primary hex] [secondary hex] [accent hex]
Fonts: [heading font] / [body font]
Now building your ad strategy...
Note: Many of these answers feed directly into step 1 (Discovery) — do not re-ask questions the user already answered. Carry forward business type, audience, goals, and budget context.
assets/ directoryads/references/budget-allocation.md for platform selection matrixads/references/conversion-tracking.md for tracking setup requirements[Platform]_[Objective]_[Audience]_[Geo]_[Date]
Example: META_CONV_Prospecting_US_2026Q1
Account
├── Brand Campaign (always-on, protect brand terms)
├── Non-Brand Prospecting
│ ├── Campaign 1: [Top Funnel - Awareness]
│ │ ├── Ad Group/Set 1: [Audience A]
│ │ └── Ad Group/Set 2: [Audience B]
│ ├── Campaign 2: [Mid Funnel - Consideration]
│ │ ├── Ad Group/Set 1: [Interest-based]
│ │ └── Ad Group/Set 2: [Lookalike/Similar]
│ └── Campaign 3: [Bottom Funnel - Conversion]
│ ├── Ad Group/Set 1: [High-intent]
│ └── Ad Group/Set 2: [Custom audience]
├── Retargeting
│ ├── Website Visitors (7-30 days)
│ ├── Engaged Users (video views, social engagement)
│ └── Cart Abandoners / Form Starters
└── Testing
└── New audiences, formats, or messaging
Read ads/references/budget-allocation.md for the 70/20/10 framework.
| Tier | Allocation | Purpose |
|---|---|---|
| Proven (70%) | Primary platforms with proven ROI | Revenue engine |
| Scaling (20%) | Platforms showing promise | Growth engine |
| Testing (10%) | New platforms or strategies | Innovation |
| Priority | Asset Type | Platforms | Quantity |
|---|---|---|---|
| P1 | Product/service videos (15-30s) | Meta, TikTok, YouTube | 5-10 |
| P2 | Static images with copy | Google, Meta, LinkedIn | 10-15 |
| P3 | Carousel/collection | Meta, LinkedIn | 3-5 |
| P4 | UGC/testimonial video | TikTok, Meta | 3-5 |
| P5 | Long-form video (1-3 min) | YouTube | 2-3 |
If branding.md is available, personalize CREATIVE-BRIEF.md with:
Read ads/references/creative-volume.md for per-platform volume requirements.
Before launching any ads, ensure tracking is configured:
| Platform | Client-Side | Server-Side | Priority |
|---|---|---|---|
| gtag.js | Enhanced Conversions, GTM SS | P1 | |
| Meta | Pixel | CAPI | P1 |
| Insight Tag | CAPI (2025) | P2 | |
| TikTok | Pixel | Events API + ttclid | P2 |
| Microsoft | UET Tag | Enhanced Conversions | P2 |
Load from assets/ directory based on detected or specified business type:
saas.md — SaaS companiesecommerce.md — E-commerce storeslocal-service.md — Local service businessesb2b-enterprise.md — B2B enterpriseinfo-products.md — Info products and coursesmobile-app.md — Mobile app companiesreal-estate.md — Real estatehealthcare.md — Healthcarefinance.md — Financial servicesagency.md — Marketing agencieshybrid.md — Multi-model businesses (product + service, B2B + B2C)seasonal.md — Seasonal businesses (holiday, summer, event-driven)nonprofit.md — 501(c)(3) organizations, Google Ad Grants compliancegovernment.md — Public sector, WCAG accessibility, government compliancegeneric.md — General business templateEvery deliverable is written as markdown first, then converted to a brand-styled PDF.
| Markdown | Contents | |
|---|---|---|
ADS-STRATEGY.md | ADS-STRATEGY.pdf | Complete strategic advertising plan |
CAMPAIGN-ARCHITECTURE.md | CAMPAIGN-ARCHITECTURE.pdf | Campaign structure with naming conventions |
BUDGET-PLAN.md | BUDGET-PLAN.pdf | Budget allocation with monthly pacing |
CREATIVE-BRIEF.md | CREATIVE-BRIEF.pdf | Creative production plan (brand-personalized) |
TRACKING-SETUP.md | TRACKING-SETUP.pdf | Tracking implementation checklist |
IMPLEMENTATION-ROADMAP.md | IMPLEMENTATION-ROADMAP.pdf | Phased rollout timeline |
After writing all markdown deliverables, generate branded PDFs using md-to-pdf.
The stylesheet is not a template — it is generated from scratch every time by reading
./branding.md and translating the brand's full identity into CSS.
Read ./branding.md in full. Extract everything relevant to visual presentation:
@import rule.
If the fonts are not web-available, pick the closest system font match.Write a complete CSS file to _brand-pdf.css that covers:
@page setup — A4, margins, page numbers in brand font/color
Body — Brand body font, size, line-height, text color
Headings (h1-h4) — Brand heading font, h1 in primary color with a styled underline
(solid, gradient, or accent-colored depending on visual style)
Tables — thead background in primary color (white text), striped rows
using a light tint of the primary, borders in a derived border color
Blockquotes — Left border in accent color, light tint background
Code blocks — Light background, left border in primary, brand monospace stack
Links — Primary color
Lists — Appropriate spacing and markers
Horizontal rules — Styled with brand colors
Print helpers — page-break-after: avoid on headings, page-break-inside: avoid
on tables/code/blockquotes
Every color in the CSS must trace back to branding.md. Do not use any hardcoded colors that don't derive from the brand palette. Derive light backgrounds, border colors, and muted text from the primary/secondary using opacity or HSL manipulation.
Example derivation for a brand with primary #2563eb:
#2563eb0a (primary at 4% opacity) or manually lighten to #eff6ff#2563eb20 (primary at 12% opacity) or manually lighten to #dbeafenpx md-to-pdf --stylesheet _brand-pdf.css ADS-STRATEGY.md
npx md-to-pdf --stylesheet _brand-pdf.css CAMPAIGN-ARCHITECTURE.md
npx md-to-pdf --stylesheet _brand-pdf.css BUDGET-PLAN.md
npx md-to-pdf --stylesheet _brand-pdf.css CREATIVE-BRIEF.md
npx md-to-pdf --stylesheet _brand-pdf.css TRACKING-SETUP.md
npx md-to-pdf --stylesheet _brand-pdf.css IMPLEMENTATION-ROADMAP.md
Each command produces a .pdf alongside the .md.
rm _brand-pdf.css
PDFs generated with [Brand Name] styling:
ADS-STRATEGY.pdf
CAMPAIGN-ARCHITECTURE.pdf
BUDGET-PLAN.pdf
CREATIVE-BRIEF.pdf
TRACKING-SETUP.pdf
IMPLEMENTATION-ROADMAP.pdf
Brand applied:
Colors: [primary] [secondary] [accent]
Fonts: [heading font] / [body font]
Style: [visual style description]
If npx md-to-pdf fails (Node.js not installed, network error, Puppeteer issue),
inform the user and suggest npm install -g md-to-pdf then retry. The markdown files
are always the primary deliverables — PDFs are supplementary.
| Metric | Month 1 | Month 3 | Month 6 | Month 12 |
|---|---|---|---|---|
| ROAS | Baseline | Target -20% | Target | Target +20% |
| CPA | Baseline | Target +30% | Target | Target -10% |
| CVR | Baseline | +10% | +20% | +30% |
| CTR | Baseline | +15% | +25% | +30% |
| Budget | Testing | Optimizing | Scaling | Maintaining |