competitor-ads-research
Skill9 starsChanged 2 months agoMITView on GitHub
Extrait et analyse les publicités Meta (Facebook + Instagram) des concurrents d'un client depuis la Meta Ads Library, puis génère un brief stratégique au branding. Output = bibliothèque de créatives téléchargées (PNG/MP4), CSV des copies, analyse markdown des angles/patterns/hooks gagnants, et document .docx final livrable client. Adapté du skill ComposioHQ "competitive-ads-extractor" et calibré sur le process de l'agence (5 angles : Douleur/Désir/Preuve/Contre-intuitif/Urgence). Use when the user asks to "analyse les pubs des concurrents", "scrape les ads de {concurrent}", "veille concurrentielle Meta {client}", "competitor ads research", "ad library {marque}", "extraire les pubs Facebook de {marque}", "brief concurrents {client}". Trigger phrases : "analyse concurrentielle Meta", "scrape ad library", "veille pubs Facebook", "research concurrents Meta Ads", "spy ads {marque}".
In this repository20 other files it gives its agents.
- campaign-proposalSkill
- client-onboarding-flowSkill
- cold-call-expertSkill
- cold-traffic-landing-pageSkill
- creative-briefSkill
- creative-staticsSkill
- creative-statics-v2Skill
- data-scrapingSkill
- deep-searchSkill
- devis-vercel-generatorSkill
- meta-ads-copywriterSkill
- meta-ads-creative-frameworkSkill
- meta-campaign-launcherSkill
- meta-lead-notificationsSkill
- outbound-sequence-writerSkill
- rework-campaignSkill
- sales-call-analyzerSkill
- sales-follow-up-sequenceSkill
- vsl-copywriterSkill
- vsl-end-to-end-builderSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 151
Recommandation 1: : Test l'angle "[X]" en format [Y] avec hook "[Z]"
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Competitor Meta Ads Research
Skill qui extrait les publicités Meta des concurrents d'un client, les télécharge, les catégorise, identifie les patterns gagnants et produit un brief stratégique au branding. Adapté du skill open-source ComposioHQ/competitive-ads-extractor et calibré sur le process de l'agence (angles, structure de campagne, livrable .docx final).
Crédit : structure inspirée du skill competitive-ads-extractor de ComposioHQ + use case original de Sumant Subrahmanya (Lenny's Newsletter).
🎯 Quand utiliser ce skill
Trigger sur :
- "Analyse les pubs Meta des concurrents de {client}"
- "Scrape les ads de {concurrent}"
- "Veille concurrentielle Meta {client}"
- "Competitor ads research {client}"
- "Ad library {marque}"
- "Spy ads {marque}"
- "Extraire les pubs Facebook de {marque}"
- "Brief concurrents Meta {client}"
NE PAS trigger pour :
- Écrire des pubs originales pour le client →
meta-ads-copywriter - Faire un audit des ads du client lui-même → futur skill
meta-ads-audit - Recherche client avatar / ICP →
deep-search
⚙️ Stack technique requise
Ce skill s'appuie sur le MCP server trypeggy/facebook-ads-library-mcp qui doit être installé et configuré dans Claude Code AVANT utilisation.
Outils MCP attendus
Si le MCP est installé, ces outils sont disponibles :
mcp__fb_ad_library__get_meta_platform_id— résout nom de marque → page IDmcp__fb_ad_library__get_meta_ads— extrait les ads actives d'une pagemcp__fb_ad_library__analyze_ad_image— analyse vision des imagesmcp__fb_ad_library__analyze_ad_video— analyse vidéo (Gemini)mcp__fb_ad_library__analyze_ad_videos_batch— batch vidéo (économie tokens)mcp__fb_ad_library__search_cached_media— recherche médias en cache
Si le MCP n'est pas installé
Le skill bascule en mode fallback dégradé :
- Demande à l'utilisateur les URLs Meta Ads Library directement (
https://www.facebook.com/ads/library/?id=...) - Utilise WebFetch sur les pages Meta Ads Library
- Extrait manuellement texte + screenshots descriptifs
- Indique clairement dans le livrable que l'analyse est en mode dégradé sans téléchargement réel des médias
Prérequis API (côté MCP)
- ScrapeCreators API key (obligatoire pour le MCP) —
scrapecreators.com - Google Gemini API key (optionnelle, pour analyse vidéo) —
aistudio.google.com
📦 Pipeline 6 phases
Phase 1 — Inputs & cadrage
Le user doit fournir (ou tu dois demander) :
- Nom du client (pour structurer les outputs)
- Marché / niche du client (ex : closing francophone, SaaS B2B, coaching mindset...)
- Liste des concurrents à analyser (3 à 10 marques) — par nom de page Facebook
- Géographie cible (FR / BE / CH / international)
- Profondeur d'analyse : Quick (10 ads/concurrent) / Standard (25 ads) / Deep (50+ ads)
- Période : Active maintenant / Last 30 days / Last 90 days
Si certaines infos manquent, demander avant de lancer.
Phase 2 — Résolution des marques (MCP)
Pour chaque concurrent :
- Appeler
mcp__fb_ad_library__get_meta_platform_idavec le nom de la marque - Stocker le
page_idcorrespondant - En cas d'ambiguïté (plusieurs résultats), demander à l'utilisateur de confirmer
Phase 3 — Extraction des ads (MCP)
Pour chaque page_id :
- Appeler
mcp__fb_ad_library__get_meta_adsavec :page_idcountry(filtré sur la géo cible)ad_active_status: ACTIVElimit: selon profondeur (10 / 25 / 50)
- Récupérer pour chaque ad : ID, texte primaire, headline, description, CTA, format, durée d'activité, URL média, dates start/stop
- Indicateur "winner" : ad active depuis > 21 jours = signal fort de performance (règle maison)
Phase 4 — Analyse des créatives (MCP)
- Téléchargement local des médias dans
creatives/[concurrent]/ - Pour images :
mcp__fb_ad_library__analyze_ad_image→ extraction texte, couleurs, composition, hook visuel - Pour vidéos :
mcp__fb_ad_library__analyze_ad_videos_batch(en batch pour économiser les tokens) → hook 3s, structure, CTA, ton, format - Catégorisation automatique de chaque ad selon les 5 angles :
- Douleur (Pain) — verbalise la galère du prospect
- Désir (Dream) — peint la transformation finale
- Preuve (Social Proof) — case study, testimonial, chiffre
- Contre-intuitif (Pattern Interrupt) — casse une croyance commune
- Urgence (Scarcity / FOMO) — deadline, places limitées
Phase 5 — Détection des patterns gagnants
Pour chaque concurrent ET en agrégé sur tous les concurrents :
- Top hooks (premiers 3 secondes / première phrase de la primary text)
- Top CTAs (les plus fréquents et ceux des winners > 21j)
- Distribution par angle (% des ads qui jouent quel angle)
- Distribution par format (FaceCam vs UGC vs Static vs Carousel vs VSL)
- Frameworks de copy récurrents (extraction des structures : Hook → Problem → Solution → CTA, etc.)
- Pain points partagés (problèmes que TOUS les concurrents ciblent — angle saturé)
- White spaces (angles qu'AUCUN concurrent n'exploite — opportunités pour l'agence)
Phase 6 — Génération du livrable
Trois outputs sont produits dans projects/{client}/competitor-research/{date}/ :
creatives/[concurrent]/— toutes les images et vidéos téléchargéesdata.csv— une ligne par ad avec colonnes :concurrent | ad_id | format | angle | hook | primary_text | headline | cta | jours_actif | winner | media_pathanalysis.md— analyse markdown détaillée (insights bruts, sert de source au .docx)Brief-Concurrents-{Client}-{date}.docx— livrable final client au branding minimal (titre noir sur blanc, structure simple, généré avecassets/build_research_brief.py)
📄 Structure du document final (.docx)
Le brief client suit une structure fixe, ultra-simple, anti style IA :
Section 1 — Brief stratégique
1 paragraphe court (4-7 phrases). Contexte, marché analysé, nombre de concurrents, nombre d'ads analysées, période.
Section 2 — Vue d'ensemble du marché
- Total ads analysées
- Concurrents et volume d'ads par concurrent
- Distribution par angle (Douleur/Désir/Preuve/Contre-intuitif/Urgence)
- Distribution par format
Section 3 — Patterns gagnants détectés
Pour chaque pattern (3-5 patterns max) :
- Nom du pattern
- Combien de concurrents l'utilisent
- Exemples concrets (1-2 verbatims d'ads winners)
- Pourquoi ça marche (1 phrase)
Section 4 — Angles saturés vs white spaces
- Saturé : angles que TOUS les concurrents jouent → à éviter ou à twister
- White space : angles qu'AUCUN concurrent n'exploite → opportunité pour l'agence
Section 5 — Top hooks détectés
Liste de 8-12 hooks verbatim extraits des ads winners (>21j d'activité). Pas d'analyse, juste les hooks bruts.
Section 6 — Top CTAs détectés
Liste de 5-8 CTAs récurrents.
Section 7 — Recommandations
3-5 recommandations actionnables pour la prochaine campagne du client. Format direct :
- Recommandation 1 : Test l'angle "[X]" en format [Y] avec hook "[Z]"
- Recommandation 2 : Évite l'angle "[saturé]" — déjà couvert par 4 concurrents
- etc.
Annexe — Liste des ads analysées
Tableau simple : Concurrent | Ad ID | Angle | Hook | Jours actif | Winner ✓
📁 Structure du skill
competitor-ads-research/
├── SKILL.md ← orchestration (ce fichier)
├── frameworks/
│ ├── 5-angles.md ← référence des 5 angles + critères de classification
│ ├── winner-detection-rules.md ← règles "ad winner" (>21j, fréquence, etc.)
│ └── pattern-extraction.md ← comment extraire les patterns récurrents
├── templates/
│ ├── brief-research-structure.md ← template markdown source du livrable
│ └── csv-schema.md ← schéma exact du data.csv
├── prompts/
│ ├── classify-angle.md ← prompt pour classifier une ad dans un des 5 angles
│ └── extract-hook.md ← prompt pour extraire le hook 3s
└── assets/
└── build_research_brief.py ← générateur .docx ultra-simple🎯 Règles non négociables (agence)
- Toujours classifier en 5 angles, jamais inventer d'autres catégories
- Toujours flagger les "winners" (> 21 jours d'activité) — c'est notre signal #1
- Toujours identifier les white spaces — c'est ce qui justifie nos campagnes
- Le brief final est en français, ton direct, anti style IA
- Pas plus de 5 recommandations dans le doc final (sinon noyé)
- Le .docx est noir sur blanc Calibri — branding minimal de l'agence (titre uniquement)
- Confidentialité : ne JAMAIS recommander de copier verbatim. On s'inspire, on twiste, on dépasse.
💬 Exemples de prompts d'activation
Quick research (1 concurrent)
Analyse les pubs Meta de Closer Evolution pour le projet TopCo.
10 ads max, France, actives uniquement.Standard research (set concurrentiel)
Veille concurrentielle Meta pour TopCo :
- Closer Evolution
- OFAP
- Closing Mastery
- Closing Influence
25 ads par concurrent, France + Belgique, last 90 days.Deep research multi-marché
Research concurrents Meta pour le client {X} :
6 concurrents [liste], 50 ads chacun, FR/BE/CH, 90 derniers jours.
Focus sur l'angle "transformation 6 mois".✅ Quality gate (avant livraison)
- Tous les concurrents demandés ont été résolus en
page_id - Au moins 80% des ads attendues ont été extraites (vs profondeur demandée)
- Tous les médias sont téléchargés dans
creatives/[concurrent]/ data.csvcontient une ligne par ad avec toutes les colonnes- Chaque ad est classifiée dans UN des 5 angles (pas "Autre")
- Les winners (>21j) sont flaggés
- L'analyse markdown identifie au moins 3 patterns gagnants
- L'analyse markdown identifie au moins 1 white space
- Le
.docxfinal ne dépasse pas 4 pages (sinon trop long) - Aucune phrase IA dans le doc final ("Dans ce brief, nous allons...", "Il est important de noter...")
- Le doc s'ouvre proprement dans Word et reste 100% modifiable
📌 Style éditorial du doc final
À FAIRE :
- Phrases courtes (15-25 mots)
- Verbatims directs des ads (entre guillemets)
- Chiffres concrets (X ads sur Y concurrents)
- Recommandations affirmatives ("Lance X" pas "Tu pourrais envisager X")
À NE PAS FAIRE :
- "Cette analyse révèle que..."
- "Il est intéressant de noter que..."
- "Nous observons une tendance..."
- Listes à puces de plus de 8 items
- Émojis (sauf si demande explicite)
- Anglicismes inutiles ("pain points" → "douleurs", "winners" → "ads gagnantes")
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

