Competitor ad monitoring has changed in a way most teams have not caught up with. A few years ago the only way to know what a rival was running was to go and look, which meant a browser, a location, and a lot of manual work.
Now the major platforms publish ad libraries. Meta, Google, TikTok and LinkedIn all expose searchable archives of active advertising, and regulatory pressure has widened both what they show and who can query it. That changes the sensible order of operations: start with the official sources, understand precisely what they leave out, then build observation to cover the gap.
Teams that skip the first step do far more engineering than they need to. Teams that stop at the first step reach conclusions the data does not support.
Start with the ad libraries
The official archives are free, permitted, structured, and often retain history you cannot reconstruct externally. For a large share of competitor questions they are simply the right answer.
What they typically give you: the creative, the advertiser identity, when the ad started running, the platforms and surfaces it appeared on, and in the EU, broad reach and targeting-category disclosures under transparency rules.
Query them first and design your collection around what remains unanswered. That residue is real, and it is where the actual work is.
What the libraries do not tell you
Five gaps come up in every serious programme.
Coverage stops at the platform boundary. Ad libraries cover the platform that publishes them. Display networks, native placements, affiliate content, retail media, sponsored newsletters, connected TV and podcast reads are largely absent. For many categories that is where a meaningful share of the budget goes.
An archive shows that an ad existed, not what a market experienced. A library entry proves an ad was live. It does not tell you which creative won the auction on a specific page, in a specific country, against a specific query, alongside which competitors. Competitive position is a property of the auction, not of the archive.
Search advertising is thinly represented. Query-level ad copy, which extensions appeared, and who ranked above whom on a commercial keyword are not in an archive in usable form. That has to be observed against the search results themselves.
Landing pages and offers are not in scope. The creative is archived; the page it points at, the price it quotes, and the variant a given market receives are not. In most categories the offer moves more than the creative does.
Reach and spend disclosures are coarse. Where they exist they are banded and jurisdiction-specific, which is enough for direction and not enough for a spend model.
The observation layer covers the gap
For each of those gaps the fix is the same in principle: observe the surface as an ordinary user in the relevant market, and record enough context to defend the observation later.
That means the vantage point has to be real. Competitor ads are geo-targeted and frequently personalised, so a request from a datacenter range in another country either sees nothing or sees a default. Residential proxies with country and city targeting are what make a local view local. With the Shifter gateway, targeting and session go in the credentials against p.shifter.io:443:
customer-USERNAME-country-es-city-madrid-sid-ads-es-14-ttl-600:PASSWORD
country-es and city-madrid set the market, sid-ads-es-14 holds one exit across a full observation pass so the ads you record belong to one coherent session, and ttl-600 keeps that address for ten minutes.
Two adjacent details decide whether the observation is credible. The locale signals have to agree with the IP, since a Spanish exit sending English-only headers is an inconsistent visitor and gets treated as one; that is covered in matching proxy geo, timezone and locale. And request rates should stay ordinary, with real backoff, as in rate limiting and request throttling.
The deliberately adversarial case, where a competitor serves different content to anything that looks like a monitoring system, is covered in catching cloaked and geo-targeted ads.
What to record per observation
The value of a competitive ad programme is almost entirely in the metadata. A screenshot with no context is an anecdote.
| Field | Why it matters |
|---|---|
| Creative identity | A stable hash of the asset, so variants can be grouped rather than counted twice |
| Advertiser as displayed | Which entity is named, which differs from the brand more often than expected |
| Surface and placement | Search, feed, display, native, retail media, and the position within it |
| Market and vantage point | Country, city, and the exit the observation came from |
| Timestamp in UTC | Non-negotiable for any claim about when something changed |
| Query or page context | For search, the exact query; for display, the page the ad appeared on |
| Co-occurring advertisers | Who else was in the auction, which is the competitive signal |
| Landing URL and final URL | Including the redirect chain, since the destination is where the offer lives |
| Device profile | Desktop or mobile, because the creative and often the offer differ |
The two fields teams most often omit are co-occurring advertisers and the redirect chain, and they are the two that turn a creative archive into competitive intelligence.
Sampling, because you cannot watch everything
Global ad monitoring has no natural stopping point, so it needs a sampling design rather than an ambition.
Define the markets that matter commercially, the surfaces where your category actually spends, the queries or placements you care about, and a cadence per tier. Then hold that panel fixed, because a monitoring programme whose panel changes quietly will report competitor activity that is really your own coverage moving.
A small, stable, well-instrumented panel beats a large unstable one. The full argument for designing this as a sampling problem is in verifying ad placements at scale, and it applies to competitive monitoring as much as to verification.
Track your own collection alongside the findings: success rate per surface per market, observations expected against observations returned. When a competitor appears to go quiet, the first question is whether they stopped or you stopped seeing them.
Turning observations into decisions
Four outputs justify the programme, and none of them is a creative gallery.
Share of voice by market and surface. How often each competitor appears in the placements you care about. This is the number that survives contact with a marketing leadership meeting.
Message shifts. When a competitor’s dominant claim changes, and in which markets first. Sequencing across markets often reveals a rollout plan.
Offer changes. Price points, trial lengths and incentives, captured from landing pages rather than creatives.
Entry and exit. New advertisers appearing in your category, and incumbents disappearing from surfaces they used to hold.
The general case for why this needs real local vantage points is in residential proxies for competitor ad intelligence.
Staying on the right side of it
Observation is legitimate and it has edges worth respecting.
Collect from public surfaces as an ordinary visitor. Keep request volumes proportionate. Do not click competitor ads to see where they lead, because a click costs them money and interfering with a competitor’s spend is a different activity from observing it; resolve the destination from the markup and the redirect chain instead. Store creatives for internal analysis and do not republish them, since the asset is someone else’s copyrighted work. And keep the programme measurement rather than interference, which is the line drawn in how to detect ad fraud in real time.
FAQ
Do I still need observation if the ad libraries cover my competitors?
Yes, for search copy, display and native placements, competitive position within an auction, and landing-page offers. The libraries answer what ran; observation answers what a market saw.
How many markets should a programme cover?
The ones where you compete commercially, collected consistently. Ten markets observed identically for a year is more useful than forty observed unevenly for a quarter.
Why do we see different ads than our agency reports?
Usually a vantage-point difference, sometimes a device difference, occasionally personalisation from an account with history. Recording the vantage point with every observation is what lets you resolve the disagreement instead of arguing about it.
Can we estimate competitor spend from this?
Directionally, from frequency and surface breadth, with wide error bars. Anyone quoting a precise competitor spend figure from public observation is modelling, not measuring, and should say so.
The bottom line
Competitive campaign intelligence in 2026 is a two-layer problem. The official ad libraries are the cheapest, most complete and most defensible source for what ran, and they should be queried first. Observation covers what an archive structurally cannot show: which creative won a specific auction in a specific market, what the landing page offered there, and who else was competing for the same impression.
Build the second layer as a fixed panel with real local vantage points, record the metadata that makes an observation defensible, and measure your own coverage as carefully as you measure your rivals. The product view is on the marketing and adtech proxies page, with rates on the pricing page.