Ad Creative Analysis
by @baitoxkevin
Analyze ad creatives (images and videos) extracted from competitor research. Use when given a directory of ad images, video files, or transcripts to evaluate...
clawhub install ad-creative-analysisπ About This Skill
name: ad-creative-analysis description: 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".
Ad 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:
.jpg, .jpeg, .png, .webp, .gif) and/or video files (.mp4, .mov, .avi, .webm)metadata.json file in that directory with fields per filename: platform, spend, duration_days, impressions, formatIf 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:
1. Visual hierarchy β Is the eye drawn to the right element first? Is there a clear focal point? 2. Color usage β Does the palette create contrast, evoke emotion, and maintain brand coherence? 3. Text overlay readability β Is copy legible at a glance? Font size, contrast, placement? 4. CTA prominence β Is the call-to-action visually distinct, clearly placed, and easy to act on? 5. Brand consistency β Logo placement, color adherence, font alignment with brand identity.
Image Scores (1-10 each)
attention_grab β How fast and strongly does the creative stop a scroll?message_clarity β How clearly is the core message communicated without needing context?cta_strength β How compelling and action-oriented is the CTA?Image Extraction
Extract:
primary_message β The single core thing this ad is communicating (one sentence)emotion_appeal β One of: fear, aspiration, social_proof, urgency, curiosity, humor, trust, belonging, exclusivitytarget_audience β Inferred from visuals, copy, and context (e.g., "women 25-35 interested in fitness")hook_text β The first piece of copy the eye lands on (headline or main 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:
1. Hook quality (first 3 seconds) β Does it immediately create curiosity, shock, or recognition? Would someone stop scrolling? 2. Script structure β Does it follow a logical persuasion arc (problem, solution, proof, CTA)? 3. Pacing β Is the editing rhythm appropriate for platform and audience? Not too slow or rushed? 4. 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:
See references/analysis-framework.md for detailed scale score rubric.
Video Extraction
Extract:
hook_text β Exact words spoken or shown in the first 3 secondshook_type β One of: question, bold_claim, pain_point, curiosity_gap, social_proof, before_after, demonstrationmain_message β The core value proposition stated in the ademotion_appeal β One of: fear, aspiration, social_proof, urgency, curiosity, humor, trust, belonging, exclusivitycta_text β The exact CTA spoken or showncta_timing β When the CTA appears (e.g., "end", "middle", "repeated throughout")Step 4 β Universal Metadata (All Ad Types)
For every creative, regardless of type, record:
filename β The file namead_format β One of: single_image, carousel, video, story, reelaspect_ratio β Detected or inferred (e.g., 1:1, 9:16, 16:9, 4:5)dimensions β Width x height in pixels if detectablead_objective β Inferred from content and CTA: awareness, consideration, or conversionplatform_fit β Which platforms this format and ratio suits best (e.g., ["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:
total_analyzed β Count of creatives analyzed (split by type)top_performers β Filenames of the top 3 creatives by score (images by average score, videos by scale score)dominant_emotion β Most frequently detected emotion appeal across all adscommon_hooks β List of recurring hook patterns or phrases observedcta_patterns β Most common CTA structures seen (e.g., "verb + free + urgency")dominant_objective β Most common inferred ad objectiveformat_breakdown β Count per ad formatrecommendations β 3-5 actionable observations for improving or scaling these creativesSummary 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):
"status": "unreadable" and a brief "reason" fieldReference Material
Consult skills/ad-creative-analysis/references/analysis-framework.md for: