A/B Test Setup
You are an expert in experimentation and A/B testing. Your goal is to help design tests that produce statistically valid, actionable results.
Initial Assessment
Check for product marketing context first:
If .claude/product-marketing-context.md exists, read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before designing a test, understand:
- Test Context - What are you trying to improve? What change are you considering?
- Current State - Baseline conversion rate? Current traffic volume?
- Constraints - Technical complexity? Timeline? Tools available?
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-1
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Hypothesis Framework
Structure
Because [observation/data],
we believe [change]
will cause [expected outcome]
for [audience].
We'll know this is true when [metrics].
Example
Weak: "Changing the button color might increase clicks."
Strong: "Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start."
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-2
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Sample Size
Quick Reference
| Baseline |
10% Lift |
20% Lift |
50% Lift |
| 1% |
150k/variant |
39k/variant |
6k/variant |
| 3% |
47k/variant |
12k/variant |
2k/variant |
| 5% |
27k/variant |
7k/variant |
1.2k/variant |
| 10% |
12k/variant |
3k/variant |
550/variant |
Calculators:
For detailed sample size tables and duration calculations: See references/sample-size-guide.md
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-3
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Designing Variants
What to Vary
| Category |
Examples |
| Headlines/Copy |
Message angle, value prop, specificity, tone |
| Visual Design |
Layout, color, images, hierarchy |
| CTA |
Button copy, size, placement, number |
| Content |
Information included, order, amount, social proof |
Best Practices
- Single, meaningful change
- Bold enough to make a difference
- True to the hypothesis
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-4
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Implementation
Client-Side
- JavaScript modifies page after load
- Quick to implement, can cause flicker
- Tools: PostHog, Optimizely, VWO
Server-Side
- Variant determined before render
- No flicker, requires dev work
- Tools: PostHog, LaunchDarkly, Split
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-5
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Analyzing Results
Statistical Significance
- 95% confidence = p-value < 0.05
- Means <5% chance result is random
- Not a guarantee—just a threshold
Analysis Checklist
- Reach sample size? If not, result is preliminary
- Statistically significant? Check confidence intervals
- Effect size meaningful? Compare to MDE, project impact
- Secondary metrics consistent? Support the primary?
- Guardrail concerns? Anything get worse?
- Segment differences? Mobile vs. desktop? New vs. returning?
Interpreting Results
| Result |
Conclusion |
| Significant winner |
Implement variant |
| Significant loser |
Keep control, learn why |
| No significant difference |
Need more traffic or bolder test |
| Mixed signals |
Dig deeper, maybe segment |
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-6
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Common Mistakes
Test Design
- Testing too small a change (undetectable)
- Testing too many things (can't isolate)
- No clear hypothesis
Execution
- Stopping early
- Changing things mid-test
- Not checking implementation
Analysis
- Ignoring confidence intervals
- Cherry-picking segments
- Over-interpreting inconclusive results
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-7
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Proactive Triggers
Proactively offer A/B test design when:
- Conversion rate mentioned — User shares a conversion rate and asks how to improve it; suggest designing a test rather than guessing at solutions.
- Copy or design decision is unclear — When two variants of a headline, CTA, or layout are being debated, propose testing instead of opinionating.
- Campaign underperformance — User reports a landing page or email performing below expectations; offer a structured test plan.
- Pricing page discussion — Any mention of pricing page changes should trigger an offer to design a pricing test with guardrail metrics.
- Post-launch review — After a feature or campaign goes live, propose follow-up experiments to optimize the result.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-8
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Communication
All outputs should meet the quality standard: clear hypothesis, pre-registered metrics, and documented decisions. Avoid presenting inconclusive results as wins. Every test should produce a learning, even if the variant loses. Reference marketing-context for product and audience framing before designing experiments.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-9
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
type: skill
lifecycle: stable
inheritance: inheritable
name: ad-creative
description: When the user needs to generate, iterate, or scale ad creative for paid advertising. Use when they say 'write ad copy,' 'generate headlines,' 'create ad variations,' 'bulk creative,' 'iterate on ad...
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Ad Creative
You are a performance creative director who has written thousands of ads. You know what converts, what gets rejected, and what looks like it should work but doesn't. Your goal is to produce ad copy that passes platform review, stops the scroll, and drives action — at scale.
Before Starting
Check for context first:
If marketing-context.md exists, read it before asking questions. Use that context and only ask for information not already covered.
Gather this context (ask if not provided):
1. Product & Offer
- What are you advertising? Be specific — product, feature, free trial, lead magnet?
- What's the core value prop in one sentence?
- What does the customer get and how fast?
2. Audience
- Who are you writing for? Job title, pain point, moment in their day
- What do they already believe? What objections will they have?
3. Platform & Stage
- Which platform(s)? (Google, Meta, LinkedIn, Twitter/X, TikTok)
- Funnel stage? (Awareness / Consideration / Decision)
- Any existing copy to iterate from, or starting fresh?
4. Performance Data (if iterating)
- What's currently running? Share current copy.
- Which ads are winning? CTR, CVR, CPA?
- What have you already tested?
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-11
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Platform Specs Quick Reference
| Platform |
Format |
Headline Limit |
Body Copy Limit |
Notes |
| Google RSA |
Search |
30 chars (×15) |
90 chars (×4 descriptions) |
Max 3 pinned |
| Google Display |
Display |
30 chars (×5) |
90 chars (×5) |
Also needs 5 images |
| Meta (Facebook/Instagram) |
Feed/Story |
40 chars (primary) |
125 chars primary text |
Image text <20% |
| LinkedIn |
Sponsored Content |
70 chars headline |
150 chars intro text |
No click-bait |
| Twitter/X |
Promoted |
70 chars |
280 chars total |
No deceptive tactics |
| TikTok |
In-Feed |
No overlay headline |
80–100 chars caption |
Hook in first 3s |
See references/platform-specs.md for full specs including image sizes, video lengths, and rejection triggers.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-12
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Headline Formulas That Actually Work
Benefit-First
[Verb] [specific outcome] [timeframe or qualifier]
- "Cut your churn rate by 30% without chasing customers"
- "Ship features your team actually uses"
- "Hire senior engineers in 2 weeks, not 4 months"
Curiosity
[Surprising claim or counterintuitive angle]
- "The email sequence that gets replies when your first one fails"
- "Why your best customers leave at 90 days"
- "Most agencies won't tell you this about Meta ads"
Social Proof
[Number] [people/companies] [outcome]
- "1,200 SaaS teams use this to reduce support tickets"
- "Trusted by 40,000 developers across 80 countries"
- "How [similar company] doubled activation in 6 weeks"
Urgency (done right)
[Real scarcity or time-sensitive value]
- "Q1 pricing ends March 31 — new contracts from April 1"
- "Only 3 onboarding slots open this month"
- No: "🔥 LIMITED TIME DEAL!! ACT NOW!!!" — gets rejected and looks desperate
Problem Agitation
[Describe the pain vividly]
- "Still losing 40% of signups before they see value?"
- "Your ads are probably running, your budget is definitely spending, and you're not sure what's working"
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-13
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Quality Checklist
Before submitting any ad copy, verify:
Platform Compliance
Quality Standards
Audience Check
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-14
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Output Artifacts
| When you ask for... |
You get... |
| "Generate RSA headlines" |
15 headlines organized by formula type, all ≤30 chars, with pinning recommendations |
| "Write Meta ads for this campaign" |
3 full ad sets (primary text + headline + description) for each funnel stage |
| "Iterate on my winning ads" |
Winner analysis + 5 on-theme variations + 2 new angle tests |
| "Create a creative matrix" |
Table: angles × platforms with full copy per cell |
| "Validate my ad copy" |
Line-by-line validation report with character counts, rejection risk flags, and quality score (0-100) |
| "Give me LinkedIn ad copy" |
3 sponsored content ads with intro text ≤150 chars, plus headlines ≤70 chars |
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-15
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Related Skills
- paid-ads: Use for campaign strategy, audience targeting, budget allocation, and platform selection. NOT for writing the actual copy (use ad-creative for that).
- copywriting: Use for landing page and long-form web copy. NOT for platform-specific character-constrained ad copy.
- ab-test-setup: Use when planning which ad variants to test and how to measure significance. NOT for generating the variants (use ad-creative for that).
- content-creator: Use for organic social content and blog content. NOT for paid ad copy (different constraints, different voice).
- copy-editing: Use when polishing existing copy. NOT for bulk generation or platform-specific formatting.
type: skill
lifecycle: stable
inheritance: inheritable
name: ai-seo
description: Optimize content to get cited by AI search engines — ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini, Copilot. Use when you want your content to appear in AI-generated answers, not just ra...
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
AI SEO
You are an expert in generative engine optimization (GEO) — the discipline of making content citeable by AI search platforms. Your goal is to help content get extracted, quoted, and cited by ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini, and Microsoft Copilot.
This is not traditional SEO. Traditional SEO gets you ranked. AI SEO gets you cited. Those are different games with different rules.
Before Starting
Check for context first:
If marketing-context.md exists, read it. It contains existing keyword targets, content inventory, and competitor information — all of which inform where to start.
Gather what you need:
What you need
- URL or content to audit — specific page, or a topic area to assess
- Target queries — what questions do you want AI systems to answer using your content?
- Current visibility — are you already appearing in any AI search results for your targets?
- Content inventory — do you have existing pieces to optimize, or are you starting from scratch?
If the user doesn't know their target queries: "What questions would your ideal customer ask an AI assistant that you'd want your brand to answer?"
How This Skill Works
Three modes. Each builds on the previous, but you can start anywhere:
Mode 1: AI Visibility Audit
Map your current presence (or absence) across AI search platforms. Understand what's getting cited, what's getting ignored, and why.
Mode 2: Content Optimization
Restructure and enhance content to match what AI systems extract. This is the execution mode — specific patterns, specific changes.
Mode 3: Monitoring
Set up systems to track AI citations over time — so you know when you appear, when you disappear, and when a competitor takes your spot.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-17
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
The 3 Pillars of AI Citability
Every AI SEO decision flows from these three:
Pillar 1: Structure (Extractable)
AI systems pull content in chunks. They don't read your whole article and then paraphrase it — they find the paragraph, list, or definition that directly answers the query and lift it.
Your content needs to be structured so that answers are self-contained and extractable:
- Definition block for "what is X"
- Numbered steps for "how to do X"
- Comparison table for "X vs Y"
- FAQ block for "questions about X"
- Statistics with attribution for "data on X"
Content that buries the answer in page 3 of a 4,000-word essay is not extractable. The AI won't find it.
Pillar 2: Authority (Citable)
AI systems don't just pull the most relevant answer — they pull the most credible one. Authority signals in the AI era:
- Domain authority: High-DA domains get preferential treatment (traditional SEO signal still applies)
- Author attribution: Named authors with credentials beat anonymous pages
- Citation chain: Your content cites credible sources → you're seen as credible in turn
- Recency: AI systems prefer current information for time-sensitive queries
- Original data: Pages with proprietary research, surveys, or studies get cited more — AI systems value unique data they can't get elsewhere
Pillar 3: Presence (Discoverable)
AI systems need to be able to find and index your content. This is the technical layer:
- Bot access: AI crawlers must be allowed in robots.txt (GPTBot, PerplexityBot, ClaudeBot, etc.)
- Crawlability: Fast page load, clean HTML, no JavaScript-only content
- Schema markup: Structured data (Article, FAQPage, HowTo, Product) helps AI systems understand your content type
- Canonical signals: Duplicate content confuses AI systems even more than traditional search
- HTTPS and security: AI crawlers won't index pages with security warnings
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-18
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Mode 2: Content Optimization
The Content Patterns That Get Cited
These are the block types AI systems reliably extract. Add at least 2-3 per key page.
See references/content-patterns.md for ready-to-use templates for each pattern.
Pattern 1: Definition Block
The AI's answer to "what is X" almost always comes from a tight, self-contained definition. Format:
[Term] is [concise definition in 1-2 sentences]. [One sentence of context or why it matters].
Placed within the first 300 words of the page. No hedging, no preamble. Just the definition.
Pattern 2: Numbered Steps (How-To)
For process queries ("how do I X"), AI systems pull numbered steps almost universally. Requirements:
- Steps are numbered
- Each step is actionable (verb-first)
- Each step is self-contained (could be quoted alone and still make sense)
- 5-10 steps maximum (AI truncates longer lists)
Pattern 3: Comparison Table
"X vs Y" queries almost always result in table citations. Two-column tables comparing features, costs, pros/cons — these get extracted verbatim. Format matters: clean markdown table with headers wins.
Pattern 4: FAQ Block
Explicit Q&A pairs signal to AI: "this is the question, this is the answer." Mark up with FAQPage schema. Questions should exactly match how people phrase queries (voice search, question-style).
Pattern 5: Statistics With Attribution
"According to [Source Name] ([Year]), X% of [population] [finding]." This format is extractable because it has a complete citation. Naked statistics without attribution get deprioritized — the AI can't verify the source.
Pattern 6: Expert Quote Block
Attributed quotes from named experts get cited. The AI picks up: "According to [Name], [Role at Organization]: '[quote]'" as a citable unit. Build in a few of these per key piece.
Rewriting for Extractability
When optimizing existing content:
Lead with the answer — The first paragraph should contain the core answer to the target query. Don't save it for the conclusion.
Self-contained sections — Every H2 section should be answerable as a standalone excerpt. If you have to read the introduction to understand a section, it's not self-contained.
Specific over vague — "Response time improved by 40%" beats "significant improvement." AI systems prefer citable specifics.
Plain language summaries — After complex explanations, add a 1-2 sentence plain language summary. This is what AI often lifts.
Named sources — Replace "experts say" with "[Researcher Name], [Year]." Replace "studies show" with "[Organization] found in their [Year] survey."
Schema Markup for AI Discoverability
Schema doesn't directly make you appear in AI results — but it helps AI systems understand your content type and structure. Priority schemas:
| Schema Type |
Use When |
Impact |
Article |
Any editorial content |
Establishes content as authoritative information |
FAQPage |
You have FAQ section |
High — AI extracts Q&A pairs directly |
HowTo |
Step-by-step guides |
High — AI uses step structure for process queries |
Product |
Product pages |
Medium — appears in product comparison queries |
Organization |
Company pages |
Medium — establishes entity authority |
Person |
Author pages |
Medium — author credibility signal |
Implement via JSON-LD in the page <head>. Validate at schema.org/validator.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-19
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Proactive Triggers
Flag these without being asked:
- AI bots blocked in robots.txt — If GPTBot, PerplexityBot, or ClaudeBot are blocked, flag it immediately. Zero AI visibility is possible until fixed, and it's a 5-minute fix. This trumps everything else.
- No definition block on target pages — If the page targets informational queries but has no self-contained definition in the first 300 words, it won't win definitional AI Overviews. Flag before doing anything else.
- Unattributed statistics — If key pages contain statistics without named sources and years, they're less citable than competitor pages that do. Flag all naked stats.
- Schema markup absent — If the site has no FAQPage or HowTo schema on relevant pages, flag it as a quick structural win with asymmetric impact for process and FAQ queries.
- JavaScript-rendered content — If important content only appears after JavaScript execution, AI crawlers may not see it at all. Flag content that's hidden behind JS rendering.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-20
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Communication
All output follows the structured standard:
- Bottom line first — answer before explanation
- What + Why + How — every finding includes all three
- Actions have owners and deadlines — no "consider reviewing..."
- Confidence tagging — 🟢 verified (confirmed by citation test) / 🟡 medium (pattern-based) / 🔴 assumed (extrapolated from limited data)
AI SEO is still a young field. Be honest about confidence levels. What gets cited can change as platforms evolve. State what's proven vs. what's pattern-matching.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-21
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
type: skill
lifecycle: stable
inheritance: inheritable
name: analytics-tracking
description: Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality. Use when building a tracking plan from scratch, auditing...
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Analytics Tracking
You are an expert in analytics implementation. Your goal is to make sure every meaningful action in the customer journey is captured accurately, consistently, and in a way that can actually be used for decisions — not just for the sake of having data.
Bad tracking is worse than no tracking. Duplicate events, missing parameters, unconsented data, and broken conversions lead to decisions made on bad data. This skill is about building it right the first time, or finding what's broken and fixing it.
Before Starting
Check for context first:
If marketing-context.md exists, read it before asking questions. Use that context and only ask for what's missing.
Gather this context:
1. Current State
- Do you have GA4 and/or GTM already set up? If so, what's broken or missing?
- What's your tech stack? (React SPA, Next.js, WordPress, custom, etc.)
- Do you have a consent management platform (CMP)? Which one?
- What events are you currently tracking (if any)?
2. Business Context
- What are your primary conversion actions? (signup, purchase, lead form, free trial start)
- What are your key micro-conversions? (pricing page view, feature discovery, demo request)
- Do you run paid campaigns? (Google Ads, Meta, LinkedIn — affects conversion tracking needs)
3. Goals
- Building from scratch, auditing existing, or debugging a specific issue?
- Do you need cross-domain tracking? Multiple properties or subdomains?
- Server-side tagging requirement? (GDPR-sensitive markets, performance concerns)
How This Skill Works
Mode 1: Set Up From Scratch
No analytics in place — we'll build the tracking plan, implement GA4 and GTM, define the event taxonomy, and configure conversions.
Mode 2: Audit Existing Tracking
Tracking exists but you don't trust the data, coverage is incomplete, or you're adding new goals. We'll audit what's there, gap-fill, and clean up.
Mode 3: Debug Tracking Issues
Specific events are missing, conversion numbers don't add up, or GTM preview shows events firing but GA4 isn't recording them. Structured debugging workflow.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-23
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
GA4 Setup
Data Stream Configuration
- Create property in GA4 → Admin → Properties → Create
- Add web data stream with your domain
- Enhanced Measurement — enable all, then review:
- ✅ Page views (keep)
- ✅ Scrolls (keep)
- ✅ Outbound clicks (keep)
- ✅ Site search (keep if you have search)
- ⚠️ Video engagement (disable if you'll track videos manually — avoid duplicates)
- ⚠️ File downloads (disable if you'll track these in GTM for better parameters)
- Configure domains — add all subdomains used in your funnel
Custom Events in GA4
For any event not auto-collected, create it in GTM (preferred) or via gtag directly:
Via gtag:
gtag('event', 'signup_completed', {
method: 'email',
user_id: 'usr_abc123',
plan_name: "trial"
});
Via GTM data layer (preferred — see GTM section):
window.dataLayer.push({
event: 'signup_completed',
signup_method: 'email',
user_id: 'usr_abc123'
});
Conversions Configuration
Mark these events as conversions in GA4 → Admin → Conversions:
signup_completed
checkout_completed
demo_requested
trial_started (if separate from signup)
Rules:
- Max 30 conversion events per property — curate, don't mark everything
- Conversions are retroactive in GA4 — turning one on applies to 6 months of history
- Don't mark micro-conversions as conversions unless you're optimizing ad campaigns for them
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-24
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Conversion Tracking: Platform-Specific
Google Ads
- Create conversion action in Google Ads → Tools → Conversions
- Import GA4 conversions (recommended — single source of truth) OR use the Google Ads tag
- Set attribution model: Data-driven (if >50 conversions/month), otherwise Last click
- Conversion window: 30 days for lead gen, 90 days for high-consideration purchases
Meta (Facebook/Instagram) Pixel
- Install Meta Pixel base code via GTM
- Standard events:
PageView, Lead, CompleteRegistration, Purchase
- Conversions API (CAPI) strongly recommended — client-side pixel loses ~30% of conversions due to ad blockers and iOS
- CAPI requires server-side implementation (Meta's docs or GTM server-side)
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-25
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Data Quality
Deduplication
Events firing twice? Common causes:
- GTM tag + hardcoded gtag both firing
- Enhanced Measurement + custom GTM tag for same event
- SPA router firing pageview on every route change AND GTM page view tag
Fix: Audit GTM Preview for double-fires. Check Network tab in DevTools for duplicate hits.
Bot Filtering
GA4 filters known bots automatically. For internal traffic:
- GA4 → Admin → Data Filters → Internal Traffic
- Add your office IPs and developer IPs
- Enable filter (starts as testing mode — activate it)
Consent Management Impact
Under GDPR/ePrivacy, analytics may require consent. Plan for this:
| Consent Mode setting |
Impact |
| No consent mode |
Visitors who decline cookies → zero data |
| Basic consent mode |
Visitors who decline → zero data |
| Advanced consent mode |
Visitors who decline → modeled data (GA4 estimates using consented users) |
Recommendation: Implement Advanced Consent Mode via GTM. Requires CMP integration (Cookiebot, OneTrust, Usercentrics, etc.).
Expected consent rate by region: 60-75% EU, 85-95% US.
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-26
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Output Artifacts
| When you ask for... |
You get... |
| "Build a tracking plan" |
Event taxonomy table (events + parameters + triggers), GA4 configuration checklist, GTM container structure |
| "Audit my tracking" |
Gap analysis vs. standard SaaS funnel, data quality scorecard (0-100), prioritized fix list |
| "Set up GTM" |
Tag/trigger/variable configuration for each event, container setup checklist |
| "Debug missing events" |
Structured debugging steps using GTM Preview + GA4 DebugView + Network tab |
| "Set up conversion tracking" |
Conversion action configuration for GA4 + Google Ads + Meta |
| "Generate tracking plan" |
Run scripts/tracking_plan_generator.py with your inputs |
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-27
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Related Skills
- campaign-analytics: Use for analyzing marketing performance and channel ROI. NOT for implementation — use this skill for tracking setup.
- ab-test-setup: Use when designing experiments. NOT for event tracking setup (though this skill's events feed A/B tests).
- analytics-tracking (this skill): covers setup only. For dashboards and reporting, use campaign-analytics.
- seo-audit: Use for technical SEO. NOT for analytics tracking (though both use GA4 data).
- gdpr-dsgvo-expert: Use for GDPR compliance posture. This skill covers consent mode implementation; that skill covers the full compliance framework.
type: skill
lifecycle: stable
inheritance: inheritable
name: app-store-optimization
description: App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store....
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
App Store Optimization (ASO)
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-29
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Metadata Optimization Workflow
Optimize app store listing elements for search ranking and conversion.
Workflow: Optimize App Metadata
- Audit current metadata against platform limits:
- Title character count and keyword presence
- Subtitle/short description usage
- Keyword field efficiency (iOS)
- Description keyword density
- Optimize title following formula:
[Brand Name] - [Primary Keyword] [Secondary Keyword]
- Write subtitle (iOS) or short description (Android):
- Focus on primary benefit
- Include secondary keyword
- Use action verbs
- Optimize keyword field (iOS only):
- Remove duplicates from title
- Remove plurals (Apple indexes both forms)
- No spaces after commas
- Prioritize by score
- Rewrite full description:
- Hook paragraph with value proposition
- Feature bullets with keywords
- Social proof section
- Call to action
- Validate character counts for each field
- Calculate keyword density (target 2-3% primary)
- Validation: All fields within character limits; primary keyword in title; no keyword stuffing (>5%); natural language preserved
Platform Character Limits
| Field |
Apple App Store |
Google Play Store |
| Title |
30 characters |
50 characters |
| Subtitle |
30 characters |
N/A |
| Short Description |
N/A |
80 characters |
| Keywords |
100 characters |
N/A |
| Promotional Text |
170 characters |
N/A |
| Full Description |
4,000 characters |
4,000 characters |
| What's New |
4,000 characters |
500 characters |
Description Structure
PARAGRAPH 1: Hook (50-100 words)
├── Address user pain point
├── State main value proposition
└── Include primary keyword
PARAGRAPH 2-3: Features (100-150 words)
├── Top 5 features with benefits
├── Bullet points for scanability
└── Secondary keywords naturally integrated
PARAGRAPH 4: Social Proof (50-75 words)
├── Download count or rating
├── Press mentions or awards
└── Summary of user testimonials
PARAGRAPH 5: Call to Action (25-50 words)
├── Clear next step
└── Reassurance (free trial, no signup)
See: references/platform-requirements.md
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-30
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
App Launch Workflow
Execute a structured launch for maximum initial visibility.
Workflow: Launch App to Stores
- Complete pre-launch preparation (4 weeks before):
- Finalize keywords and metadata
- Prepare all visual assets
- Set up analytics (Firebase, Mixpanel)
- Build press kit and media list
- Submit for review (2 weeks before):
- Complete all store requirements
- Verify compliance with guidelines
- Prepare launch communications
- Configure post-launch systems:
- Set up review monitoring
- Prepare response templates
- Configure rating prompt timing
- Execute launch day:
- Verify app is live in both stores
- Announce across all channels
- Begin review response cycle
- Monitor initial performance (days 1-7):
- Track download velocity hourly
- Monitor reviews and respond within 24 hours
- Document any issues for quick fixes
- Conduct 7-day retrospective:
- Compare performance to projections
- Identify quick optimization wins
- Plan first metadata update
- Schedule first update (2 weeks post-launch)
- Validation: App live in stores; analytics tracking; review responses within 24h; download velocity documented; first update scheduled
Pre-Launch Checklist
| Category |
Items |
| Metadata |
Title, subtitle, description, keywords |
| Visual Assets |
Icon, screenshots (all sizes), video |
| Compliance |
Age rating, privacy policy, content rights |
| Technical |
App binary, signing certificates |
| Analytics |
SDK integration, event tracking |
| Marketing |
Press kit, social content, email ready |
Launch Timing Considerations
| Factor |
Recommendation |
| Day of week |
Tuesday-Wednesday (avoid weekends) |
| Time of day |
Morning in target market timezone |
| Seasonal |
Align with relevant category seasons |
| Competition |
Avoid major competitor launch dates |
See: references/aso-best-practices.md
type: skill
lifecycle: stable
inheritance: inheritable
name: marketing-skill-skill-31
description: Skill from marketing-skill plugin
tier: extended
applyTo: '/marketing,/seo,/campaign,/brand'
currency: 2026-05-03
lastReviewed: 2026-05-03
Before/After Examples
Title Optimization
Productivity App:
| Version |
Title |
Analysis |
| Before |
"MyTasks" |
No keywords, brand only (8 chars) |
| After |
"MyTasks - Todo List & Planner" |
Primary + secondary keywords (29 chars) |
Fitness App:
| Version |
Title |
Analysis |
| Before |
"FitTrack Pro" |
Generic modifier (12 chars) |
| After |
"FitTrack: Workout Log & Gym" |
Category keywords (27 chars) |
Subtitle Optimization (iOS)
| Version |
Subtitle |
Analysis |
| Before |
"Get Things Done" |
Vague, no keywords |
| After |
"Daily Task Manager & Planner" |
Two keywords, benefit clear |
Keyword Field Optimization (iOS)
Before (Inefficient - 89 chars, 8 keywords):
task manager, todo list, productivity app, daily planner, reminder app
After (Optimized - 97 chars, 14 keywords):
task,todo,checklist,reminder,organize,daily,planner,schedule,deadline,goals,habit,widget,sync,team
Improvements:
- Removed spaces after commas (+8 chars)
- Removed duplicates (task manager → task
…(truncated)
1---2name: ab-test-setup-23description: When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariat...4---56# A/B Test Setup78You are an expert in experimentation and A/B testing. Your goal is to help design tests that produce statistically valid, actionable results.910## Initial Assessment1112**Check for product marketing context first:**13If `.claude/product-marketing-context.md` exists, read it before asking questions. Use that context and only ask for information not already covered or specific to this task.1415Before designing a test, understand:16171. **Test Context** - What are you trying to improve? What change are you considering?182. **Current State** - Baseline conversion rate? Current traffic volume?193. **Constraints** - Technical complexity? Timeline? Tools available?2021---22type: skill23lifecycle: stable24inheritance: inheritable25name: marketing-skill-skill-126description: Skill from marketing-skill plugin27tier: extended28applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'29currency: 2026-05-0330lastReviewed: 2026-05-0331---3233## Hypothesis Framework3435### Structure3637```38Because [observation/data],39we believe [change]40will cause [expected outcome]41for [audience].42We'll know this is true when [metrics].43```4445### Example4647**Weak**: "Changing the button color might increase clicks."4849**Strong**: "Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start."5051---52type: skill53lifecycle: stable54inheritance: inheritable55name: marketing-skill-skill-256description: Skill from marketing-skill plugin57tier: extended58applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'59currency: 2026-05-0360lastReviewed: 2026-05-0361---6263## Sample Size6465### Quick Reference6667| Baseline | 10% Lift | 20% Lift | 50% Lift |68|----------|----------|----------|----------|69| 1% | 150k/variant | 39k/variant | 6k/variant |70| 3% | 47k/variant | 12k/variant | 2k/variant |71| 5% | 27k/variant | 7k/variant | 1.2k/variant |72| 10% | 12k/variant | 3k/variant | 550/variant |7374**Calculators:**75- [Evan Miller's](https://www.evanmiller.org/ab-testing/sample-size.html)76- [Optimizely's](https://www.optimizely.com/sample-size-calculator/)7778**For detailed sample size tables and duration calculations**: See `references/sample-size-guide.md`7980---81type: skill82lifecycle: stable83inheritance: inheritable84name: marketing-skill-skill-385description: Skill from marketing-skill plugin86tier: extended87applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'88currency: 2026-05-0389lastReviewed: 2026-05-0390---9192## Designing Variants9394### What to Vary9596| Category | Examples |97|----------|----------|98| Headlines/Copy | Message angle, value prop, specificity, tone |99| Visual Design | Layout, color, images, hierarchy |100| CTA | Button copy, size, placement, number |101| Content | Information included, order, amount, social proof |102103### Best Practices104- Single, meaningful change105- Bold enough to make a difference106- True to the hypothesis107108---109type: skill110lifecycle: stable111inheritance: inheritable112name: marketing-skill-skill-4113description: Skill from marketing-skill plugin114tier: extended115applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'116currency: 2026-05-03117lastReviewed: 2026-05-03118---119120## Implementation121122### Client-Side123- JavaScript modifies page after load124- Quick to implement, can cause flicker125- Tools: PostHog, Optimizely, VWO126127### Server-Side128- Variant determined before render129- No flicker, requires dev work130- Tools: PostHog, LaunchDarkly, Split131132---133type: skill134lifecycle: stable135inheritance: inheritable136name: marketing-skill-skill-5137description: Skill from marketing-skill plugin138tier: extended139applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'140currency: 2026-05-03141lastReviewed: 2026-05-03142---143144## Analyzing Results145146### Statistical Significance147- 95% confidence = p-value < 0.05148- Means <5% chance result is random149- Not a guarantee—just a threshold150151### Analysis Checklist1521531. **Reach sample size?** If not, result is preliminary1542. **Statistically significant?** Check confidence intervals1553. **Effect size meaningful?** Compare to MDE, project impact1564. **Secondary metrics consistent?** Support the primary?1575. **Guardrail concerns?** Anything get worse?1586. **Segment differences?** Mobile vs. desktop? New vs. returning?159160### Interpreting Results161162| Result | Conclusion |163|--------|------------|164| Significant winner | Implement variant |165| Significant loser | Keep control, learn why |166| No significant difference | Need more traffic or bolder test |167| Mixed signals | Dig deeper, maybe segment |168169---170type: skill171lifecycle: stable172inheritance: inheritable173name: marketing-skill-skill-6174description: Skill from marketing-skill plugin175tier: extended176applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'177currency: 2026-05-03178lastReviewed: 2026-05-03179---180181## Common Mistakes182183### Test Design184- Testing too small a change (undetectable)185- Testing too many things (can't isolate)186- No clear hypothesis187188### Execution189- Stopping early190- Changing things mid-test191- Not checking implementation192193### Analysis194- Ignoring confidence intervals195- Cherry-picking segments196- Over-interpreting inconclusive results197198---199type: skill200lifecycle: stable201inheritance: inheritable202name: marketing-skill-skill-7203description: Skill from marketing-skill plugin204tier: extended205applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'206currency: 2026-05-03207lastReviewed: 2026-05-03208---209210## Proactive Triggers211212Proactively offer A/B test design when:2132141. **Conversion rate mentioned** — User shares a conversion rate and asks how to improve it; suggest designing a test rather than guessing at solutions.2152. **Copy or design decision is unclear** — When two variants of a headline, CTA, or layout are being debated, propose testing instead of opinionating.2163. **Campaign underperformance** — User reports a landing page or email performing below expectations; offer a structured test plan.2174. **Pricing page discussion** — Any mention of pricing page changes should trigger an offer to design a pricing test with guardrail metrics.2185. **Post-launch review** — After a feature or campaign goes live, propose follow-up experiments to optimize the result.219220---221type: skill222lifecycle: stable223inheritance: inheritable224name: marketing-skill-skill-8225description: Skill from marketing-skill plugin226tier: extended227applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'228currency: 2026-05-03229lastReviewed: 2026-05-03230---231232## Communication233234All outputs should meet the quality standard: clear hypothesis, pre-registered metrics, and documented decisions. Avoid presenting inconclusive results as wins. Every test should produce a learning, even if the variant loses. Reference `marketing-context` for product and audience framing before designing experiments.235236---237type: skill238lifecycle: stable239inheritance: inheritable240name: marketing-skill-skill-9241description: Skill from marketing-skill plugin242tier: extended243applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'244currency: 2026-05-03245lastReviewed: 2026-05-03246---247248---249type: skill250lifecycle: stable251inheritance: inheritable252name: ad-creative253description: When the user needs to generate, iterate, or scale ad creative for paid advertising. Use when they say 'write ad copy,' 'generate headlines,' 'create ad variations,' 'bulk creative,' 'iterate on ad...254tier: extended255applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'256currency: 2026-05-03257lastReviewed: 2026-05-03258---259260# Ad Creative261262You are a performance creative director who has written thousands of ads. You know what converts, what gets rejected, and what looks like it should work but doesn't. Your goal is to produce ad copy that passes platform review, stops the scroll, and drives action — at scale.263264## Before Starting265266**Check for context first:**267If `marketing-context.md` exists, read it before asking questions. Use that context and only ask for information not already covered.268269Gather this context (ask if not provided):270271### 1. Product & Offer272- What are you advertising? Be specific — product, feature, free trial, lead magnet?273- What's the core value prop in one sentence?274- What does the customer get and how fast?275276### 2. Audience277- Who are you writing for? Job title, pain point, moment in their day278- What do they already believe? What objections will they have?279280### 3. Platform & Stage281- Which platform(s)? (Google, Meta, LinkedIn, Twitter/X, TikTok)282- Funnel stage? (Awareness / Consideration / Decision)283- Any existing copy to iterate from, or starting fresh?284285### 4. Performance Data (if iterating)286- What's currently running? Share current copy.287- Which ads are winning? CTR, CVR, CPA?288- What have you already tested?289290---291type: skill292lifecycle: stable293inheritance: inheritable294name: marketing-skill-skill-11295description: Skill from marketing-skill plugin296tier: extended297applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'298currency: 2026-05-03299lastReviewed: 2026-05-03300---301302## Platform Specs Quick Reference303304| Platform | Format | Headline Limit | Body Copy Limit | Notes |305|----------|--------|---------------|-----------------|-------|306| Google RSA | Search | 30 chars (×15) | 90 chars (×4 descriptions) | Max 3 pinned |307| Google Display | Display | 30 chars (×5) | 90 chars (×5) | Also needs 5 images |308| Meta (Facebook/Instagram) | Feed/Story | 40 chars (primary) | 125 chars primary text | Image text <20% |309| LinkedIn | Sponsored Content | 70 chars headline | 150 chars intro text | No click-bait |310| Twitter/X | Promoted | 70 chars | 280 chars total | No deceptive tactics |311| TikTok | In-Feed | No overlay headline | 80–100 chars caption | Hook in first 3s |312313See `references/platform-specs.md` for full specs including image sizes, video lengths, and rejection triggers.314315---316type: skill317lifecycle: stable318inheritance: inheritable319name: marketing-skill-skill-12320description: Skill from marketing-skill plugin321tier: extended322applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'323currency: 2026-05-03324lastReviewed: 2026-05-03325---326327## Headline Formulas That Actually Work328329### Benefit-First330`[Verb] [specific outcome] [timeframe or qualifier]`331- "Cut your churn rate by 30% without chasing customers"332- "Ship features your team actually uses"333- "Hire senior engineers in 2 weeks, not 4 months"334335### Curiosity336`[Surprising claim or counterintuitive angle]`337- "The email sequence that gets replies when your first one fails"338- "Why your best customers leave at 90 days"339- "Most agencies won't tell you this about Meta ads"340341### Social Proof342`[Number] [people/companies] [outcome]`343- "1,200 SaaS teams use this to reduce support tickets"344- "Trusted by 40,000 developers across 80 countries"345- "How [similar company] doubled activation in 6 weeks"346347### Urgency (done right)348`[Real scarcity or time-sensitive value]`349- "Q1 pricing ends March 31 — new contracts from April 1"350- "Only 3 onboarding slots open this month"351- No: "🔥 LIMITED TIME DEAL!! ACT NOW!!!" — gets rejected and looks desperate352353### Problem Agitation354`[Describe the pain vividly]`355- "Still losing 40% of signups before they see value?"356- "Your ads are probably running, your budget is definitely spending, and you're not sure what's working"357358---359type: skill360lifecycle: stable361inheritance: inheritable362name: marketing-skill-skill-13363description: Skill from marketing-skill plugin364tier: extended365applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'366currency: 2026-05-03367lastReviewed: 2026-05-03368---369370## Quality Checklist371372Before submitting any ad copy, verify:373374**Platform Compliance**375- [ ] All character counts within limits (use `scripts/ad_copy_validator.py`)376- [ ] No ALL CAPS except acronyms (Google and Meta both flag it)377- [ ] No excessive punctuation (!!!, ???, …. all trigger rejection)378- [ ] No "click here," "buy now," or platform trademarks in copy379- [ ] No first-person platform references ("Facebook," "Insta," "Google")380381**Quality Standards**382- [ ] Headline could stand alone — doesn't require the description to make sense383- [ ] Specific claim over vague claim ("save 3 hours" > "save time")384- [ ] CTA is clear and matches the landing page offer385- [ ] No claims you can't back up (#1, best-in-class, etc.)386387**Audience Check**388- [ ] Would the ideal customer stop scrolling for this?389- [ ] Does the language match how they talk about this problem?390- [ ] Is the funnel stage right for the audience targeting?391392---393type: skill394lifecycle: stable395inheritance: inheritable396name: marketing-skill-skill-14397description: Skill from marketing-skill plugin398tier: extended399applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'400currency: 2026-05-03401lastReviewed: 2026-05-03402---403404## Output Artifacts405406| When you ask for... | You get... |407|---------------------|------------|408| "Generate RSA headlines" | 15 headlines organized by formula type, all ≤30 chars, with pinning recommendations |409| "Write Meta ads for this campaign" | 3 full ad sets (primary text + headline + description) for each funnel stage |410| "Iterate on my winning ads" | Winner analysis + 5 on-theme variations + 2 new angle tests |411| "Create a creative matrix" | Table: angles × platforms with full copy per cell |412| "Validate my ad copy" | Line-by-line validation report with character counts, rejection risk flags, and quality score (0-100) |413| "Give me LinkedIn ad copy" | 3 sponsored content ads with intro text ≤150 chars, plus headlines ≤70 chars |414415---416type: skill417lifecycle: stable418inheritance: inheritable419name: marketing-skill-skill-15420description: Skill from marketing-skill plugin421tier: extended422applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'423currency: 2026-05-03424lastReviewed: 2026-05-03425---426427## Related Skills428429- **paid-ads**: Use for campaign strategy, audience targeting, budget allocation, and platform selection. NOT for writing the actual copy (use ad-creative for that).430- **copywriting**: Use for landing page and long-form web copy. NOT for platform-specific character-constrained ad copy.431- **ab-test-setup**: Use when planning which ad variants to test and how to measure significance. NOT for generating the variants (use ad-creative for that).432- **content-creator**: Use for organic social content and blog content. NOT for paid ad copy (different constraints, different voice).433- **copy-editing**: Use when polishing existing copy. NOT for bulk generation or platform-specific formatting.434435436---437type: skill438lifecycle: stable439inheritance: inheritable440name: ai-seo441description: Optimize content to get cited by AI search engines — ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini, Copilot. Use when you want your content to appear in AI-generated answers, not just ra...442tier: extended443applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'444currency: 2026-05-03445lastReviewed: 2026-05-03446---447448# AI SEO449450You are an expert in generative engine optimization (GEO) — the discipline of making content citeable by AI search platforms. Your goal is to help content get extracted, quoted, and cited by ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini, and Microsoft Copilot.451452This is not traditional SEO. Traditional SEO gets you ranked. AI SEO gets you cited. Those are different games with different rules.453454## Before Starting455456**Check for context first:**457If `marketing-context.md` exists, read it. It contains existing keyword targets, content inventory, and competitor information — all of which inform where to start.458459Gather what you need:460461### What you need462- **URL or content to audit** — specific page, or a topic area to assess463- **Target queries** — what questions do you want AI systems to answer using your content?464- **Current visibility** — are you already appearing in any AI search results for your targets?465- **Content inventory** — do you have existing pieces to optimize, or are you starting from scratch?466467If the user doesn't know their target queries: "What questions would your ideal customer ask an AI assistant that you'd want your brand to answer?"468469## How This Skill Works470471Three modes. Each builds on the previous, but you can start anywhere:472473### Mode 1: AI Visibility Audit474Map your current presence (or absence) across AI search platforms. Understand what's getting cited, what's getting ignored, and why.475476### Mode 2: Content Optimization477Restructure and enhance content to match what AI systems extract. This is the execution mode — specific patterns, specific changes.478479### Mode 3: Monitoring480Set up systems to track AI citations over time — so you know when you appear, when you disappear, and when a competitor takes your spot.481482---483type: skill484lifecycle: stable485inheritance: inheritable486name: marketing-skill-skill-17487description: Skill from marketing-skill plugin488tier: extended489applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'490currency: 2026-05-03491lastReviewed: 2026-05-03492---493494## The 3 Pillars of AI Citability495496Every AI SEO decision flows from these three:497498### Pillar 1: Structure (Extractable)499500AI systems pull content in chunks. They don't read your whole article and then paraphrase it — they find the paragraph, list, or definition that directly answers the query and lift it.501502Your content needs to be structured so that answers are self-contained and extractable:503- Definition block for "what is X"504- Numbered steps for "how to do X"505- Comparison table for "X vs Y"506- FAQ block for "questions about X"507- Statistics with attribution for "data on X"508509Content that buries the answer in page 3 of a 4,000-word essay is not extractable. The AI won't find it.510511### Pillar 2: Authority (Citable)512513AI systems don't just pull the most relevant answer — they pull the most credible one. Authority signals in the AI era:514515- **Domain authority**: High-DA domains get preferential treatment (traditional SEO signal still applies)516- **Author attribution**: Named authors with credentials beat anonymous pages517- **Citation chain**: Your content cites credible sources → you're seen as credible in turn518- **Recency**: AI systems prefer current information for time-sensitive queries519- **Original data**: Pages with proprietary research, surveys, or studies get cited more — AI systems value unique data they can't get elsewhere520521### Pillar 3: Presence (Discoverable)522523AI systems need to be able to find and index your content. This is the technical layer:524525- **Bot access**: AI crawlers must be allowed in robots.txt (GPTBot, PerplexityBot, ClaudeBot, etc.)526- **Crawlability**: Fast page load, clean HTML, no JavaScript-only content527- **Schema markup**: Structured data (Article, FAQPage, HowTo, Product) helps AI systems understand your content type528- **Canonical signals**: Duplicate content confuses AI systems even more than traditional search529- **HTTPS and security**: AI crawlers won't index pages with security warnings530531---532type: skill533lifecycle: stable534inheritance: inheritable535name: marketing-skill-skill-18536description: Skill from marketing-skill plugin537tier: extended538applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'539currency: 2026-05-03540lastReviewed: 2026-05-03541---542543## Mode 2: Content Optimization544545### The Content Patterns That Get Cited546547These are the block types AI systems reliably extract. Add at least 2-3 per key page.548549See `references/content-patterns.md` for ready-to-use templates for each pattern.550551**Pattern 1: Definition Block**552The AI's answer to "what is X" almost always comes from a tight, self-contained definition. Format:553554> **[Term]** is [concise definition in 1-2 sentences]. [One sentence of context or why it matters].555556Placed within the first 300 words of the page. No hedging, no preamble. Just the definition.557558**Pattern 2: Numbered Steps (How-To)**559For process queries ("how do I X"), AI systems pull numbered steps almost universally. Requirements:560- Steps are numbered561- Each step is actionable (verb-first)562- Each step is self-contained (could be quoted alone and still make sense)563- 5-10 steps maximum (AI truncates longer lists)564565**Pattern 3: Comparison Table**566"X vs Y" queries almost always result in table citations. Two-column tables comparing features, costs, pros/cons — these get extracted verbatim. Format matters: clean markdown table with headers wins.567568**Pattern 4: FAQ Block**569Explicit Q&A pairs signal to AI: "this is the question, this is the answer." Mark up with FAQPage schema. Questions should exactly match how people phrase queries (voice search, question-style).570571**Pattern 5: Statistics With Attribution**572"According to [Source Name] ([Year]), X% of [population] [finding]." This format is extractable because it has a complete citation. Naked statistics without attribution get deprioritized — the AI can't verify the source.573574**Pattern 6: Expert Quote Block**575Attributed quotes from named experts get cited. The AI picks up: "According to [Name], [Role at Organization]: '[quote]'" as a citable unit. Build in a few of these per key piece.576577### Rewriting for Extractability578579When optimizing existing content:5805811. **Lead with the answer** — The first paragraph should contain the core answer to the target query. Don't save it for the conclusion.5825832. **Self-contained sections** — Every H2 section should be answerable as a standalone excerpt. If you have to read the introduction to understand a section, it's not self-contained.5845853. **Specific over vague** — "Response time improved by 40%" beats "significant improvement." AI systems prefer citable specifics.5865874. **Plain language summaries** — After complex explanations, add a 1-2 sentence plain language summary. This is what AI often lifts.5885895. **Named sources** — Replace "experts say" with "[Researcher Name], [Year]." Replace "studies show" with "[Organization] found in their [Year] survey."590591### Schema Markup for AI Discoverability592593Schema doesn't directly make you appear in AI results — but it helps AI systems understand your content type and structure. Priority schemas:594595| Schema Type | Use When | Impact |596|---|---|---|597| `Article` | Any editorial content | Establishes content as authoritative information |598| `FAQPage` | You have FAQ section | High — AI extracts Q&A pairs directly |599| `HowTo` | Step-by-step guides | High — AI uses step structure for process queries |600| `Product` | Product pages | Medium — appears in product comparison queries |601| `Organization` | Company pages | Medium — establishes entity authority |602| `Person` | Author pages | Medium — author credibility signal |603604Implement via JSON-LD in the page `<head>`. Validate at schema.org/validator.605606---607type: skill608lifecycle: stable609inheritance: inheritable610name: marketing-skill-skill-19611description: Skill from marketing-skill plugin612tier: extended613applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'614currency: 2026-05-03615lastReviewed: 2026-05-03616---617618## Proactive Triggers619620Flag these without being asked:621622- **AI bots blocked in robots.txt** — If GPTBot, PerplexityBot, or ClaudeBot are blocked, flag it immediately. Zero AI visibility is possible until fixed, and it's a 5-minute fix. This trumps everything else.623- **No definition block on target pages** — If the page targets informational queries but has no self-contained definition in the first 300 words, it won't win definitional AI Overviews. Flag before doing anything else.624- **Unattributed statistics** — If key pages contain statistics without named sources and years, they're less citable than competitor pages that do. Flag all naked stats.625- **Schema markup absent** — If the site has no FAQPage or HowTo schema on relevant pages, flag it as a quick structural win with asymmetric impact for process and FAQ queries.626- **JavaScript-rendered content** — If important content only appears after JavaScript execution, AI crawlers may not see it at all. Flag content that's hidden behind JS rendering.627628---629type: skill630lifecycle: stable631inheritance: inheritable632name: marketing-skill-skill-20633description: Skill from marketing-skill plugin634tier: extended635applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'636currency: 2026-05-03637lastReviewed: 2026-05-03638---639640## Communication641642All output follows the structured standard:643- **Bottom line first** — answer before explanation644- **What + Why + How** — every finding includes all three645- **Actions have owners and deadlines** — no "consider reviewing..."646- **Confidence tagging** — 🟢 verified (confirmed by citation test) / 🟡 medium (pattern-based) / 🔴 assumed (extrapolated from limited data)647648AI SEO is still a young field. Be honest about confidence levels. What gets cited can change as platforms evolve. State what's proven vs. what's pattern-matching.649650---651type: skill652lifecycle: stable653inheritance: inheritable654name: marketing-skill-skill-21655description: Skill from marketing-skill plugin656tier: extended657applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'658currency: 2026-05-03659lastReviewed: 2026-05-03660---661662---663type: skill664lifecycle: stable665inheritance: inheritable666name: analytics-tracking667description: Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality. Use when building a tracking plan from scratch, auditing...668tier: extended669applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'670currency: 2026-05-03671lastReviewed: 2026-05-03672---673674# Analytics Tracking675676You are an expert in analytics implementation. Your goal is to make sure every meaningful action in the customer journey is captured accurately, consistently, and in a way that can actually be used for decisions — not just for the sake of having data.677678Bad tracking is worse than no tracking. Duplicate events, missing parameters, unconsented data, and broken conversions lead to decisions made on bad data. This skill is about building it right the first time, or finding what's broken and fixing it.679680## Before Starting681682**Check for context first:**683If `marketing-context.md` exists, read it before asking questions. Use that context and only ask for what's missing.684685Gather this context:686687### 1. Current State688- Do you have GA4 and/or GTM already set up? If so, what's broken or missing?689- What's your tech stack? (React SPA, Next.js, WordPress, custom, etc.)690- Do you have a consent management platform (CMP)? Which one?691- What events are you currently tracking (if any)?692693### 2. Business Context694- What are your primary conversion actions? (signup, purchase, lead form, free trial start)695- What are your key micro-conversions? (pricing page view, feature discovery, demo request)696- Do you run paid campaigns? (Google Ads, Meta, LinkedIn — affects conversion tracking needs)697698### 3. Goals699- Building from scratch, auditing existing, or debugging a specific issue?700- Do you need cross-domain tracking? Multiple properties or subdomains?701- Server-side tagging requirement? (GDPR-sensitive markets, performance concerns)702703## How This Skill Works704705### Mode 1: Set Up From Scratch706No analytics in place — we'll build the tracking plan, implement GA4 and GTM, define the event taxonomy, and configure conversions.707708### Mode 2: Audit Existing Tracking709Tracking exists but you don't trust the data, coverage is incomplete, or you're adding new goals. We'll audit what's there, gap-fill, and clean up.710711### Mode 3: Debug Tracking Issues712Specific events are missing, conversion numbers don't add up, or GTM preview shows events firing but GA4 isn't recording them. Structured debugging workflow.713714---715type: skill716lifecycle: stable717inheritance: inheritable718name: marketing-skill-skill-23719description: Skill from marketing-skill plugin720tier: extended721applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'722currency: 2026-05-03723lastReviewed: 2026-05-03724---725726## GA4 Setup727728### Data Stream Configuration7297301. **Create property** in GA4 → Admin → Properties → Create7312. **Add web data stream** with your domain7323. **Enhanced Measurement** — enable all, then review:733 - ✅ Page views (keep)734 - ✅ Scrolls (keep)735 - ✅ Outbound clicks (keep)736 - ✅ Site search (keep if you have search)737 - ⚠️ Video engagement (disable if you'll track videos manually — avoid duplicates)738 - ⚠️ File downloads (disable if you'll track these in GTM for better parameters)7394. **Configure domains** — add all subdomains used in your funnel740741### Custom Events in GA4742743For any event not auto-collected, create it in GTM (preferred) or via gtag directly:744745**Via gtag:**746```javascript747gtag('event', 'signup_completed', {748 method: 'email',749 user_id: 'usr_abc123',750 plan_name: "trial"751});752```753754**Via GTM data layer (preferred — see GTM section):**755```javascript756window.dataLayer.push({757 event: 'signup_completed',758 signup_method: 'email',759 user_id: 'usr_abc123'760});761```762763### Conversions Configuration764765Mark these events as conversions in GA4 → Admin → Conversions:766- `signup_completed`767- `checkout_completed`768- `demo_requested`769- `trial_started` (if separate from signup)770771**Rules:**772- Max 30 conversion events per property — curate, don't mark everything773- Conversions are retroactive in GA4 — turning one on applies to 6 months of history774- Don't mark micro-conversions as conversions unless you're optimizing ad campaigns for them775776---777type: skill778lifecycle: stable779inheritance: inheritable780name: marketing-skill-skill-24781description: Skill from marketing-skill plugin782tier: extended783applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'784currency: 2026-05-03785lastReviewed: 2026-05-03786---787788## Conversion Tracking: Platform-Specific789790### Google Ads7917921. Create conversion action in Google Ads → Tools → Conversions7932. Import GA4 conversions (recommended — single source of truth) OR use the Google Ads tag7943. Set attribution model: **Data-driven** (if >50 conversions/month), otherwise **Last click**7954. Conversion window: 30 days for lead gen, 90 days for high-consideration purchases796797### Meta (Facebook/Instagram) Pixel7987991. Install Meta Pixel base code via GTM8002. Standard events: `PageView`, `Lead`, `CompleteRegistration`, `Purchase`8013. Conversions API (CAPI) strongly recommended — client-side pixel loses ~30% of conversions due to ad blockers and iOS8024. CAPI requires server-side implementation (Meta's docs or GTM server-side)803804---805type: skill806lifecycle: stable807inheritance: inheritable808name: marketing-skill-skill-25809description: Skill from marketing-skill plugin810tier: extended811applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'812currency: 2026-05-03813lastReviewed: 2026-05-03814---815816## Data Quality817818### Deduplication819820**Events firing twice?** Common causes:821- GTM tag + hardcoded gtag both firing822- Enhanced Measurement + custom GTM tag for same event823- SPA router firing pageview on every route change AND GTM page view tag824825Fix: Audit GTM Preview for double-fires. Check Network tab in DevTools for duplicate hits.826827### Bot Filtering828829GA4 filters known bots automatically. For internal traffic:8301. GA4 → Admin → Data Filters → Internal Traffic8312. Add your office IPs and developer IPs8323. Enable filter (starts as testing mode — activate it)833834### Consent Management Impact835836Under GDPR/ePrivacy, analytics may require consent. Plan for this:837838| Consent Mode setting | Impact |839|---------------------|--------|840| **No consent mode** | Visitors who decline cookies → zero data |841| **Basic consent mode** | Visitors who decline → zero data |842| **Advanced consent mode** | Visitors who decline → modeled data (GA4 estimates using consented users) |843844**Recommendation:** Implement Advanced Consent Mode via GTM. Requires CMP integration (Cookiebot, OneTrust, Usercentrics, etc.).845846Expected consent rate by region: 60-75% EU, 85-95% US.847848---849type: skill850lifecycle: stable851inheritance: inheritable852name: marketing-skill-skill-26853description: Skill from marketing-skill plugin854tier: extended855applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'856currency: 2026-05-03857lastReviewed: 2026-05-03858---859860## Output Artifacts861862| When you ask for... | You get... |863|--------------------|-----------|864| "Build a tracking plan" | Event taxonomy table (events + parameters + triggers), GA4 configuration checklist, GTM container structure |865| "Audit my tracking" | Gap analysis vs. standard SaaS funnel, data quality scorecard (0-100), prioritized fix list |866| "Set up GTM" | Tag/trigger/variable configuration for each event, container setup checklist |867| "Debug missing events" | Structured debugging steps using GTM Preview + GA4 DebugView + Network tab |868| "Set up conversion tracking" | Conversion action configuration for GA4 + Google Ads + Meta |869| "Generate tracking plan" | Run `scripts/tracking_plan_generator.py` with your inputs |870871---872type: skill873lifecycle: stable874inheritance: inheritable875name: marketing-skill-skill-27876description: Skill from marketing-skill plugin877tier: extended878applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'879currency: 2026-05-03880lastReviewed: 2026-05-03881---882883## Related Skills884885- **campaign-analytics**: Use for analyzing marketing performance and channel ROI. NOT for implementation — use this skill for tracking setup.886- **ab-test-setup**: Use when designing experiments. NOT for event tracking setup (though this skill's events feed A/B tests).887- **analytics-tracking** (this skill): covers setup only. For dashboards and reporting, use campaign-analytics.888- **seo-audit**: Use for technical SEO. NOT for analytics tracking (though both use GA4 data).889- **gdpr-dsgvo-expert**: Use for GDPR compliance posture. This skill covers consent mode implementation; that skill covers the full compliance framework.890891892---893type: skill894lifecycle: stable895inheritance: inheritable896name: app-store-optimization897description: App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store....898tier: extended899applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'900currency: 2026-05-03901lastReviewed: 2026-05-03902---903904# App Store Optimization (ASO)905906---907type: skill908lifecycle: stable909inheritance: inheritable910name: marketing-skill-skill-29911description: Skill from marketing-skill plugin912tier: extended913applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'914currency: 2026-05-03915lastReviewed: 2026-05-03916---917918## Metadata Optimization Workflow919920Optimize app store listing elements for search ranking and conversion.921922### Workflow: Optimize App Metadata9239241. Audit current metadata against platform limits:925 - Title character count and keyword presence926 - Subtitle/short description usage927 - Keyword field efficiency (iOS)928 - Description keyword density9292. Optimize title following formula:930 ```931 [Brand Name] - [Primary Keyword] [Secondary Keyword]932 ```9333. Write subtitle (iOS) or short description (Android):934 - Focus on primary benefit935 - Include secondary keyword936 - Use action verbs9374. Optimize keyword field (iOS only):938 - Remove duplicates from title939 - Remove plurals (Apple indexes both forms)940 - No spaces after commas941 - Prioritize by score9425. Rewrite full description:943 - Hook paragraph with value proposition944 - Feature bullets with keywords945 - Social proof section946 - Call to action9476. Validate character counts for each field9487. Calculate keyword density (target 2-3% primary)9498. **Validation:** All fields within character limits; primary keyword in title; no keyword stuffing (>5%); natural language preserved950951### Platform Character Limits952953| Field | Apple App Store | Google Play Store |954|-------|-----------------|-------------------|955| Title | 30 characters | 50 characters |956| Subtitle | 30 characters | N/A |957| Short Description | N/A | 80 characters |958| Keywords | 100 characters | N/A |959| Promotional Text | 170 characters | N/A |960| Full Description | 4,000 characters | 4,000 characters |961| What's New | 4,000 characters | 500 characters |962963### Description Structure964965```966PARAGRAPH 1: Hook (50-100 words)967├── Address user pain point968├── State main value proposition969└── Include primary keyword970971PARAGRAPH 2-3: Features (100-150 words)972├── Top 5 features with benefits973├── Bullet points for scanability974└── Secondary keywords naturally integrated975976PARAGRAPH 4: Social Proof (50-75 words)977├── Download count or rating978├── Press mentions or awards979└── Summary of user testimonials980981PARAGRAPH 5: Call to Action (25-50 words)982├── Clear next step983└── Reassurance (free trial, no signup)984```985986See: `references/platform-requirements.md`987988---989type: skill990lifecycle: stable991inheritance: inheritable992name: marketing-skill-skill-30993description: Skill from marketing-skill plugin994tier: extended995applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'996currency: 2026-05-03997lastReviewed: 2026-05-03998---9991000## App Launch Workflow10011002Execute a structured launch for maximum initial visibility.10031004### Workflow: Launch App to Stores100510061. Complete pre-launch preparation (4 weeks before):1007 - Finalize keywords and metadata1008 - Prepare all visual assets1009 - Set up analytics (Firebase, Mixpanel)1010 - Build press kit and media list10112. Submit for review (2 weeks before):1012 - Complete all store requirements1013 - Verify compliance with guidelines1014 - Prepare launch communications10153. Configure post-launch systems:1016 - Set up review monitoring1017 - Prepare response templates1018 - Configure rating prompt timing10194. Execute launch day:1020 - Verify app is live in both stores1021 - Announce across all channels1022 - Begin review response cycle10235. Monitor initial performance (days 1-7):1024 - Track download velocity hourly1025 - Monitor reviews and respond within 24 hours1026 - Document any issues for quick fixes10276. Conduct 7-day retrospective:1028 - Compare performance to projections1029 - Identify quick optimization wins1030 - Plan first metadata update10317. Schedule first update (2 weeks post-launch)10328. **Validation:** App live in stores; analytics tracking; review responses within 24h; download velocity documented; first update scheduled10331034### Pre-Launch Checklist10351036| Category | Items |1037|----------|-------|1038| Metadata | Title, subtitle, description, keywords |1039| Visual Assets | Icon, screenshots (all sizes), video |1040| Compliance | Age rating, privacy policy, content rights |1041| Technical | App binary, signing certificates |1042| Analytics | SDK integration, event tracking |1043| Marketing | Press kit, social content, email ready |10441045### Launch Timing Considerations10461047| Factor | Recommendation |1048|--------|----------------|1049| Day of week | Tuesday-Wednesday (avoid weekends) |1050| Time of day | Morning in target market timezone |1051| Seasonal | Align with relevant category seasons |1052| Competition | Avoid major competitor launch dates |10531054See: `references/aso-best-practices.md`10551056---1057type: skill1058lifecycle: stable1059inheritance: inheritable1060name: marketing-skill-skill-311061description: Skill from marketing-skill plugin1062tier: extended1063applyTo: '**/*marketing*,**/*seo*,**/*campaign*,**/*brand*'1064currency: 2026-05-031065lastReviewed: 2026-05-031066---10671068## Before/After Examples10691070### Title Optimization10711072**Productivity App:**10731074| Version | Title | Analysis |1075|---------|-------|----------|1076| Before | "MyTasks" | No keywords, brand only (8 chars) |1077| After | "MyTasks - Todo List & Planner" | Primary + secondary keywords (29 chars) |10781079**Fitness App:**10801081| Version | Title | Analysis |1082|---------|-------|----------|1083| Before | "FitTrack Pro" | Generic modifier (12 chars) |1084| After | "FitTrack: Workout Log & Gym" | Category keywords (27 chars) |10851086### Subtitle Optimization (iOS)10871088| Version | Subtitle | Analysis |1089|---------|----------|----------|1090| Before | "Get Things Done" | Vague, no keywords |1091| After | "Daily Task Manager & Planner" | Two keywords, benefit clear |10921093### Keyword Field Optimization (iOS)10941095**Before (Inefficient - 89 chars, 8 keywords):**1096```1097task manager, todo list, productivity app, daily planner, reminder app1098```10991100**After (Optimized - 97 chars, 14 keywords):**1101```1102task,todo,checklist,reminder,organize,daily,planner,schedule,deadline,goals,habit,widget,sync,team1103```11041105**Improvements:**1106- Removed spaces after commas (+8 chars)1107- Removed duplicates (task manager → task11081109…(truncated)