← Blog

Tracking competitor Meta ads in the Ad Library

You do not need a paid tool to see which ads a competitor runs on Facebook and Instagram. Meta keeps its Ad Library public: type a Page name at facebook.com/ads/library and the ads that Page is running right now come up.

Opening the library once is easy. The hard part is turning it into a regular record you can compare over time. This post covers what the library shows, what it does not, and how to set up weekly tracking.

What the library shows

According to Meta's Transparency Center, people can search all active ads running across Meta's products. Ads about social issues, elections or politics are handled separately: they stay visible whether active or inactive and are stored for seven years.

Ads shown in the European Union follow different rules. In its August 2023 announcement, when the Digital Services Act obligations took effect, Meta said every ad targeting people in the EU would be stored in the library for a year, along with targeting parameters such as age, gender and location. If your competitor also advertises in the EU, those cards tell you something about its targeting.

For an ordinary commercial ad shown in Türkiye, what you get is the ad itself: the image or video, the copy, the date it started running, the platforms it appears on and any other versions. There is no spend, impression or click data.

The part you do not see: ads that ended

This is what people setting up tracking miss most often: by Meta's own description the library covers active ads, and keeps ended ones only for political and social issue ads and for ads shown in the EU. So once a non-political ad shown outside the EU stops running, you will most likely not find it in the library. If a campaign you saw on Monday ended on Thursday, you will find nothing about it on Friday.

So the library is a shop window, not an archive. If you want history, you have to keep the record. When did an ad first appear, when was it last seen, how many days did it run? You can only answer that if you checked regularly and took notes every time.

Setting up tracking

Start by finding the right Pages for each competitor. One brand can advertise from several Facebook Pages: the main brand Page, a regional Page, a product Page. A search by brand name also returns Pages with similar names. Confirm from the Page details that the advertiser really is your competitor, or an unrelated brand ends up in your tracking.

Then fix your filters. If you track the Turkish market, set the country to Türkiye and leave the ad type on all ads. If the filters differ between checks, the difference between two weeks is not a real change, it is the result of a different query.

On every check, record the following for each ad:

  • The Library ID. It is the most reliable way to recognise the ad next time.
  • The date it started running and the day you first saw it.
  • The offer in the image and the copy: discount rate, code, end date.
  • The platforms the ad appears on.
  • The number of versions, meaning how many variations of the same ad exist.

What to read from it

A single ad says very little. Meaning shows up in change. If a competitor's active ad count doubled in a week, a new campaign or a new testing round may have started. The same image running with many different texts is usually a copy test. For an ad that runs unchanged for weeks, you can at least say this: the advertiser saw no reason to change it.

The time between start and stop is information too. If a competitor's discount ads always last three or four days, its campaign calendar is short and intense. Brand ads that stay on for months are a different budget line. Put both into one average and you lose both.

Read the text on the image as well. Most of the offer is written on the creative, not in the ad copy: the percentage, the minimum, the last day. Tracking that only reads the copy misses the offer itself.

Put them next to your own ads

Reading a competitor's cards on their own is half the job. Open your own Page in the library the same week. If the competitor is pushing a new-customer offer while you only run brand ads, is that a deliberate decision or a gap nobody noticed? Walking into a meeting with those two screens starts a better discussion than walking in with the sentence the competitor is running a lot of ads.

Compare by offer type: discount, new customer, free shipping, brand. Do not count ads, count who is present in each type and who is not.

Limits

The library tells you an ad exists, not how much was spent on it. A small test and a big-budget campaign show up as the same card. So do not use ad count as a stand-in for spend. The count shows how many different things a competitor is trying, not how much money is behind them.

Allow for incomplete queries too. The page may not load, results may come back partial. If one day you see no ads at all from a competitor, first make sure the query actually completed, because an empty result and an unreadable one are not the same thing. We covered this distinction for social media separately: Tracking a competitor's social media.

With Adversee

Adversee reads the Meta ads of the competitors you track roughly every 6 hours and keeps the record after an ad stops. Active and ended ads, the Ad Library link and a per-brand coverage note appear together. The offer on the image is read with AI, and any field it is not sure about is left empty.

Start tracking competitor moves automatically.

Tracking competitor Meta ads in the Ad Library · Adversee