Google Ads Transparency Scraper | $1/1K Starter | Ad Monitor avatar

Google Ads Transparency Scraper | $1/1K Starter | Ad Monitor

Pricing

from $0.80 / 1,000 ad saveds

Go to Apify Store
Google Ads Transparency Scraper | $1/1K Starter | Ad Monitor

Google Ads Transparency Scraper | $1/1K Starter | Ad Monitor

Scrape Google Ads Transparency Center by company domain or advertiser. Get ad copy, images, YouTube links and shown dates. Export CSV/JSON, resume batches and monitor competitor creatives. $1/1K on Starter; details included. No Google Ads login needed.

Pricing

from $0.80 / 1,000 ad saveds

Rating

0.0

(0)

Developer

Hundevmode Labs

Hundevmode Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

20 days ago

Last modified

Categories

Security

Limited permissions

Share

Scrape Google Ads Transparency Center by company domain, advertiser ID, exact advertiser name or ad URL. Collect available ad copy, images, YouTube links and shown dates, export Google ads to CSV/JSON, and monitor competitor creative changes on a schedule.

$1 per 1,000 saved ads on Starter. Available creative details and monitoring are included. No Google Ads account or separate data subscription is needed.

What you can do

  • Research competitor ads across text, image and video formats.
  • Collect several companies in one run with one total ad limit.
  • Export flat fields to spreadsheets and nested creative variants to JSON.
  • Continue unfinished collections without repeating already saved ads.
  • Compare completed collections on an Apify schedule and get a separate change report.

๐Ÿš€ Quick start

  1. Enter company domains, one per line, such as nike.com and shopify.com.
  2. Choose Maximum ads in this run, a search country and an ad format.
  3. Leave Include creative details enabled and run the Actor.
  4. Open Google ads to inspect results or Download flat CSV to export them. Check Results and coverage for completeness.

The form starts with 10 ads for a quick preview. API requests without maxResults default to 100. The limit applies to the whole run, after deduplication, and is subject to your spending and resource limits.

{
"targets": ["nike.com", "shopify.com"],
"maxResults": 10,
"country": "ALL",
"adFormat": "all",
"includeDetails": true
}

Choose the right search input

InputBest use
Company domain or website URL, such as nike.comStart a company search without finding an advertiser ID first. Website paths are reduced to the domain.
Advertiser ID, such as AR16735076323512287233Collect ads from a specific Google advertiser.
Google advertiser URLReuse an advertiser selected in the Transparency Center.
Google creative URL containing both AR... and CR...Look up a specific ad. Use All countries.
Exact advertiser nameResolve one exact source match. Ambiguous names return candidates rather than choosing an entity for you.

Add up to 50 targets. Domain searches may include agencies, resellers or several legal entities. They record Google's search association and do not confirm company ownership. For precise advertiser monitoring, use its ID or advertiser URL.

If a name is ambiguous, open Results by target or Input and source issues, select the correct advertiser ID, and start a new search. This is advertiser lookup, not a general keyword search of every ad's text.

Copied Transparency Center URLs support domain, region and format. Account-selection (authuser) and interface-language (hl) parameters are ignored. Unsupported date or platform URL filters produce a clear error; remove those parameters and use the supported form filters. URL country/format filters override the form for that target.

Country, format and ๐Ÿ“… last-shown filters

Country and ad format are applied by Google's search source. Country is a search scope, not exact audience targeting or reach. Single creative URLs require country: "ALL"; use advertiser/domain searches for a country filter.

Last shown on or after/before compares the source's last-shown date, inclusively, using UTC calendar dates. This filter is applied after search pages are fetched. It does not reconstruct every impression during a date interval. Narrow windows can take more requests; ads without a usable last-shown date are excluded and counted in the target report.

{
"targets": ["AR16735076323512287233"],
"country": "US",
"adFormat": "image",
"lastShownFrom": "2026-10-01",
"maxResults": 25
}

One dataset row is one unique Google creative ID. Multiple variants do not create extra paid rows. If the same ad appears under several targets, it is saved once and attributed to the first target that delivered it.

FieldsMeaning
adId, advertiserId, adUrl, advertiserUrlSource identifiers and links back to Google.
advertiserName, advertiserDomain, matchStatusAvailable source identity and how the input matched.
adFormat, firstShownDate, lastShownDate, daysShownSource format, UTC shown dates and source approximate served-day count.
headline, description, displayUrl, callToActionAvailable copy from the primary extracted variant.
imageUrl, videoUrl, previewUrlImage link, YouTube watch link and source preview resource.
creativeVariants, creativeVariantCount, extractedVariantCount, variantsTruncatedNested extracted variants, source count and extraction completeness.
requestedCountry, searchTarget, observedAtSearch scope and collection observation.
changeType, firstSeenAtMonitor status and first observation by this monitor; null in collect mode.

Include creative details is on by default and extracts up to three variants per ad. Change Creative variants per ad in Advanced settings if needed. variantsTruncated indicates that the source returned more variants than were extracted. Missing facts stay null.

Turn details off for faster listing metadata collection. Copy/media extraction is skipped. A direct creative URL still needs a detail request to identify the ad. An advertiser name can be unavailable for that lookup.

Images and YouTube videos are provided as links; files are not downloaded or stored. Image copy is not OCR-transcribed. displayUrl is displayed URL text, not a verified final landing page. Source preview resources can contain renderer JavaScript; open adUrl to view an ad on Google. Links can expire or become unavailable. mediaStatus: "available" means a link was extracted, not permanent hosting.

Console views include Google ads with image thumbnails, Creative details, and Monitoring status. The flat CSV includes scalar fields; use JSON for nested variants and region records.

๐Ÿ”„ Continue a partial run

The default collection order takes up to five ads per company turn, giving several targets a share of the global limit. Sequential collection is also available in Advanced settings. A source failure for one target does not prevent the others from being processed.

  1. Open Continue: next input (PAGINATION) in the previous run output.
  2. If hasMore is true, copy nextInput into a new run's JSON input.
  3. Increase the ad limit or Maximum cost per run if necessary. For request/time/transfer limits, adjust the corresponding Advanced settings.
  4. Start the next run after the previous one finishes. It skips delivered IDs and uses buffered pages before requesting later pages.

Use the same account and Actor, keeping targets, search filters, detail mode and creative-variant limit unchanged. A failed or aborted run can be continued if its checkpoint and dataset were retained. Continue each predecessor once; concurrent continuations can duplicate work. A new search is needed when you change the search scope.

Check Results by target and Input and source issues for the reason a search paused. Restricted source requests may remain unavailable on another run; continuation preserves progress but does not guarantee access. Unresolved advertiser names need a new search with a selected ID.

The Actor checks Apify result-budget capacity before fetching chargeable results and before saving them. Budget exhaustion stops collection with budget_limit and preserves remaining work. Platform shutdown can also stop a run; retained checkpoints support recovery.

Monitor competitor Google ads on a schedule

Select Monitor creative changes, keep creative details enabled, save an Apify Task and schedule that Task. The Task automatically loads and updates its previous completed snapshot. For direct/API runs, supply a stable Monitor name (monitorKey). Use different names for independent monitors and run each monitor sequentially.

{
"targets": ["AR16735076323512287233"],
"mode": "monitor",
"monitorKey": "nike-creatives-us",
"country": "US",
"includeDetails": true,
"maxResults": 100
}

The first complete collection establishes BASELINE. Later rows are NEW, UPDATED or UNCHANGED. Monitoring changes (CHANGES) contains baseline/new/updated records and NOT_OBSERVED records only after a complete search. Not observed does not prove that an ad ended. Temporary preview signatures and source date changes alone are not creative updates.

The monitor compares extracted variants. It does not replace its completed baseline after an incomplete search or a collection containing ads for which only an undecoded preview could be extracted. A partly decoded variant set can still miss changes in the unavailable content. Complete a limited collection through continuation to update its baseline. Overlapping monitor runs are discouraged: changes are checked before committing, but snapshot storage does not provide atomic compare-and-swap guarantees.

All saved ads, including unchanged monitor rows, are paid results. There is no separate monitoring fee. Use the change report to pass useful changes into n8n, Make or your own workflow; the Actor does not send notifications itself.

Pricing

Apify planPrice per 1,000 saved ads
Free$1.50
Starter$1.00
Scale$0.90
Business and higher$0.80

Platform usage, available creative details and monitoring are included. There is no separate fee for a detail request, media link, target or page. Apify automatically charges $0.00005 per start event per GB of allocated memory, minimum one event. At the default 256 MB allocation, one start event is charged.

For example, 10 saved ads on Starter cost $0.01005 including one start event; 1,000 saved ads cost $1.00005. These are billing examples, not predictions of how many ads a source will return. A zero-result run has no ad charge, but the start event still applies. Errors, summaries, changes and checkpoints in key-value storage are not charged result rows.

Free plans are limited to 100 saved ads across a continuation chain, with at most 30 source requests, 120 collection seconds and 10 MB of measured transfer per run. Paid plans use their requested ad limit within budget and resource bounds. Plan status is supplied by Apify, not selected in the input. This cap is not a daily account-wide quota.

These are private-pilot rates. The Console pricing panel is the authoritative current tariff.

Output reports

OutputWhat to check
Google ads / Download flat CSVSaved ads and export.
Results and coverage (RUN_SUMMARY)Saved count, completeness, stop reason and monitor baseline update.
Results by target (TARGET_REPORT)Per-company counts, completion and advertiser candidates.
Continue: next input (PAGINATION)Remaining work and ready-to-copy next input.
Input and source issues (ERRORS)Actionable issues, separate from dataset rows.
Monitoring changes (CHANGES)Detected changes; empty in collect mode.
Observed snapshot (SNAPSHOT)Current monitor observations and completion; enabled: false in collect mode.

Frequently asked questions

Does this include every ad a company has ever run?

No. It collects the public results returned by Google's Transparency Center within the selected scope and limits. Availability can change; access restrictions, unavailable content and incomplete targets are reported. No spend, conversion data or exact commercial impression counts are promised.

Can I enter a large ad limit?

Paid runs accept maxResults up to 100,000. That is an input ceiling, not a tested throughput or coverage guarantee. Use a smaller first batch, inspect coverage and continue as needed. Large-volume and long-term stability are not yet established by the private pilot.

Why are some headline or advertiser fields empty?

Google does not supply every field for every creative layout. Image copy is not transcribed, and direct creative lookups can lack an advertiser name. Check creativeContentStatus and the Google ad URL; unavailable values remain null.

How can I automate this with the Apify API?

Send the same JSON input to POST https://api.apify.com/v2/acts/x_guru~google-ads-transparency-monitor/runs with your Apify token. Use the returned run's default dataset and key-value store IDs to read ads and reports. For continuation, use PAGINATION.nextInput; for scheduled monitoring, run a saved Task. Private-pilot access requires permission to use this Actor.

This independent Actor is not affiliated with Google. It collects Google's public Ads Transparency Center data; source behavior can change.