{
 "schema": "aiblocks-page/1",
 "id": "competitor-ad-theme-and-gap-mapper",
 "type": "skill",
 "name": "Competitor ad theme and gap mapper",
 "summary": "Sort competitor Meta ads into thirteen themes, see which lanes are crowded or open, and get ranked ad briefs to test next.",
 "headline": "Competitor ad theme and gap mapper",
 "subhead": "Give it ads you collected from two to five competitors in the Meta Ad Library, plus your brand facts. It sorts each ad into one of thirteen themes and compares formats and messages. You get a heat map of crowded and open lanes and five to seven ranked briefs.",
 "job": {
  "id": "study-competitors",
  "name": "Study competitor ads"
 },
 "level": "intermediate",
 "thinking": "medium",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-25",
 "inputs": [
  {
   "type": "ad_breakdowns",
   "required": true,
   "label": "Ad breakdowns",
   "what": "structured teardown of reference ads (hook, angle, format, offer, proof)"
  },
  {
   "type": "competitor_set",
   "required": false,
   "label": "Competitor set",
   "what": "competitor profiles and the gaps worth owning"
  },
  {
   "type": "brand_brain",
   "required": false,
   "label": "Brand brain",
   "what": "the brand's facts, voice, products, offers (with effective dates), claims register, personas and look"
  }
 ],
 "outputs": [
  {
   "type": "ad_breakdowns",
   "required": true,
   "label": "Ad breakdowns",
   "what": "structured teardown of reference ads (hook, angle, format, offer, proof)"
  },
  {
   "type": "brief",
   "required": false,
   "label": "Brief",
   "what": "a creative brief: goal, audience, angle, offer, mandatory claims (by ID), formats"
  }
 ],
 "you_give": [
  "Your brand name, what you sell and what you do well",
  "Two to five competitor names or websites",
  "Their ads from the Meta Ad Library, as screenshots or pasted text, with start dates if shown",
  "Your current ad strategy and budget range (optional)"
 ],
 "you_get": [
  "A landscape table with ad count, formats, main theme and tone for each competitor",
  "A heat map of thirteen themes across your competitors and your brand",
  "The crowded, contested, emerging and open lanes",
  "Five to seven ad briefs with an exact hook line and a priority for each",
  "A one-line positioning statement and your top three insights"
 ],
 "use_when": [
  "You are starting with a new brand or client and need to see the competitive field before the first ad sprint.",
  "Your own ads have stopped improving and you want a lane nobody else is using.",
  "You are launching a product and want to see how rivals frame similar ones.",
  "It is quarterly review time and you want to check whether the gaps moved."
 ],
 "skip_when": [
  "You want to count ads, formats and ad age from an export: use the Competitor ad format analyst.",
  "You want to check gaps against what buyers say in reviews, with a score: use the Competitor ad opportunity finder.",
  "You want to split winning ads into message and look: use the Successful ad pattern analyst.",
  "Your competitors run no Meta ads, or you sell to other businesses with no ads to study: use a search or sales-data tool instead."
 ],
 "output_sample": {
  "input": [
   "Your brand name, what you sell and what you do well",
   "Two to five competitor names",
   "Their ads from the Meta Ad Library, with start dates and formats",
   "Your current ad strategy (optional)"
  ],
  "prerequisites": [
   "Access to facebook.com/ads/library to collect the ads by hand"
  ],
  "output": [
   {
    "name": "Landscape",
    "contains": "Each competitor's ad count, format mix, main theme and tone. Spend only when the library shows it."
   },
   {
    "name": "Theme heat map",
    "contains": "Thirteen themes across all competitors and your brand, each marked crowded, contested, emerging or open."
   },
   {
    "name": "Top 3 insights",
    "contains": "The three things the pattern says about your category."
   },
   {
    "name": "Ad briefs",
    "contains": "Five to seven briefs for open lanes, each with concept, format, exact hook, body, call to action and priority."
   },
   {
    "name": "Positioning statement",
    "contains": "One sentence on where your brand can stand apart."
   },
   {
    "name": "Sources and missing",
    "contains": "The ads and dates it used, and what would sharpen the result."
   }
  ]
 },
 "output_shape": "LANDSCAPE\ncompetitor | ads seen | formats | main theme | tone | spend (only if the library shows it)\n\nTHEME HEAT MAP\ntheme | <competitor 1> | <competitor 2> | <brand> | status (Crowded | Contested | Emerging | Open)\n\nTOP 3 INSIGHTS\n1. <insight>\n\nBRIEFS (5 to 7)\nOPPORTUNITY <n>: <name>\nWhy: <gap>  Concept: <theme>  Format: <video | static | carousel>\nHook: \"<exact line>\"  Body: <2 to 3 sentences>  CTA: <action>  Priority: <HIGH | MEDIUM | LOW>\n\nPOSITIONING STATEMENT\n<one sentence>\n\nSOURCES / MISSING",
 "how_to_use": [
  "Open the skill in your AI. Claude, ChatGPT and Gemini all work. Add it to your AI, or copy it and paste it into a new chat.",
  "Go to facebook.com/ads/library. Search each competitor, filter to your country and Active ads.",
  "For each ad, take a screenshot or paste its text. Note the start date, format, headline, offer and landing page.",
  "Paste your brand name, what you sell, and the ads. Say what you do well.",
  "Check the theme tags against the ads. Fix any wrong tag and ask it to redo the heat map.",
  "Pick the top brief. Turn it into a full creative brief or a script."
 ],
 "checks": [],
 "next": [
  {
   "name": "Competitor-inspired video script writer",
   "url": "https://useaiblocks.com/skills/competitor-idea-video-script",
   "why": "Study competitor ads"
  },
  {
   "name": "Competitor video script adapter",
   "url": "https://useaiblocks.com/skills/competitor-video-ad-script",
   "why": "Study competitor ads"
  },
  {
   "name": "Competitor brand association mapper",
   "url": "https://useaiblocks.com/skills/owned-word-mapper",
   "why": "Study competitor ads"
  },
  {
   "name": "Competitor saturation checker",
   "url": "https://useaiblocks.com/skills/competitor-saturation-checker",
   "why": "Competitor saturation checker"
  }
 ],
 "source": null,
 "credits": [],
 "files": [
  "references/competitor-ads-research-13-theme-guide.md",
  "references/competitor-ads-research-prompt-pack.md",
  "references/competitor-ads-research-sample-output.md",
  "references/competitor-ads-research-when-to-use.md",
  "references/competitor-scraper-starter.ts",
  "references/knowledge-library-competitor-ads-research-prompt.md",
  "references/knowledge-library-competitor-tracker-template.md",
  "references/knowledge-library-theme-classification-prompt.md"
 ],
 "links": {
  "page": "https://useaiblocks.com/skills/competitor-ad-theme-and-gap-mapper",
  "markdown": "https://useaiblocks.com/skills/competitor-ad-theme-and-gap-mapper.md",
  "json": "https://useaiblocks.com/skills/competitor-ad-theme-and-gap-mapper.json",
  "instructions": "https://useaiblocks.com/skills/competitor-ad-theme-and-gap-mapper/SKILL.md",
  "download": "https://useaiblocks.com/skills/competitor-ad-theme-and-gap-mapper.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/competitor-ad-theme-and-gap-mapper",
  "api_document": "https://useaiblocks.com/api/v1/documents/skill/competitor-ad-theme-and-gap-mapper",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
