Google Ads Transparency Scraper | Competitor Ad Spy avatar

Google Ads Transparency Scraper | Competitor Ad Spy

Pricing

from $0.45 / 1,000 ad results

Go to Apify Store
Google Ads Transparency Scraper | Competitor Ad Spy

Google Ads Transparency Scraper | Competitor Ad Spy

Spy on any advertiser's Google ads — search, YouTube, display. Search by keyword, domain or advertiser ID. Ad creatives (text/image/video), first/last shown dates, days active, isNew flag, monitor mode. HTTP-only, no login. $0.64/1,000 ads.

Pricing

from $0.45 / 1,000 ad results

Rating

0.0

(0)

Developer

Mr Zack

Mr Zack

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Google Ads Transparency Scraper — Competitor Ad Spy at $0.64/1,000 ads

See every Google ad any advertiser is running — search, YouTube, display — straight from the Google Ads Transparency Center. Search by brand keyword, domain or advertiser ID, filter by country and format, and get clean JSON with dates, days-active and an isNew flag.

The cheapest ad-spy on Apify: $0.64 per 1,000 ads + $0.001 per start. No login, no API key, no browser, no proxy add-ons. Filtered and duplicate rows are never charged.

Who uses this

  • Media buyers & dropshippers — see which creatives competitors keep running (long daysActive = winning ad), and which they just launched (isNew).
  • Affiliate & offer researchers — track advertisers in a niche daily; monitor mode only outputs (and only charges) ads you haven't seen before.
  • Agencies — automated competitor ad reports per client, per country.
  • AI agents — structured, predictable ad intelligence for autonomous marketing research (see below).

What you get per ad

FieldExampleNotes
advertiserIdAR0781…stable Transparency Center ID
advertiserNameTemu
advertiserVerifiedtrue
creativeIdCR0946…stable — safe dedupe key
formattext / image / video
firstShown / lastShownISO datescampaign lifetime
daysActive211long-running = proven ad
isNewtruefirst shown within newWithinDays (default 7)
imageUrl / videoUrl / previewUrlcreative media
adUrldestination URL, best effort (mostly text ads)
transparencyUrlone-click open in Transparency Center
sourceQuerytemu.comwhich of your inputs found it

Input modes (combine freely)

{
"keywords": ["hello fresh"],
"domains": ["temu.com"],
"advertiserIds": ["AR07816964328396947457"],
"region": "US",
"maxAdsPerQuery": 200,
"onlyNew": false
}
  • keywords — resolved via Transparency Center suggestions; top 3 advertisers with active ads are scraped per keyword.
  • domains — all ads whose verified advertiser matches the domain.
  • advertiserIds — most precise; grab IDs from any previous run.
  • region — ISO alpha-2 (US, GB, DE, ID, …) or anywhere.

Monitor mode — pay only for new ads

Set "onlyNew": true. The Actor remembers every creativeId it has already output (key-value store) and skips them next run — skipped rows are never charged. Combined with a daily schedule this gives you a live feed of every new ad your competitors launch.

  1. Open the Actor → Schedules tab (or Console → Schedules → Create new).
  2. Cron 0 6 * * * (daily, 6 AM).
  3. Input: your advertisers/domains + "onlyNew": true.
  4. Add an integration (Slack/email/webhook) on new dataset items — you'll only be notified when competitors launch something new.

Daily monitoring of 10 advertisers typically costs a few cents per month because monitor mode only charges new creatives.

For AI agents & MCP

This Actor is built to be called by AI agents via the Apify MCP server or API:

  • Minimal input that just works: {"keywords": ["<brand>"]} — everything else has sane defaults.
  • Predictable cost: exactly $0.00064 × ads + $0.001 per run; maxAdsPerQuery is a hard cost cap.
  • Stable schema: every field above is always present (nullable, never missing); creativeId is a stable dedupe key across runs.
  • Recommended agent loop: resolve brand → advertiserIds from first run → schedule with onlyNew: true → read only fresh competitor ads each day.
curl -s "https://api.apify.com/v2/acts/tactful_anvil~google-ads-transparency-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-X POST -H 'Content-Type: application/json' \
-d '{"domains":["temu.com"],"region":"US","maxAdsPerQuery":50}'

Fair use & data source

Only public data from the Google Ads Transparency Center (published by Google for transparency purposes). Reasonable rate limits. No login, no personal data.

Example output (one real row, 6 Sep 2026)

{
"advertiserId": "AR06241571277706887169",
"advertiserName": "Taha Temur",
"advertiserVerified": false,
"creativeId": "CR12697029994019291137",
"format": "text",
"firstShown": "2026-01-20T13:18:09.434Z",
"lastShown": "2026-01-28T08:50:44.204Z",
"daysActive": 8,
"isNew": false,
"adUrl": null,
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/1119550157563880731",
"previewUrl": null,
"videoUrl": null,
"adText": null,
"transparencyUrl": "https://adstransparency.google.com/advertiser/AR06241571277706887169/creative/CR12697029994019291137",
"sourceQuery": "temu→Taha Temur"
}

Changelog

  • 0.1.2 (19 Sep 2026) — Fix onlyNew memory across runs. The seen/previous-run memory was stored in the run's default key-value store, which is per-run on the Apify platform, so onlyNew silently returned the full result on every run. It now lives in a named store in your account, so scheduled runs return only what changed. No field, default or price changed.
  • 0.1.1 (16 Sep 2026) — A run with no input no longer fails: the example input is the default, so "Run" with an empty form (or {} via API) returns the demo dataset. Output unchanged.
  • 0.0.10 (10 Sep 2026) — Billing helper fixed (per-ad charges had silently stopped for runs using dynamic imports); test suite wiring.
  • 0.0.1 (27 Aug 2026) — Launch.

Found this useful? A review helps more than you'd think

If this Actor saved you time, a short review on the Reviews tab of this Store page takes 30 seconds and is the only signal other buyers have before they spend anything. If something is broken instead, open a ticket on the Issues tab — parser bugs and field requests get fixed.

Related Actors from the same account