Google Ads Transparency Scraper — Ad Copy & AI Message Summary avatar

Google Ads Transparency Scraper — Ad Copy & AI Message Summary

Pricing

from $2.00 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper — Ad Copy & AI Message Summary

Google Ads Transparency Scraper — Ad Copy & AI Message Summary

Scrape the Google Ads Transparency Center for any competitor: the ad copy read from each ad (headline, description, call to action), format, first and last shown, still running. Type a brand, website or advertiser ID. Optional AI summary of offers, hooks and CTAs.

Pricing

from $2.00 / 1,000 ads

Rating

0.0

(0)

Developer

Andrey Afanasenko

Andrey Afanasenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Apify Actor

See every ad a competitor runs on Google — with the words of each ad: headline, description, call to action and the website it shows. Type a company name, a website or an advertiser ID. You get one row per ad from the Google Ads Transparency Center — text, image and video ads on Search, YouTube, Shopping, Play, Maps and the display network — with when it was first and last shown and whether it is still running. Turn on the message summary to get each competitor's offers, messages and calls to action, counted across its ads.

🆓 Free to start: 3 advertisers a month on the free plan · the first 25 ads of each advertiser in full · the next 25 shown with their format and dates.

🎯 What it does

You give one advertiser per line: a company or brand name (HubSpot), a website (hubspot.com), an advertiser ID (AR10072600183532683265) or an advertiser page link from the Ads Transparency Center. A name or a website is matched to the verified advertiser account(s) behind it, and only that advertiser's ads are returned — not the ads of agencies or resellers that happen to mention the same site. A company with several accounts under one name (for example three HubSpot accounts) is read as one advertiser.

You get one row per ad: the advertiser and its ID, the ad's ID and format, the headline, description, display URL, call to action and any other words of the ad, the preview image (or, for a video ad, the video link and thumbnail), when it was first and last shown, how many days it ran, whether it is still running, and its page in the Ads Transparency Center.

With the message summary on you also get one summary row per advertiser: its offers (free trial, free plan, discount, demo, free resource…), its recurring messages and claims, and its calls to action — each with how many ads use it, what share of the ads that is, how many of those ads are still running, and example ads in their own words. With several advertisers, the run's status page puts their leading offer, message and call to action side by side.

Where the words come from. The ad library does not publish ad text as text — it shows each ad as a rendered preview. This actor reads the words off each text and image ad's preview, exactly as shown, in the ad's own language. A search ad's description is cut with "…" where the preview cuts it.

What you won't get. Video ads are not transcribed — you get the video link and thumbnail. The library does not publish impressions, spend or per-country reach, so neither does this actor.

📦 Output sample

There are three kinds of rows, told apart by rowType:

  • ad — advertiserName, advertiserId, verified, creativeId, format, headline, description, displayUrl, callToAction, otherText, language, copyStatus, previewImageUrl, videoUrl, videoThumbnailUrl, firstShown, lastShown, daysActive, stillRunning, transparencyUrl, country, platform, position, rowStatus, input, note, scrapedAt.
  • message_summary — advertiserName, advertiserId, advertiserIds, country, platform, adsAnalysed, adsRunning, adsWithoutWords, summary, offers, hooks, callsToAction, input, note, scrapedAt.
  • advertiser_skipped — input, skipReason, note, scrapedAt: a line no verified advertiser matched, or one the free plan's month left out. Never charged.

An image ad of HubSpot (US, real run of 27.10.2026):

{
"rowType": "ad",
"rowStatus": "full",
"position": 13,
"advertiserName": "Hubspot, Inc.",
"advertiserId": "AR10072600183532683265",
"verified": true,
"creativeId": "CR08031670009811959809",
"format": "image",
"headline": "Your teams, tools, and data — unified",
"description": "Stop juggling tools. HubSpot unifies your data, teams, and workflows in one place.",
"displayUrl": "hubspot.com",
"callToAction": "Learn More",
"otherText": "Generate quality leads that convert. · Get started",
"language": "en",
"copyStatus": "read",
"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/322824003257674309",
"videoUrl": null,
"firstShown": "2026-06-17T15:28:10.000Z",
"lastShown": "2026-10-27T14:39:34.000Z",
"daysActive": 133,
"stillRunning": true,
"transparencyUrl": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR08031670009811959809?region=US",
"country": "US",
"platform": "All platforms",
"input": "HubSpot"
}

A message summary of HubSpot from a run of 30 ads (one item of each list shown; the summary's last sentence trimmed):

{
"rowType": "message_summary",
"advertiserName": "Hubspot, Inc.",
"advertiserIds": ["AR10072600183532683265", "AR13611357312189988865", "AR14972029906777538561"],
"adsAnalysed": 28,
"adsRunning": 28,
"adsWithoutWords": 2,
"summary": "Hubspot's ads center on free tools (free email tracking, free CRM and marketing software) and on lead generation and AI products such as the AI Notetaker, Agent Builder and AEO. The main calls to action are 'Get started', 'Try it free' and 'Get a demo'.",
"offers": [
{ "rank": 1, "title": "Free CRM and marketing tools", "kind": "free_plan", "ads": 5, "shareOfAds": 17.9, "stillRunning": 5,
"examples": [{ "headline": "Free Chatbot Software - HubSpot's Chatbot Software", "description": "Start using HubSpot's chatbot builder for free without any integrations.", "stillRunning": true }] }
],
"hooks": [
{ "rank": 1, "title": "Generate leads and close deals", "ads": 5, "shareOfAds": 17.9, "stillRunning": 5,
"examples": [{ "headline": "HubSpot Business Software - For Marketing, Sales & Service", "description": "Grow traffic, convert leads, close deals, and turn customers into promoters…", "stillRunning": true }] }
],
"callsToAction": [
{ "rank": 1, "title": "Get started", "ads": 2, "shareOfAds": 7.1, "stillRunning": 2,
"examples": [{ "headline": "Free Marketing Tools - No CC Required - Get Started Free", "stillRunning": true }] }
]
}

In Apify Console the dataset has two views:

ViewWhat it shows
Adsadvertiser, format, headline, description, call to action, display URL, first and last shown, days active, still running, preview, video, ad page, row status
Message summariesadvertiser, ads analysed, ads running, summary, offers, messages, calls to action

⚡ Quick start

  1. Put HubSpot in Advertisers (or a competitor's website, like notion.com).
  2. Leave Country on United States and Max ads per advertiser on 200.
  3. Tick Message summary (AI) if you want the offers, messages and calls to action summed up.
  4. Click Start. One advertiser takes about a minute.

🧭 When to use it

  • Competitor research — what your competitors are saying in their Google ads right now: headlines, offers, calls to action, and which ads have run longest.
  • Ad copywriting — the exact wording that a market's advertisers keep running, as a starting point for your own ads.
  • Agencies and pitches — a prospect's or a rival's full ad library in one export, with dates, before a meeting.
  • Market monitoring — run it on a schedule with Still running only to see new ads and new offers as they appear.
  • "What are competitors saying?" — turn on the message summary for several advertisers and compare their leading offer, message and call to action side by side.

🛠 Input

FieldWhat it does
AdvertisersOne per line: a company or brand name, a website, an advertiser ID (AR…) or an advertiser page link. Up to 25 lines a run.
CountryAds shown in this country, or Anywhere. The country also decides which advertiser a name is matched to — the one advertising there.
Max ads per advertiserDefault 200, most recently shown first. Up to 360: 120 of each format (text, image, video).
Message summary (AI)One summary row per advertiser: offers, messages and calls to action, counted across up to 300 of its ads with words.
PlatformAll, or only Google Search, YouTube, Google Shopping, Google Play or Google Maps.
Ad formatAll, or only text, image or video ads.
Shown from / Shown toKeep the ads shown at any point in this window — including ads that started before it and were still running then.
Still running onlyOnly the ads shown in the last two days.

💰 How much does it cost to scrape Google Ads Transparency?

You pay per result, and nothing for a lookup that found nothing:

  • Ad — charged per ad delivered in full, with its words read where the ad has any.
  • Message summary — charged once per advertiser when its summary is written (only with the message summary on).

Filters are applied before you pay. Ads shown locked on the free plan are not charged. A name that matched no advertiser, and a summary that could not be written, are not charged. The price per event is on the Pricing tab.

🆓 Free vs paid plan

Free planPaid plan
Advertisers a month3no limit
Ads in full per advertiser25up to 360
Next ads25 shown locked (format and dates)—
Message summaryyes, on the ads in fullyes

🧪 Recipes

Two competitors side by side: HubSpot and Salesforce, Message summary on — two summary rows, and the status page compares their leading offer, message and call to action.

Only search ads: Platform Google Search, Ad format Text — headlines and descriptions only.

What ran during a launch: Shown from and Shown to around the launch dates — every ad shown at any point in that window.

What runs now: Still running only, Message summary on — the offers live today.

Pin an advertiser exactly: paste its advertiser ID (AR10072600183532683265) or its advertiser page link.

📡 Live status & storage records

RecordWhat it holds
Live Status (status.html)Progress while the run works, then what was saved — with several summaries, the side-by-side comparison — or why nothing was.
Run Summary (RUN_SUMMARY)Per advertiser: how it was matched, the accounts read, ads in the library, fetched, delivered, shown locked and filtered out, how many had their words read, the summary; the comparison; prices and the stop reason.
User Message (USER_MESSAGE)What happened and what to change — on every run that returned nothing.
Free-Plan Limits Applied (FREE_LIMITS_APPLIED)The free-plan limits that affected the run.

🤖 Programmatic / API use

curl -X POST "https://api.apify.com/v2/acts/afanasenko~google-ads-transparency-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"advertisers": ["HubSpot", "notion.com"], "country": "US", "maxAdsPerAdvertiser": 100, "messageSummary": true}'

Filter the rows by rowType: ad for ads, message_summary for the summaries. Every column is flat or a short list, so the ads export to CSV and Excel as they are.

💡 Tips & Best Practices

Getting maximum results

  • Type the name as it appears on the company's ads ("HubSpot"), or its main website. If the wrong company comes back, paste the advertiser ID — the Run Summary lists the accounts each line matched.
  • An advertiser that runs no ads in your country returns nothing there — try Anywhere.

Cost optimization

  • Set Max ads per advertiser to what you will read; 50–100 recent ads already show the main offers.
  • Use Platform, Ad format and the date window instead of filtering afterwards — what does not pass is not charged.

Data quality

  • The words are copied from each ad's preview as shown — the summary's examples are those same words, never rewritten.
  • The summary's counts come from the ads themselves: the AI only groups ads; every number is counted from them.
  • stillRunning means the ad was shown in the last two days.

❓ FAQ

Where does the ad text come from? The Ads Transparency Center shows each ad as a rendered preview. The actor reads the words off each text and image ad's preview — headline, description, display URL, call to action and any other words — exactly as shown. copyStatus says, per ad, whether the words were read.

Why does a video ad have no headline? Video ads are not transcribed. Their row links to the video and its thumbnail.

How is a name or a website matched to an advertiser? A name is matched to the verified advertiser account whose name fits it best in the chosen country, together with any other accounts of the same company name. A website is matched through the advertisers showing ads for it, keeping the one whose name carries the brand. The Run Summary says how each line was matched and which accounts were read.

Does the date window drop ads that started earlier? No. An ad is kept if it was shown at any point in the window, whenever it started.

In what language is the summary? English, whatever the language of the ads. The ad copy itself stays in the ad's own language.

Do I pay for an advertiser that was not found? No. Nothing is charged for a line no verified advertiser matched.

🛟 Support & feedback

Open the Issues tab with the input you used and what you expected. Ideas are welcome there too.

The Ads Transparency Center is a public library of ads and verified advertisers. This actor reads what it shows publicly. Use the data in line with the terms that apply to you, and respect the advertisers' trademarks and copyright when you reuse their ad text or images.

📋 Changelog

See the Changelog tab.