All articles
Competitor Intelligence5 min read

Market gap analysis for advertising: find the axis nobody fights on

A market gap analysis for advertising you can run in an afternoon: tag every competitor ad against five positioning axes and claim the emptiest lane.

Pull up the Meta Ad Library and search your category. If you sell a meal kit, you will find 30-odd competitors, and 20 of them are running some version of "dinner in 15 minutes". Same promise, same countdown timer. Everyone is bidding against everyone for the same square meter of the buyer's head.

The standard advice at this point is "find the white space". Which is true and useless, because nobody tells you what a unit of white space looks like. After mapping a few dozen categories while building Adscalr, the unit I settled on is the positioning axis. It turns a vague staring contest with the ad library into a tally you can finish before lunch.

The takeaways

  • Tag every active competitor ad against five positioning axes (Price, Quality, Speed, Trust, Innovation). The least-occupied axis is your candidate gap.
  • Weight the tally by longevity: an ad still running after 30+ days is paid-for proof its message works. A five-day-old ad proves only that someone had a budget.
  • An empty axis is only a hypothesis. Some lanes are empty because three competitors already tried them and the lane did not convert.

What is a market gap analysis for advertising?

A market gap analysis for advertising is a structured read of every active ad in your category, sorted by the claim each ad leads with, to find the positioning angle no competitor is currently paying to defend. The raw material is public: the Meta Ad Library, TikTok's ad library, and the Google Ads Transparency Center list active ads for free.

That makes it narrower than the classic business-school version, which hunts for product gaps, price gaps, and underserved segments across a whole market. The advertising version asks one question: of all the things a buyer could be promised, which promise is nobody in my category making right now? You are not looking for a product to build. You are looking for a message to run.

How do you find the least-contested positioning axis?

Take every active competitor ad and tag it with one of five axes based on its opening claim: Price ("cheapest", "save 40%"), Quality ("chef-designed", "premium cuts"), Speed ("dinner in 15 minutes"), Trust ("200,000 reviews", "cancel anytime"), or Innovation ("the first kit that..."). Tally the tags. The axis with the lowest count is your candidate gap.

Two rules keep the tally honest. First, tag the hook only. Most ads gesture at several benefits in the body copy; the axis is whatever the first three seconds bet on. Second, weight by how long the ad has been running. The libraries show start dates, and an advertiser who has kept the same ad live for 30+ days is paying real money to defend that message. That is the closest thing to a public performance signal you will get. Ten one-week-old Price ads tell you less than two Price ads that have run since March.

A worked example from a category I mapped: 41 active ads. 19 led on Speed, 11 on Price, 7 on Quality, 3 on Trust, 1 on Innovation. The reflex says Innovation is the gap. The longevity column said otherwise: the lone Innovation ad was 8 days old, while one of the 3 Trust ads had been running for over 90 days. Trust was the lane with proof of life and almost no traffic.

Is an empty axis an opportunity or a dead lane?

You cannot tell from the map alone. Account planners have been asking the same thing for decades: there may be a gap in the market, but is there a market in the gap? An axis can sit empty because nobody thought of it, or because several competitors quietly tested it, watched it underperform, and pulled the budget.

Three checks before you bet on the lane. One, look for corpses: scroll the library for short-lived past attempts on that axis. A graveyard of two-week runs is a warning. Two, check voice of customer: if reviews and Reddit threads in your niche keep complaining about hidden fees or flaky cancellation, the Trust lane has demand even though no ad serves it. Three, run a small paid test before moving real budget, and read it patiently. A gap-lane creative that posts a wild ROAS in its first four days deserves the same skepticism as any other early number, and I wrote up how I separate a winner from a lucky streak for exactly that moment.

Do you need real-time competitor monitoring for this?

No. Positioning moves on a scale of weeks. A competitor does not abandon the Speed axis between breakfast and lunch; repositioning means new creative, new landing pages, sometimes new offers. A daily refresh of the ad libraries catches every shift that matters with a full day to spare.

I say this with some self-interest to declare, because Adscalr's competitor layer pulls from the three ad libraries on a daily schedule, and I built it that way on purpose. When a tool sells you "real-time" competitor alerts, it is mostly selling urgency. The decision you make from this data, picking which axis to claim next quarter, has never once needed minute-level freshness in my experience.

Where this stops being a spreadsheet job

For one category, do it by hand. An afternoon, 3 library tabs, 5 columns in a sheet, and you will know more about your market's messaging than most of the people bidding in it. The method needs no software.

What wears you down is the third re-run, when ads have rotated and the start dates need rechecking. That repetition is the part I automated: Adscalr pulls the three ad libraries daily into one normalized dataset, has vision AI decode each static ad into about 20 structured fields, clusters every competitor across the same five axes, and flags the least-occupied one. If keeping the map current sounds better than rebuilding it, the competitor intelligence page shows how that looks in practice.

This is the thinking behind Adscalr.

See the product