Google Ads Spy: Competitor Ads by Domain (+ Meta)
Pricing
from $1.50 / 1,000 detailed ads
Google Ads Spy: Competitor Ads by Domain (+ Meta)
See every ad a competitor runs on Google Search, YouTube and Display by domain or advertiser: ad text, videos, landing pages, countries and impressions. Optional Meta Ad Library via your API token.
Pricing
from $1.50 / 1,000 detailed ads
Rating
0.0
(0)
Developer
WaterShow Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
See every ad your competitor runs on Google (Search, YouTube, Display) just by entering their website. For each ad you get the headline, description, call to action, landing page, YouTube video, the countries where it ran, impressions and how long it has been running. Add your own Meta token and the same run also pulls their Facebook and Instagram ads from the official Meta Ad Library API.
Data comes from the public Google Ads Transparency Center and the official Meta Ad Library API. No login, no browser extension.
What you can do with it
- 🔎 Spy on competitors. Enter
hubspot.comand see every Google ad that sends people to HubSpot: copy, offers, videos, landing pages. - 🎬 Collect YouTube ad videos. Video ads come with the YouTube link, thumbnail, duration and channel.
- 🌍 See where they advertise. Countries for each ad, with impressions where Google publishes them (EU countries).
- ⏱️ Find their winners. Ads running for months are usually the ones that make money. Sort by
daysShownorfirstShown. - 🧪 Get ideas for your own ads. Headlines, descriptions and calls to action of the best ads in your niche in one table.
- 📈 Monitor new ads. Schedule the run daily with "Only running ads" and get notified about new campaigns.
Input
| Field | Example | What it does |
|---|---|---|
| Competitor domains | notion.com, https://www.hubspot.com | All Google ads leading to this site |
| Advertisers | Canva, AR13309761427309854721, a Transparency Center link | All ads of a verified advertiser (a name is matched to the best advertiser) |
| Country | US, GB, DE | Only ads shown in this country (empty = all countries) |
| Ad format | text / image / video | Only Search, Display or YouTube ads |
| Only running ads | on | Skip ads not shown in the last 3 days |
| Max ads per domain or advertiser | 50 | Limit per source |
| Ad text, videos, countries and impressions | on | Open each ad for its full details (off = faster list with preview images) |
| Meta access token | EAAB… | Optional. Adds Meta (Facebook, Instagram) ads |
Example input
{"domains": ["notion.com", "hubspot.com"],"region": "US","format": "video","maxAdsPerSource": 100}
Output
One row per ad. Example (Google, video):
{"platform": "google","advertiserName": "Notion Labs, Inc","adUrl": "https://adstransparency.google.com/advertiser/AR13309761427309854721/creative/CR02184150513950392321","format": "video","isActive": true,"firstShown": "2026-06-18T06:44:54.000Z","lastShown": "2026-10-24T00:16:17.000Z","daysShown": 129,"headline": "Work faster together with Notion","longHeadline": "Stop switching tools. Build docs, tasks, and wikis in Notion fast.","description": "Plan, collaborate, and build faster together with Notion","callToAction": "Learn more","displayUrl": "notion.com","destinationUrl": "https://www.notion.com/lp/ent?nid=ddvmq9t","youtubeUrl": "https://www.youtube.com/watch?v=ihR5nRHFyMk","videoDuration": "0:18","impressionsMin": 4000,"impressionsMax": 5000,"countries": ["FR", "LU", "BE"],"regions": [{ "countryCode": "FR", "impressionsMin": 3000, "impressionsMax": 4000, "firstShown": "2026-06-17", "lastShown": "2026-10-23" }]}
Meta rows have bodyText, headline, description, displayUrl, publisherPlatforms, languages, euTotalReach, targeting and a link to the ad in the Meta Ad Library.
A short summary per source (advertiser found, ads collected, Google's estimate of the advertiser's total ads) is saved as SUMMARY in the key-value store.
Good to know
- Text (Search) ads are published by Google as an image of the ad, so for them you get
imageUrlinstead of separate headline and description fields. Video and many Display ads come with the full text. - Impressions are published by Google only for ads shown in the EU. Elsewhere you get the countries and dates.
- Google limits fast requests. The Actor runs at a steady pace and continues from another IP after a pause, so large runs take a few minutes. Keep the default Apify Proxy on.
- Meta: the Ad Library website blocks automated access, so this Actor uses only the official API with your own token. Meta returns all ads delivered in the EU and political or social issue ads elsewhere. To get a token: create an app at developers.facebook.com, confirm your identity at facebook.com/ID, then generate a user access token in the Graph API Explorer. The token is stored as a secret input and never written to the results or logs.
Pricing
You pay only for ads you get:
| Event | Price |
|---|---|
| Google ad with full details (text, video, countries, impressions) | $1.50 per 1,000 |
| Google ad, list only (details off) | $0.80 per 1,000 |
| Meta ad | $0.80 per 1,000 |
No monthly fee. Example: 500 competitor ads with full details cost $0.75.
FAQ
Is it legal? The Actor reads public ad transparency data that Google and Meta publish so anyone can see who advertises what. Use it in line with the terms of these services.
Why did I get fewer ads than the advertiser has? Check the country and format filters and the max ads limit. The SUMMARY record shows Google's estimate of the advertiser's total ads.
A name matched the wrong advertiser. Use the advertiser ID (AR…) or paste the link from the Transparency Center.
Can I get notified about new ads? Yes: schedule the Actor with "Only running ads" and connect an integration (Slack, email, webhook) in Apify.
Questions or a feature request? Open an issue on the Actor page.