Help us improve
Share bugs, ideas, or general feedback.
From motion-creative
Analyze creative performance — what's working, what's scaling, what's dying. Multi-metric analysis with demographic breakdown and actionable recommendations.
npx claudepluginhub motion-creative/motion-creative-plugin --plugin motion-creativeHow this skill is triggered — by the user, by Claude, or both
Slash command
/motion-creative:performance-analysisopusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze creative performance using the creative-strategist skill methodology — multi-metric landscape, demographic overlay, and creative taxonomy. Produce an actionable report of what's working, what's scaling, and what's dying.
Core creative strategy reasoning methodology for the motion-creative plugin. This is a reference skill — it defines how to think about performance, competitive intelligence, and concept generation. Other skills read this for methodology. Only invoke directly when the user asks about the creative strategy framework itself or when no action skill matches. For specific tasks, route to: analyze-ad, performance-analysis, create-concepts, build-brief, write-hooks, find-iterations, industry-trends, qa-feedback, weekly-performance, etc.
Assesses ad creative fatigue risk across channels like Meta, Google, TikTok Ads. Scores fatigue, predicts decline, recommends refreshes, generates A/B test plans for underperformers.
Audits marketing performance across Meta Ads, TikTok Ads, Google Ads, and organic channels. Diagnoses root causes of issues like high CPMess or low ROAS, benchmarks against industry data, and outputs a 48h action plan plus weekly optimization checklist.
Share bugs, ideas, or general feedback.
Analyze creative performance using the creative-strategist skill methodology — multi-metric landscape, demographic overlay, and creative taxonomy. Produce an actionable report of what's working, what's scaling, and what's dying.
Before pulling data:
/create-concepts), find iterations (/find-iterations), or dive into a specific ad (/analyze-ad).If the user provides clear, specific intent (e.g., "full performance analysis for last 30 days"), skip questions and deliver.
--datePreset: Time window for analysis. Default: LAST_30_DAYS. Options: TODAY, YESTERDAY, THIS_MONTH, LAST_MONTH, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, LAST_90_DAYS.--limit: Max creatives per metric query. Default: 10.--metric: Optional focus metric (SPEND, SCALING, HOOK, CPC, CTR_ALL, PURCHASES, PURCHASE_VALUE, or the workspace's goalMetric). If provided, lead the analysis with this metric. If not, use the standard multi-metric approach.${CLAUDE_PLUGIN_ROOT}/motion-creative.config.md for org-specific configuration. If the file does not exist, use these defaults and suggest the user run /customize:
primary_kpi: use goalMetric from first get_creative_insights responsedefault_date_preset: LAST_30_DAYSdefault_creative_limit: 10demographic_focus: bothprimary_metrics / secondary_metrics / exclude_metrics: auto-detectpriority_glossary_categories: use allget_workspace_brandget_auth_context() to resolve workspaceId (use settings workspace_id as fallback context).primary_kpi and no --metric was specified, use the primary KPI to lead the analysis.target_demographics, weight demographic analysis toward those segments.primary_metrics, ensure those metrics lead the analysis. If secondary_metrics, include after primary. If exclude_metrics, omit those from all queries and output.default_date_preset from settings as the datePreset for all calls unless the user provided a --datePreset argument. Use default_creative_limit from settings as the limit unless the user provided a --limit argument.If auth fails, stop and tell the user to check their Motion workspace connection.
Read the creative-strategist skill and references/performance-metrics.md for metric definitions and interpretation patterns.
The SPEND call must come first (it returns goalMetric and spendThreshold). Then dispatch remaining calls in parallel.
get_creative_insights(workspaceId, insightType="SPEND", datePreset, limit, withAggregatedInsights=true) — spend leaders + account-level aggregates→ Extract goalMetric and spendThreshold from the response. If goalMetric.isCustomConversion is true, find the matching conversion in the customConversions array and include ["{id}_cost", "{id}_count"] in tableKPIs on all subsequent calls. Use goalMetric for all efficiency-sorted calls.
get_creative_insights(workspaceId, insightType="SCALING", datePreset, limit) — what's gaining/losing allocationget_creative_insights(workspaceId, insightType=goalMetric, datePreset, limit) — efficiency leaders by workspace goal metricthumbstop_ratio descending. Do NOT use insightType="HOOK" — it returns the same ranking as SCALING and misses high-spend proven performers.get_demographic_breakdown(workspaceId, datePreset) — age/gender performanceget_glossary_values(workspaceId) — creative taxonomy categoriesIf --metric is specified, ensure that metric is included and prioritized in the analysis.
For each creative appearing across the results, collect:
campaignName, campaignIds, adsetName, adsetIdsCross-reference to identify:
This step is critical — campaign and ad set context changes the meaning of every metric.
references/campaign-context.mdConsult references/campaign-context.md for campaign tier naming heuristics, ad set strategy signals, and structural issue patterns.
Use glossary values to tag each creative with its taxonomy categories. Then analyze:
Consult references/performance-metrics.md for metric combination stories.
From the demographic breakdown:
If config contains brand guidelines (Brand Voice, Creative Do's/Don'ts, Target Audience):
If settings contain priority_glossary_categories, prioritize those categories in pattern extraction (3b).
Before writing findings, check each insight against references/insight-quality.md. Every finding must explain the "why" — what's happening in the viewer's mind — not just state a metric.
Open by reflecting what data you pulled: time window, number of creatives analyzed, any filters applied. Keep it conversational — one sentence, not a formatted log.
If You Read Nothing Else 3-5 bullets. The most actionable findings. Lead with what changed or what's surprising. Every bullet should make the reader want to do something.
Top Performers Creatives with the best combination of goal metric efficiency + meaningful spend. Not just highest efficiency (which could be low-spend noise). Show the creative, its key metrics, which campaign/ad set it runs in, and WHY it works — the behavioral insight. Contextualize efficiency against the campaign tier (e.g., below-breakeven on cold prospecting may be acceptable if LTV justifies it; below-breakeven on scaling is a problem).
Scaling Winners Creatives gaining spend allocation with stable or improving efficiency. These are the ones the algorithm is betting on. Note what they have in common. Flag whether they're scaling in an uncapped environment (strong signal) or a cost-cap environment (inflated signal).
Efficiency Standouts Strong goalMetric but not yet scaling — hidden gems that deserve more budget. Explain why they might be underexploited. Note their campaign context — a gem in a cost-cap ad set needs uncapped validation before you declare it a winner. Recommend the graduation path: which campaign/ad set to move it to next.
Campaign Structure Issues Structural problems in how campaigns and ad sets are organized that work against performance. This section surfaces:
Declining Creatives Losing share or performance dropping. Don't just flag them — recommend what to do: refresh, pause, test new hooks on the same body, etc. If a declining creative sits in a "Top performers" ad set, explicitly recommend removal — it's dragging down the ad set.
Demographic Sweet Spots Where performance concentrates by age/gender. Which segments are strongest, which are underserved, and what that means for creative strategy.
Recommendations 3-5 specific next actions. Each recommendation must be: