// Affiliate marketing spy tools

Affiliate marketing spy tools, built as an API

Stop scrolling an affiliate marketing spy tool's UI one ad at a time. Pull thousands of ads as JSON and rank the offers yourself.

Meta, Google, and TikTok. Filter by country, sort by how long each ad has been running, and get the landing page URL for every single one.

No credit card required

Run duration on every ad

the closest public signal to profitability

Country-level filtering

see what runs in each GEO you buy

JSON, not a dashboard

sort and score offers in your own stack

What media buyers actually use it for

Brand teams want to know what a competitor is saying. You want to know which offer is printing money right now, and what the funnel behind it looks like. Different job, different data.

Find the offers that survived

Nobody keeps paying to run an ad that loses money. On Meta, every ad comes back with startDate, endDate and totalActiveTime. Sort a competitor's whole library by run duration and the winners float to the top in one query.

Get the landing page, not just the ad

Every Meta ad returns link_url — the destination behind the creative. Pull the full library and you have the complete list of prelanders and offer pages a competitor is driving traffic to, ready to crawl or diff over time.

Work GEO by GEO

Pass country_code and get only what's running in that market. Run the same domain across DE, IN, JP and BR and you can see which creatives are localized, which are copy-pasted, and which markets a competitor has quietly stopped buying.

Separate live from dead

Use active_status to pull only what's still running, or deliberately pull the inactive ads to study what got killed and how fast. A creative that died in four days tells you as much as one that's been up for four months.

Filter to the format you buy

media_type narrows a pull to image, meme, or video. On Meta you can also pass check_ugc to have videos classified as user-generated or not — useful when you're deciding whether a vertical is won by polished production or by UGC.

See the placement mix

publisherPlatform tells you whether an ad is running on Facebook, Instagram, Messenger, or Audience Network. Cross-reference with run duration to work out which placement is carrying the campaign.

What's covered, and what isn't

Worth reading before you sign up, so you don't waste a week finding out the hard way.

Covered

Meta (Facebook, Instagram, Messenger, Audience Network), Google — including search, display and YouTube — LinkedIn, and TikTok. These are the platforms that publish official ad transparency data, which is why the coverage is complete rather than sampled.

If you buy on the compliant side of the market, this is your inventory.

Not covered

Native networks (Taboola, Outbrain, MGID, Revcontent), push, pop and adult traffic. None of them publish an ad library, so the only way to see that inventory is a bot fleet browsing sites in each country — a different business from ours.

If native and push are your main traffic sources, AdPlexity and Anstrex are the right tools and we won't pretend otherwise.

Most affiliate marketing spy tools — BigSpy, AdSpy, AdPlexity, Anstrex — bill per seat and put the useful features behind higher tiers, so pricing climbs the moment you add a second channel. Adyntel bills per API call instead: 50 free credits to get started, then you pay only for the campaigns and ad intelligence you actually pull.

The best spy tools for affiliate marketing are dashboards, not data

Most affiliate marketing spy tools are a UI and nothing else. You search, you scroll, you eyeball a few hundred ads, you bookmark the ones that look good. That works until you're tracking twenty competitors across six GEOs, at which point you're doing data entry for a living.

With an API you pull the whole library once, drop it in a table, and write the ranking logic yourself: ads still active after 30 days, in Germany, video format, sorted by totalActiveTime descending. That's one query, and you can run it again next week to see what changed.

Set all_ads to paginate a full library automatically, or pass a webhook_url and let large pulls finish in the background.

response = requests.post('https://api.adyntel.com/meta', json={
  'api_key': key,
  'email': email,
  'company_domain': 'competitor.com',
  'country_code': 'DE',
  'media_type': 'video',
  'active_status': 'all'
})
ads = response.json()['data']['ads']

# winners first
ads.sort(key=lambda a: a.get('totalActiveTime') or 0, reverse=True)

Who it's for

Media buyers running paid social

Validating an offer before you commit budget, and watching whether the people already running it are scaling or backing off.

Affiliates and performance marketers

Tracking which advertisers are live on an offer in your GEO, and pulling their creative and landing pages into one place to work from.

Agencies buying for multiple clients

Running the same competitive pull across every account on a schedule instead of researching each one by hand.

Anyone building their own tooling

Teams building an internal creative library, an offer-tracking dashboard, or a bot that pings Slack when a competitor launches something new.

For brand-side competitive research, see competitor ads. For a broader tool comparison, see our full tool comparison.

FAQ

What is an affiliate ad spy tool?
It's a tool that shows you the ads other advertisers are running so you can work out which offers and creatives are profitable before spending your own budget. Unlike brand-focused competitive research, the emphasis is on how long an ad has been live, which country it's running in, and what landing page sits behind it.
Do you cover native, push or pop traffic?
No. Taboola, Outbrain, MGID, push and pop networks don't publish ad libraries, so that data can only be collected by crawling sites from inside each country. We work from official ad transparency sources, which means Meta, Google, LinkedIn and TikTok. If native and push are your primary channels, a tool like AdPlexity or Anstrex is a better fit.
How do I tell which ads are actually profitable?
You can't see anyone's numbers, and no tool can. What you can see is how long an ad has stayed live. Meta returns startDate, endDate and totalActiveTime, and Google returns start and last_seen. Sustained spend on the same creative is the strongest public proxy for profitability.
Can I filter ads by country?
On Meta, yes — pass a country_code and you'll only get ads running in that market. The Google endpoint returns the region on each result but doesn't take a country filter on the request, so you filter Google results after the pull.
Do I get the landing page behind each ad?
Meta ads come back with link_url, the destination the ad points to. We return the URL — we don't download or clone the page itself.
Is there a UI, or is it API only?
Adyntel is an API first. That's the point — you get raw JSON to sort, score and store however you like, and it plugs into Clay, a spreadsheet, a database, or your own scripts. If you want a dashboard to browse ads in, this isn't that.
What does one credit cover?
One API call to one platform endpoint for one domain. You get 50 free credits to test with, no credit card required.