Google Ads Transparency Report: Competitor Ads avatar

Google Ads Transparency Report: Competitor Ads

Pricing

from $0.30 / 1,000 ads

Go to Apify Store
Google Ads Transparency Report: Competitor Ads

Google Ads Transparency Report: Competitor Ads

Google Ads Transparency Center scraper for competitor monitoring: every ad by domain, advertiser or brand, with run dates, countries, formats and ad copy read from the ad or its image (OCR). Get a weekly report of new, stopped and long-running ads. Never reports zero ads when Google refused.

Pricing

from $0.30 / 1,000 ads

Rating

0.0

(0)

Developer

Volodymyr Cherniaga

Volodymyr Cherniaga

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What is Google Ads Transparency Report?

Google Ads Transparency Report is a competitor ad monitoring tool: it scrapes the Google Ads Transparency Center and turns what it finds into data you can use. For any domain, advertiser id or brand name you get every Google ad they are running, a competitor report of new, stopped and long-running ads for any period, and the ad copy itself, grouped into unique messages.

The Transparency Center shows one advertiser at a time, on screen, with no history and no export. This Actor reads many competitors at once, on a schedule, and hands you tables you can export to CSV, Excel or JSON, send to Google Sheets, or pull through the Apify API.

Use it for Google Ads competitor research, ad spy and ad intelligence work, PPC creative benchmarking, landing page and UTM analysis, or to watch a market's Search, YouTube, Shopping, Maps and Play ads week by week.

Tell us what you need. This Actor is actively developed and we turn requests around fast. If a field is missing, a filter is not there, or you need a different output shape, open an issue on the Actor page or leave a review with what you need. Concrete requests get built.

What you get

TableOne row perWhat is in it
Ads (default dataset)ad creativedomain, advertiser, format, first and last shown date, days shown, image or preview link, Transparency Center link; with details: countries, impression ranges, headline, description, visible URL, landing URL and its UTM tags; sitelinks come from OCR only
targetsdomain, advertiser or brand you asked forstatus ok, empty, partial, failed or skipped and the reason
reportcompetitor and advertiserads running now, new, stopped and long-running in the period, by format and country, with examples
messagesunique ad messageheadline and description, how many creatives use it, first and last shown, formats, visible URL, UTM campaigns where the ads carry them

The ads are on the run's Output tab. The run's log links the other three tables, and so does the OUTPUT record on the Storage tab.

"No ads" is never a guess. If Google refused a request, the target is marked failed with the reason, not empty. A list cut by your limit is partial, and a target the run did not get to is skipped.

An empty cell always says why. Every ad row has a Details and an OCR column: off for a switch you left off, skipped with what to change to get the text, failed when Google refused. An empty headline never silently means "this ad has no text".

Landing URL, UTM tags and visible URL: what Google actually publishes

How much of an ad's link you get depends on the format, because Google archives formats differently. Measured on 22 September 2026 on 250 ads across 50 company domains:

Ad formatdestination_url (landing URL)utm_source and other UTM tagsdisplay_url (visible URL)
Text0%0%93%
Image14%8%4%
Video94%36%97%
  • Text ads carry no link at all. Google archives them as a picture, with no URL anywhere, so no tool can extract one. The Actor reads the visible URL off the picture with OCR instead (www.hubspot.com/free/crm), for 93% of text ads.
  • Video ads are where UTM analysis works. Set Ad format to video if UTM data is what you are after. Whether UTM tags are there is the advertiser's own choice.
  • Every field is either filled from the source or left empty; nothing is guessed.

How to use it

  1. One-off look at a competitor. Add domains (hubspot.com), advertiser ids, Transparency Center links or brand names. Run.
  2. Weekly competitor report. Set Competitor report period to 7 and schedule the Actor weekly. It reads only the recent part of each list, so a weekly run stays cheap even on a large advertiser.
  3. Ad copy and messaging matrix. Turn on Fetch ad text, countries and impressions and Read text from ad pictures (OCR). The messages table then lists every unique message each competitor runs.

Who uses Google Ads competitor monitoring?

  • PPC and performance marketing teams checking which creatives a competitor keeps running for months, and which ones they killed in a week.
  • SEO and content teams pulling competitor ad copy to see the exact wording competitors pay for.
  • Agencies reporting on a client's competitive set every week without opening the Transparency Center by hand.
  • Market and product researchers mapping who advertises in a category, in which countries, and on which Google surfaces.
  • Brand protection teams spotting third parties, resellers and affiliates that advertise on their brand's domain. In a 50-domain sample the Actor found a median of 4 advertisers per domain and up to 40 on one.

How much does it cost to monitor competitor ads?

You pay only for what the run returns (pay per event). The competitor report and the messages table are free: they are built from the ads you already paid for.

EventFreeBronzeGoldCharged when
Actor start$0.0035$0.0030$0.0023once per run, after your input has been accepted
Ad$0.0005$0.0004$0.0003an ad row is returned
Ad details$0.0002$0.00016$0.00012countries and impression ranges are read for an ad
Ad text$0.0026$0.0020$0.0015headline, description and landing URL are read from the source
Ad text by OCR$0.0013$0.0010$0.0008the text is read from the picture of a text ad

Silver sits between Bronze and Gold; Platinum and Diamond pay the Gold price.

Example: a weekly report on 10 competitors with about 100 ads each in the week, with details and ad copy for the first 20 ads of each competitor. On the free plan that is $0.78 a week, on Bronze $0.62.

What you pay for here is the ad copy. The ad list costs $0.50 per 1,000 ads, a third of what the two most used Google Ads Transparency Actors charge for it. The Actor also reads the text off the picture of a text ad, which is how Google stores most of them, where most other Actors return only the picture. Ad copy for every ad brings the price to about $0.0019 per ad on the free plan, so use Max ads with details per target to decide how much of it you buy.

To keep a run within budget, use Max ads per domain or advertiser, Max ads with details per target, or the run's Max total charge. At the limit the Actor stops and marks the targets it did not read, instead of returning a half-empty list that looks complete.

Input

  • Competitor domains, Advertiser ids, Transparency Center links, Brand names: what to look up. Advertisers per brand name caps how many advertisers one name expands into.
  • Country, Ad format, Platform (Search, YouTube, Shopping, Maps, Play), Shown on or after / before: filters.
  • Competitor report period and Long-running ad after: the report.
  • Max ads per domain or advertiser, Max ads with details per target: cost caps.
  • Ads fetched at the same time: speed, 6 by default.
  • Proxy: Apify's Residential proxy, set by default.

Limitations

These come from what Google publishes in the Transparency Center:

  • Most text ads are archived only as a picture. With OCR on, the Actor reads the text from it; such rows are marked text_source: "ocr" with a confidence score. Non-Latin scripts are left empty rather than filled with garbage.
  • Text ads have no landing URL, see the table above.
  • No keyword search across all advertisers. The Transparency Center searches by advertiser or domain only.
  • One country per run, as in the Transparency Center itself.
  • Platform filter covers ads shown on or after 4 September 2023.
  • Impression ranges are published only for some ads, mostly those shown in the EU.
  • The Transparency Center has no public API. If Google changes it, the Actor can break until it is updated.

Missing a field or a filter? Ask, and it gets built

Need another field, a filter or a different output shape? Open an issue on the Actor's Issues tab or leave a review saying what you need and what you do with it. Something wrong in the data? Send the run id and the row: you get a fix, or a straight answer if the source does not publish it.

FAQ

Why use this instead of the Transparency Center itself? It shows one advertiser at a time and no history you can work with. This Actor reads a list of competitors on a schedule, tells you what is new, what stopped and what has been running for months, extracts the ad copy, and gives you tables instead of a page you have to scroll.

Can I get the landing page URL and UTM parameters of a competitor's ads? For video ads, mostly yes; for image ads, about one in seven; for text ads Google publishes no link, and you get the visible URL read from the ad picture instead. See the table above.

How many ads does it return per competitor? Whatever the Transparency Center holds, up to your own cap. One large SaaS domain returned 3,531 ads from 528 advertisers in one run. A run reads up to 10,000 ads per target and 40,000 in total; a longer list is marked partial.

What is the difference between empty, failed and skipped? empty: the Transparency Center answered and has no ads for this target. failed: it did not answer after retries, so nothing is known. skipped: the run did not ask, because it reached its cost, time or row limit first.

How does the scheduled report count? The period is exactly N days back from the start of the run. An ad is running now if it was shown in the last 48 hours, and stopped if it crossed that mark during the period. To see those stops, the Actor also reads the ads shown in the 48 hours before the period (up to 72, rounded to a UTC day); those rows are in the output and charged like any other.

Why is a proxy required? Google blocks a single IP address after a few dozen requests. Only Apify's Residential proxy gets through; any other Apify proxy group is switched to it, and the proxy costs you nothing either way.

How long does a run take? The list is fast. Ad text takes a few seconds per ad, 6 ads at a time, so about 1,000 to 1,500 ads with text fit into the default 1-hour timeout. Near the timeout the Actor stops on its own: what it read stays in the dataset, the rest is marked skipped, and you pay only for what was read. The same holds if you abort a run.

Is it legal? The Actor reads data Google publishes publicly in the Ads Transparency Center, without logging in. This Actor is not affiliated with Google. Check the rules that apply to your use of the data.