Google Ads Scraper avatar

Google Ads Scraper

Pricing

from $0.70 / 1,000 scraped ads

Go to Apify Store
Google Ads Scraper

Google Ads Scraper

Scrape Google Ads Transparency Center creatives from domains, keywords, advertiser IDs, or URLs. Export dates, formats, media URLs, copy, targeting, impressions, and platform filters for competitor research.

Pricing

from $0.70 / 1,000 scraped ads

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

103

Total users

31

Monthly active users

14 hours ago

Last modified

Share

Google Ads Scraper extracts public ad creatives from the Google Ads Transparency Center. It is for marketers, PPC teams, and analysts who want to see what ads a brand runs. Add a domain, keyword, advertiser ID, creative ID, or Transparency Center URL. You get one row per ad with advertiser IDs, creative IDs, formats, shown dates, ad copy, media URLs, targeting, impressions, and variants when Google shows them.

Each dataset row is one Google Ads Transparency Center creative. Every row has the same fields, so your tools can read one stable shape.

  • Ad identity: advertiser ID, advertiser name, legal name, region, verified status, and creative ID.
  • Ad copy: headline, body text, display URL, landing page URL, and call-to-action label.
  • Media: image URLs, video URLs, a preview URL, and a saved HTML preview file.
  • Timing: first shown date, last shown date, and number of days shown.
  • Reach and targeting: impression ranges, targeting flags, and stats by region and Google platform.
  • Variants: each creative version with its own copy, links, images, and videos.

Google does not show every field for every ad. When a value is missing, the field is null or an empty array. The Actor does not guess values.

🚀 How to scrape Google ads

  1. Add one or more values in Targets. You can use domains such as nike.com, keywords, advertiser IDs, creative IDs, or Google Ads Transparency Center URLs.
  2. Set Maximum ads to cap the number of ads for the whole run.
  3. Choose a Region, or pick Worldwide.
  4. If you want, choose a Platform, Ad format, Start date, or End date.
  5. Run the Actor. Then export the dataset or read it through the Apify API.

For a first run, keep the nike.com target, region US, and Maximum ads set to 10.

⚙️ Input

Input fields

FieldTypeWhat it does
targetsarray of stringsRequired. Domains, keywords, advertiser IDs, creative IDs, or Google Ads Transparency Center URLs. Duplicate and empty values are skipped. The form starts with nike.com.
maxResultsintegerMost ads to save across all targets. Use 0 or leave it empty to get all available ads. The form starts with 10.
regionstringTwo-letter country code, such as US or SE. Use an empty value for Worldwide. Default: US.
platformstringgoogle_search, youtube, google_shopping, google_maps, or google_play. Empty means all platforms. Default: empty.
adFormatstringtext, image, or video. Empty means all formats. For Shopping ads, choose google_shopping in platform. Default: empty.
dateFromstringOptional. Keep ads shown on or after this date, in YYYY-MM-DD form.
dateTostringOptional. Keep ads shown on or before this date, in YYYY-MM-DD form. It must not be before dateFrom.

Example input

{
"targets": [
"nike.com"
],
"maxResults": 10,
"region": "US",
"platform": "",
"adFormat": ""
}

🧾 Output

Output fields

FieldTypeWhat it does
submittedTargetstringThe input target that found this ad.
advertiserIdstringGoogle Ads Transparency Center advertiser ID.
advertiserNamestringAdvertiser name shown by Google.
advertiserLegalNamestring or nullLegal advertiser name, when Google shows it.
advertiserRegionCodestring or nullAdvertiser region code, when Google shows it.
advertiserVerifiedboolean or nullWhether Google marks the advertiser as verified.
creativeIdstringGoogle creative ID for the ad.
formatstringtext, image, video, or unknown.
adUrlstringGoogle Ads Transparency Center page for this ad.
creativePreviewUrlstring or nullGoogle-hosted preview link for the creative.
previewDownloadUrlstring or nullLink to download the ad preview as an HTML file.
firstShownstringFirst date Google reports the ad was shown, in YYYY-MM-DD form.
lastShownstringLast date Google reports the ad was shown, in YYYY-MM-DD form.
totalDaysShownintegerAbout how many days the ad was shown.
headlinestring or nullAd headline or product title, when available.
bodystring or nullAd body or description text, when available.
ctastring or nullCall-to-action label, when available.
displayUrlstring or nullWebsite address shown in the ad, when available.
destinationUrlstring or nullLanding page link, when available.
imageUrlsarray of stringsImage file URLs for the creative.
videoUrlsarray of stringsVideo file or playback links for the creative.
impressionsobject or nullOverall impression range, when Google shows it.
impressions.lowerBoundinteger or nullLowest impression count reported.
impressions.upperBoundinteger or nullHighest impression count reported.
targetingobject or nullTargeting flags, when Google shows them.
targeting.demographicsobjectincluded and excluded flags (boolean or null) for demographic targeting.
targeting.geographyobjectincluded and excluded flags for location targeting.
targeting.contextualobjectincluded and excluded flags for context targeting.
targeting.customerListsobjectincluded and excluded flags for customer-list targeting.
targeting.topicsOfInterestobjectincluded and excluded flags for interest targeting.
regionStatsarray of objectsStats for each country or region where the ad was shown.
regionStats.regionCodestringCountry or region code.
regionStats.regionNamestringCountry or region name.
regionStats.firstShownstring or nullFirst shown date in this region.
regionStats.lastShownstring or nullLast shown date in this region.
regionStats.impressionsobject or nullImpression range in this region, with lowerBound and upperBound.
regionStats.platformStatsarray of objectsImpression ranges by Google platform in this region. Each item has the same fields as platformStats.
platformStatsarray of objectsOverall impression ranges by Google platform. Left out when Google gives no overall ranges.
platformStats.platformstringgoogle_search, youtube, google_shopping, google_maps, google_play, or unknown.
platformStats.platformNamestringPlatform name reported by Google.
platformStats.impressionsobject or nullImpression range, with lowerBound and upperBound.
variantsarray of objectsEach version of the creative.
variants.headlinestring or nullHeadline or product title for this version.
variants.bodystring or nullBody or description text for this version.
variants.displayUrlstring or nullWebsite address shown in this version.
variants.destinationUrlstring or nullLanding page link for this version.
variants.ctastring or nullCall-to-action label for this version.
variants.imageUrlsarray of stringsImage file URLs for this version.
variants.videoUrlsarray of stringsVideo file or playback links for this version.

Example ad

{
"submittedTarget": "nike.com",
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"advertiserLegalName": "Nike, Inc.",
"advertiserRegionCode": "US",
"advertiserVerified": true,
"creativeId": "CR13798212767800360961",
"format": "text",
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR13798212767800360961",
"creativePreviewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=9975158271&creativeId=681045306684&uiFeatures=12&adGroupId=145820412956&versionId=4&assets=%3DH4sIAAAAAAAAAONS4OLkOHpg28G1TALMXBwcN66eWSspwMjFybF6N1iQUYqd49_SpXOX8Uixc1x9_2h_B5MUO0dD46yHmzil2DnO9b079odJio3j2eSDbb5S7Bwz_txbDVZy9PfUpadBmp70gJWwc8yGSc2DMRq7Xj-fBGKc6ACpAQDxWbZvjQAAAA&allowedVariations=39&sig=ACiVB_z2Hyrb2YHR8mN2wXCHboy0IG26TQ&htmlParentId=fletch-render-12062201132597990860&responseCallback=fletchCallback12062201132597990860",
"previewDownloadUrl": "https://api.apify.com/v2/key-value-stores/shctdJCS6pQyRAD9y/records/preview-CR13798212767800360961.html?signature=1iPNotShmCTquPSjposGW",
"firstShown": "2023-11-17",
"lastShown": "2026-10-30",
"totalDaysShown": 1079,
"headline": "Nike® Official Site",
"body": "Nike® basketball shoes for your young athletes. Designed with comfort and mobility.",
"cta": null,
"displayUrl": "nike.com",
"destinationUrl": null,
"imageUrls": [
"https://tpc.googlesyndication.com/archive/simgad/13127716173736170281",
"https://tpc.googlesyndication.com/archive/simgad/9030713188503643279",
"https://tpc.googlesyndication.com/archive/simgad/15393350721185562867",
"https://tpc.googlesyndication.com/archive/simgad/10965413325068165946"
],
"videoUrls": [],
"impressions": null,
"targeting": null,
"regionStats": [
{
"regionCode": "US",
"regionName": "United States",
"firstShown": null,
"lastShown": "2026-10-29",
"impressions": null,
"platformStats": []
}
],
"variants": [
{
"headline": null,
"body": null,
"displayUrl": null,
"destinationUrl": null,
"cta": null,
"imageUrls": [
"https://tpc.googlesyndication.com/archive/simgad/13127716173736170281"
],
"videoUrls": []
},
{
"headline": null,
"body": null,
"displayUrl": null,
"destinationUrl": null,
"cta": null,
"imageUrls": [
"https://tpc.googlesyndication.com/archive/simgad/9030713188503643279"
],
"videoUrls": []
},
{
"headline": null,
"body": null,
"displayUrl": null,
"destinationUrl": null,
"cta": null,
"imageUrls": [
"https://tpc.googlesyndication.com/archive/simgad/15393350721185562867"
],
"videoUrls": []
},
{
"headline": null,
"body": null,
"displayUrl": null,
"destinationUrl": null,
"cta": null,
"imageUrls": [
"https://tpc.googlesyndication.com/archive/simgad/10965413325068165946"
],
"videoUrls": []
},
{
"headline": "Nike® Official Site",
"body": "Nike® basketball shoes for your young athletes. Designed with comfort and mobility.",
"displayUrl": "nike.com",
"destinationUrl": null,
"cta": null,
"imageUrls": [],
"videoUrls": []
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing. You pay only for ads saved to your dataset.

  • Scraped ad: one Google ad saved to your dataset, with all the details the Actor could get for it.

The price per ad depends on your Apify plan. It is $0.0009 on the Free and Bronze plans, $0.0008 on Silver, and $0.00065 on Gold and higher plans. For example, 1,000 ads on the Free plan cost $0.90. A target that finds no ads adds no ad charge. When your spending limit is reached, the Actor stops saving new ads.

These plan prices start on November 13, 2026. Until then, each saved ad has two charges: $0.0007 for the Scraped ad event and $0.0001 for the Added ad detail event. That is $0.0008 per ad, so 1,000 ads cost $0.80.

🔌 Integrations

  • Use the Apify API to send Google Ads creative rows to your own app or data warehouse.
  • Schedule recurring runs to monitor brands, domains, or advertiser IDs.
  • Export results as JSON, CSV, Excel, XML, RSS, or HTML.
  • Connect webhooks to alert your team when a run finishes.
  • Send rows to BI tools, spreadsheets, CRM workflows, or internal reporting systems.

❓ FAQ

Why do some ads have no headline or body text?

Google does not share readable text for every ad. When the Actor cannot read the text, headline and body stay null. It does not guess missing text.

Can I search by advertiser ID or creative ID?

Yes. Add an advertiser ID such as AR16735076323512287233. For one ad, add its Google Ads Transparency Center creative URL.

How do I get every ad from a domain?

Add the domain in Targets and set Maximum ads to 0. The Actor then saves all ads it can find for that domain and your filters.

Why are some fields empty?

Google Ads Transparency Center does not show every field for every ad. Copy, landing page links, impression ranges, targeting, region stats, platform stats, and media links can be missing on some ads.

Do I need a Google Ads account?

No. The Actor reads public Google Ads Transparency Center data. You do not need a Google Ads account, Google cookies, or a Google API key.

Is this a Google Ads library scraper?

Yes. It scrapes the public Google Ads Transparency Center, which many people call the Google Ads library. It does not read private Google Ads account data.

Can it scrape live Google Search ads?

No. This Actor reads the Google Ads Transparency Center archive. For live paid Shopping ads on Google Search pages, use Google Shopping Ads Scraper from the related Actors below.

Why not use the Google Ads API?

The Google Ads API is for account and campaign data you are allowed to access. This Actor is for public ad research across domains, advertisers, keywords, and Google Ads Transparency Center URLs.

What are Google Ads Transparency Center alternatives?

For live Shopping ads, use a Google Shopping ads scraper. For other ad libraries, use tools made for that platform, such as LinkedIn, TikTok, Pinterest, or Snapchat ad scrapers.

📝 Changelog

v1.0 (30-10-2026)

  • Every row now has full ad details, so the detailLevel input is removed. Remove it from saved inputs. The separate details charge ends when the new prices start on November 13, 2026.
  • The downloadMedia input and the storedMedia output field are removed. The Actor no longer saves its own copies of ad images and videos. Use imageUrls and videoUrls for links to the ad media. The new previewDownloadUrl field links to a saved HTML copy of the ad preview when one is available.
  • The shopping choice is removed from the adFormat input and from the format output field. Shopping is a place where ads show, not an ad format. To find Shopping ads, set platform to google_shopping.
  • Ad rows now fill headline and body from the ad preview when Google has that text, so fewer rows have empty ad copy.
  • New cta and advertiserVerified output fields show the call to action and whether Google marks the advertiser as verified.

v0.1

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré