Skills ad-creative-analysis
Analyze ad creatives (images and videos) extracted from competitor research. Use when given a directory of ad images, video files, or transcripts to evaluate ad quality, score visual and messaging effectiveness, assign a scale score for viral/engagement potential, and generate a cross-creative pattern summary. Triggered by requests like "analyze these ads", "score these creatives", "what hooks are competitors using", "evaluate the ad library", "give me a scale score", "analyze the ad folder", or "what's working in these ads".
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/baitoxkevin/ad-creative-analysis" ~/.claude/skills/openclaw-skills-ad-creative-analysis && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/baitoxkevin/ad-creative-analysis" ~/.openclaw/skills/openclaw-skills-ad-creative-analysis && rm -rf "$T"
skills/baitoxkevin/ad-creative-analysis/SKILL.mdAd Creative Analysis
Analyze a directory of competitor or reference ad creatives. Produce a per-creative JSON analysis and a cross-creative pattern summary.
Step 1 — Accept Inputs
Expect one of:
- A directory path containing image files (
,.jpg
,.jpeg
,.png
,.webp
) and/or video files (.gif
,.mp4
,.mov
,.avi
).webm - An optional
file in that directory with fields per filename:metadata.json
,platform
,spend
,duration_days
,impressionsformat
If no path is given, ask the user: "Please provide the directory path containing the ad creatives."
List all files in the directory. Separate into image ads and video ads. Log the count of each before proceeding.
Step 2 — Analyze Image Ads
For each image file, use vision/image analysis to evaluate the following.
Design Evaluation
Assess these five dimensions:
- Visual hierarchy — Is the eye drawn to the right element first? Is there a clear focal point?
- Color usage — Does the palette create contrast, evoke emotion, and maintain brand coherence?
- Text overlay readability — Is copy legible at a glance? Font size, contrast, placement?
- CTA prominence — Is the call-to-action visually distinct, clearly placed, and easy to act on?
- Brand consistency — Logo placement, color adherence, font alignment with brand identity.
Image Scores (1-10 each)
— How fast and strongly does the creative stop a scroll?attention_grab
— How clearly is the core message communicated without needing context?message_clarity
— How compelling and action-oriented is the CTA?cta_strength
Image Extraction
Extract:
— The single core thing this ad is communicating (one sentence)primary_message
— One of: fear, aspiration, social_proof, urgency, curiosity, humor, trust, belonging, exclusivityemotion_appeal
— Inferred from visuals, copy, and context (e.g., "women 25-35 interested in fitness")target_audience
— The first piece of copy the eye lands on (headline or main text)hook_text
Step 3 — Analyze Video Ads
For each video file, analyze the video directly using vision. If a transcript file exists alongside the video (same filename,
.txt or .srt extension), read and use it.
Video Evaluation
Assess these four dimensions:
- Hook quality (first 3 seconds) — Does it immediately create curiosity, shock, or recognition? Would someone stop scrolling?
- Script structure — Does it follow a logical persuasion arc (problem, solution, proof, CTA)?
- Pacing — Is the editing rhythm appropriate for platform and audience? Not too slow or rushed?
- CTA placement — Is the call-to-action clear, timed well, and repeated if needed?
Video Scale Score (1-10)
Assign a single
scale_score representing the ad's viral and engagement potential at scale:
- 9-10: Exceptional hook, tight script, clear CTA. Likely to perform well at high spend.
- 7-8: Strong fundamentals, minor weaknesses. Good candidate for testing.
- 5-6: Average execution. Needs a stronger hook or clearer CTA before scaling.
- 3-4: Core idea present but poor execution. Requires significant rework.
- 1-2: Unlikely to perform. Fundamental issues with hook, message, or CTA.
See
references/analysis-framework.md for detailed scale score rubric.
Video Extraction
Extract:
— Exact words spoken or shown in the first 3 secondshook_text
— One of: question, bold_claim, pain_point, curiosity_gap, social_proof, before_after, demonstrationhook_type
— The core value proposition stated in the admain_message
— One of: fear, aspiration, social_proof, urgency, curiosity, humor, trust, belonging, exclusivityemotion_appeal
— The exact CTA spoken or showncta_text
— When the CTA appears (e.g., "end", "middle", "repeated throughout")cta_timing
Step 4 — Universal Metadata (All Ad Types)
For every creative, regardless of type, record:
— The file namefilename
— One of: single_image, carousel, video, story, reelad_format
— Detected or inferred (e.g.,aspect_ratio
,1:1
,9:16
,16:9
)4:5
— Width x height in pixels if detectabledimensions
— Inferred from content and CTA:ad_objective
,awareness
, orconsiderationconversion
— Which platforms this format and ratio suits best (e.g.,platform_fit
)["Instagram Feed", "Facebook Feed"]
Step 5 — Output Per-Creative JSON
Output one JSON object per creative. Print all results together in a single JSON array.
Image ad example structure
{ "filename": "ad_001.jpg", "type": "image", "ad_format": "single_image", "aspect_ratio": "1:1", "dimensions": "1080x1080", "ad_objective": "conversion", "platform_fit": ["Instagram Feed", "Facebook Feed"], "scores": { "attention_grab": 8, "message_clarity": 7, "cta_strength": 9 }, "primary_message": "Lose 10kg in 30 days without giving up your favourite food", "emotion_appeal": "aspiration", "target_audience": "Women 28-45 who have tried dieting before", "hook_text": "Still counting calories? There's a better way." }
Video ad example structure
{ "filename": "ad_002.mp4", "type": "video", "ad_format": "video", "aspect_ratio": "9:16", "dimensions": "1080x1920", "ad_objective": "consideration", "platform_fit": ["TikTok", "Instagram Reels", "Facebook Reels"], "scale_score": 8, "hook_text": "I was $40,000 in debt until I found this", "hook_type": "before_after", "main_message": "This budgeting app helped me pay off debt in 18 months", "emotion_appeal": "fear", "cta_text": "Download free — link in bio", "cta_timing": "end" }
Step 6 — Generate Cross-Creative Summary
After analyzing all creatives, produce a
summary object appended to the output. Include:
— Count of creatives analyzed (split by type)total_analyzed
— Filenames of the top 3 creatives by score (images by average score, videos by scale score)top_performers
— Most frequently detected emotion appeal across all adsdominant_emotion
— List of recurring hook patterns or phrases observedcommon_hooks
— Most common CTA structures seen (e.g., "verb + free + urgency")cta_patterns
— Most common inferred ad objectivedominant_objective
— Count per ad formatformat_breakdown
— 3-5 actionable observations for improving or scaling these creativesrecommendations
Summary example structure
{ "summary": { "total_analyzed": { "images": 5, "videos": 3 }, "top_performers": ["ad_004.jpg", "ad_002.mp4", "ad_007.jpg"], "dominant_emotion": "aspiration", "common_hooks": [ "Question-based hook challenging a common belief", "Before/after framing in first sentence" ], "cta_patterns": [ "Shop now + scarcity signal", "Free trial + no credit card" ], "dominant_objective": "conversion", "format_breakdown": { "single_image": 4, "video": 3, "carousel": 1 }, "recommendations": [ "Hooks are strong but CTAs lack urgency — test adding 'today only' or limited quantity", "All videos open with talking head — test a demonstration hook for variety", "Aspiration dominates — test a fear/pain angle to broaden audience response" ] } }
Step 7 — Handle Missing or Unreadable Files
If a file cannot be analyzed (corrupted, unsupported format, too dark/blurry for vision):
- Include the filename in the output with
and a brief"status": "unreadable"
field"reason" - Continue analyzing remaining files, do not stop
Reference Material
Consult
skills/ad-creative-analysis/references/analysis-framework.md for:
- Detailed scoring rubrics per metric
- Ad psychology pattern definitions
- Hook formula templates
- Extended example output