Google Ads Transparency Scraper — $1.50/1k ads
Pricing
from $2.50 / 1,000 ad scrapeds
Google Ads Transparency Scraper — $1.50/1k ads
Scrape Google Ads Transparency Center by advertiser domain or AR id. Every row includes headline, description, CTA, creative variations, landing URLs, regions and first/last-shown dates. Optional only-new watch and asset download. $1.50 per 1,000 ads. Public Center only — no Google login.
Pricing
from $2.50 / 1,000 ad scrapeds
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
22
Total users
5
Monthly active users
3 hours ago
Last modified
Categories
Share
Google Ads Transparency Center Scraper
Full creatives by advertiser domain or AR id — $1.50 per 1,000 ads
Headline, description, CTA, variations, landing URLs, regions and optional asset download on every row. One charge per ad written. No monthly subscription.
High-volume daily crawls may still be cheaper on the flat monthly rental twin. Same engine and output.
Overview
This actor scrapes the Google Ads Transparency Center to extract detailed information about active and historical advertising campaigns. It is ideal for marketers, researchers, journalists, and compliance professionals who need to analyze ad strategies, monitor brand usage, or archive political and regulated ads.
Supported Filters:
- Advertiser domain: Target ads from specific companies (e.g.,
temu.com) - Region/country: Focus on ads shown in specific countries or regions (e.g., US, EU)
- Ad format: Filter by ad type (IMAGE, VIDEO, TEXT)
- Advertiser domain or ID: Pull every ad an advertiser is currently running. Google's Ads Transparency Center indexes advertisers by domain and by advertiser ID — it has no free-text advertiser-name search, so pass
nike.comorAR13288476527828631553rather thannike. - Ad status: Scrape both active and inactive (archived) ads
- Date range: Analyze ads by first/last seen dates
- Advertiser ID: Scrape all ads for a specific advertiser using only their advertiser ID (see below)
Rich Output:
- Full ad copy, not just metadata — headline, long headline, description, and call-to-action as top-level columns on every row
- Captures all creative variations (images, videos, text) with direct media URLs: image, logo, video thumbnail, YouTube video ID + watch URL, and raw video file where Google serves one
- Landing page URLs and landing domain resolved per creative
- Includes region-level stats, impression ranges (lower/upper bounds), served countries, and surfaces (Google Search, YouTube, Shopping, Maps, Play)
- Provides advertiser name, targeting, and first/last shown dates
Features
- Precision Filtering: Target ads by advertiser domain or advertiser ID, then narrow by region, ad format and date range
- Comprehensive Data: Extracts 15+ fields per ad, including all creative variations, region stats, and technical metadata
- Dynamic Delays: Randomized delays (5–10s) between API calls to avoid detection and throttling
- Residential Proxies: Built-in Apify residential proxy rotation for maximum stealth and reliability
- Retry Resilience: Up to 100 retries per failed request to maximize data completeness
- Concurrency Control: Adjustable concurrency (1–10 pages in parallel) for optimal speed and stability
- Historical Range: Scrape both current and past campaigns, including archived ads
- Surface Insights: Breaks down impressions and stats by Google surfaces (e.g., SEARCH, SHOPPING)
- Flexible Export: Download results as JSON, CSV, or Excel for easy analysis
- Future-Proof: Designed to adapt to Google’s frequent UI/API changes
How to Use
- Set Up: Ensure you have an Apify account and access to the Google ads transparency scraper/actor.
- Configure Input:
- Advertiser domain or ID:
temu.comorAR13288476527828631553. - Batch lists: several domains and/or AR ids in one run (
domains,advertiserIds). - Start URLs (optional): Google Ads Transparency Center URLs if you already have them:
- Filtered search:
https://adstransparency.google.com/?region=US&domain=temu.com - Single ad detail:
https://adstransparency.google.com/advertiser/AR08337076844943638529/creative/CR01407804741060132865?region=US - Advertiser-only (all ads for one advertiser):
https://adstransparency.google.com/advertiser/AR13531926238557372417?region=NZ
- Filtered search:
- Max number of items: Set the maximum number of items to scrape (optional, default: 100).
- Proxy Configuration: Set up proxy settings for enhanced reliability (recommended).
- Advertiser domain or ID:
- Run the Scraper: Launch the actor on the Apify platform.
- Collect Data: Retrieve the scraped data in your preferred format (JSON, CSV, etc.).
Input Configuration
{"searchQuery": "temu.com","domains": ["nike.com"],"advertiserIds": ["AR13288476527828631553"],"region": "US","maxItems": 100}
Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| searchQuery | String | One advertiser domain (temu.com) or AR id | — |
| domains | Array | Extra domains in the same run | — |
| advertiserIds | Array | Extra AR… ids in the same run | — |
| startUrls | Array | Raw Transparency Center URLs (optional; built from the fields above) | — |
| maxItems | Integer | Max ads to scrape per run | 100 |
| minDelay | Integer | Minimum delay (seconds) between API calls | 5 |
| maxDelay | Integer | Maximum delay (seconds) between API calls | 10 |
| maxConcurrency | Integer | Max parallel page processing threads | 10 |
| minConcurrency | Integer | Minimum parallel threads | 1 |
| maxRequestRetries | Integer | Retry attempts for failed requests | 100 |
| proxy | Object | Residential proxy configuration | Apify Proxy |
Output Structure
Creative content fields (added August 2026)
Every row now carries the rendered ad content at the top level, alongside the identifiers:
| Field | Description |
|---|---|
headline | The ad's headline as rendered (e.g. "Temu Clearance Sale") |
longHeadline | Extended headline where the template defines one |
description | Ad body copy |
callToAction | CTA label (e.g. "Shop Now") |
advertiserName | Advertiser display name — resolved via Google's own advertiser lookup on every row |
advertiserLegalName, advertiserCountry | The advertiser's registered legal entity and country (e.g. "Whaleco Inc.", US, for Temu ads) |
firstShown / lastShown | Run dates for the creative |
creativeRegions | Flat list of country names the creative served in |
And per entry in variations[]: headline, longHeadline, body, description, callToAction, advertiserName, image, logoUrl, thumbnailUrl, videoUrl, youtubeVideoId, youtubeUrl, videoAspectRatio, destinationUrl, visibleUrl — plus the full googleTemplateData payload for anything template-specific. regionStats[].impressions reports true lowerBound/upperBound ranges, and surfaceServingStats labels surfaces by name (Google Search, YouTube, Google Shopping, Google Maps, Google Play).
Video sample output
{"advertiserId": "AR08337076844943638529","creativeId": "CR01407804741060132865","adUrl": "https://adstransparency.google.com/advertiser/AR08337076844943638529/creative/CR01407804741060132865?region=US","format": "Video","advertiserName": "实源电子","advertiserDomain": "temu.com","firstShown": "2025-03-18T03:42:03.000Z","lastShown": "2025-04-22T12:07:28.000Z","shownAd": {"google_width": 400,"google_height": 667,"google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=","google_td_ad_signals": "","google_td_ad_metadata": "","google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_","redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995","visible_url": "temu.com","destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995","final_url": "","evc_touch": "true","link_target": "_blank","google_template_data": {"adData": [{"headline": "Farmhouse Style TV Stand with Fireplace","description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room","longHeadline": "Farmhouse Style TV Stand with Fireplace","useVideoThumbnail": "true","layout": "discover","video": "//rr2---sn-q4fl6ndl.googlevideo.com/videoplayback?expire=1745382732&ei=zPwHaIrRL5Gwp84Pi5fF0Qc&ip=2600:1700:98e0:2b70:5484:67:8a0a:8e58&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353932,&mh=oW&mm=31&mn=sn-q4fl6ndl&ms=au&mv=m&mvi=2&pl=43&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353497&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRAIgFmzO6E8a6Jr40Hrhq0X32FWEMZ73m_kEPnV6i7b34ycCIEIS53p2m3JLNClxQy_2oPghw82XEc_MWtI6CV2fZExe&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRQIgElvOpe14ycCrSQAcqHnSnOjmIEKLsR85C5WSYXrnwKoCIQCs8qrgMLgxAazKouGoC8leJnCckMnaksLfUbsnSOndbQ==","videoAspectRatio": "1.7777777777777777","thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg","video_videoId": "inh87fEi930","video_videoAspectRatio": "1.7777777777777777","gpaFlagBgSignalClickLocationEnabled": "true","gpaAddNewItem": "mock","gpaPriceDropType": "animation","versionInfo": "7.3.2","FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]","FLAG_pass_gclid_to_deeplink_url": "True","gpaUseWideLogo": "true","gpaLimitAnimationTime": "first","gpaSpecifiedLogo": "true","gpaFlagBackgroundUnclickable": "true","siriusFlagBackgroundUnclickable": "true","gpaAddPromoText": "true","hot_item_label": "Hot"}]},"format": "VIDEO"},"adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=3507283165&creativeId=739509201062&uiFeatures=12&adGroupId=176594498836&assets=%3DH4sIAAAAAAAAAONy4uLkmLhqW_sCFgFNIPPW34mPt7EIsAGZx9ZMvTCPTYAHyDx4vw_EZEIwGYHMfRAmMwBgj-lIRAAAAA&sig=ACiVB_xfVT41FtNE7DU4jHay3UY0bZQFqA&htmlParentId=fletch-render-13331330074118258703&responseCallback=fletchCallback13331330074118258703","creativeRegions": ["United States"],"regionStats": [{"regionCode": "US","regionName": "United States","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null}],"variations": [{"google_width": 400,"google_height": 667,"google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=","google_td_ad_signals": "","google_td_ad_metadata": "","google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_","redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995","visible_url": "temu.com","destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995","final_url": "","evc_touch": "true","link_target": "_blank","google_template_data": {"adData": [{"headline": "Farmhouse Style TV Stand with Fireplace","description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room","longHeadline": "Farmhouse Style TV Stand with Fireplace","useVideoThumbnail": "true","layout": "discover","video": "//rr4---sn-fpoqnugx5h-axms.googlevideo.com/videoplayback?expire=1745382738&ei=0vwHaMumHLjKy_sPhq_XyAU&ip=67.214.30.154&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353938,&mh=oW&mm=31&mn=sn-fpoqnugx5h-axms&ms=au&mv=m&mvi=4&pl=20&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353751&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRQIhAPFL5TGnGr9u6PY8U4LAm8NqEMERXI8vDyYTpsAjO3A0AiBSz_eaNBAsMpt1UKm-qwTsfXjLH3uok4F0Q7_rYhaxRA==&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRAIgKsA2nick03zTUJ6HAT2W3IDh0omW1DRDjv36jexrj48CIGR9tLAxDAxPd4jjPzAD_l1aT4EUo7ReQRMXOqtg4DlV","videoAspectRatio": "1.7777777777777777","thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg","video_videoId": "inh87fEi930","video_videoAspectRatio": "1.7777777777777777","gpaSpecifiedLogo": "true","gpaLimitAnimationTime": "first","gpaPriceDropType": "animation","versionInfo": "7.3.2","FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]","gpaAddNewItem": "mock","gpaUseWideLogo": "true","FLAG_pass_gclid_to_deeplink_url": "True","gpaFlagBgSignalClickLocationEnabled": "true","gpaAddPromoText": "true","siriusFlagBackgroundUnclickable": "true","gpaFlagBackgroundUnclickable": "true","hot_item_label": "Hot"}]},"format": "VIDEO"},{"google_width": 400,"google_height": 667,"google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=","google_td_ad_signals": "","google_td_ad_metadata": "","google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_","redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995","visible_url": "temu.com","destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995","final_url": "","evc_touch": "true","link_target": "_blank","google_template_data": {"adData": [{"headline": "Farmhouse Style TV Stand with Fireplace","description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room","longHeadline": "Farmhouse Style TV Stand with Fireplace","useVideoThumbnail": "true","layout": "discover","video": "//rr2---sn-p5qlsnrl.googlevideo.com/videoplayback?expire=1745382742&ei=1vwHaKuIJ_6xu7AP4_LOkQo&ip=2601:152:1481:20:241c:bcc7:b327:301f&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353942,&mh=oW&mm=31&mn=sn-p5qlsnrl&ms=au&mv=m&mvi=2&pl=36&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353497&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRAIgGJmqHi4wWmU9vcsDfTAgO_mtMC-ppsgC7m3SHrO05CUCIBn2tpyCNZcqJxlnFwCOB0NaoQxFSXU8MlkMkKin9CaL&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRAIgPU1xcpU8I8T79mfkT4_fNzSYtvlCyDhNyOfM2U60sV0CIFBJVZ2Uw7BwhgUuDIRnLUpBt6p_5Rdfk1_zXUWe4O5L","videoAspectRatio": "1.7777777777777777","thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg","video_videoId": "inh87fEi930","video_videoAspectRatio": "1.7777777777777777","siriusFlagBackgroundUnclickable": "true","gpaLimitAnimationTime": "first","FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]","versionInfo": "7.3.2","gpaPriceDropType": "animation","gpaAddNewItem": "mock","gpaUseWideLogo": "true","FLAG_pass_gclid_to_deeplink_url": "True","gpaAddPromoText": "true","gpaSpecifiedLogo": "true","gpaFlagBgSignalClickLocationEnabled": "true","gpaFlagBackgroundUnclickable": "true","hot_item_label": "Hot"}]},"format": "VIDEO"}]}
Video Ad Output Fields
| Field | Type | Description |
|---|---|---|
advertiserId | String | Unique Google advertiser ID. |
creativeId | String | Unique ID for the specific ad creative. |
adUrl | String | Direct link to the ad in the Google Ads Transparency Center. |
format | String | Ad format, e.g., "Video". |
advertiserName | String | Name of the advertiser as shown in the Transparency Center. |
advertiserDomain | String | Advertiser's website domain. |
firstShown | String | ISO 8601 date when the ad was first seen running. |
lastShown | String | ISO 8601 date when the ad was last seen running. |
shownAd | Object | Main ad creative object (see below for subfields). |
adLink | String | Direct link to a preview of the ad creative. |
creativeRegions | Array | List of regions/countries where the ad was shown. |
regionStats | Array | Array of objects with region-specific stats (region code, name, first/last shown, impressions). |
variations | Array | Array of ad creative variations (different sizes, layouts, etc.), each with its own details. |
shownAd subfields:
| Field | Type | Description |
|---|---|---|
google_width | Integer | Width of the ad creative in pixels. |
google_height | Integer | Height of the ad creative in pixels. |
google_click_url | String | Google click tracking URL for the ad. |
google_td_ad_signals | String | Technical ad signals (may be empty or for internal use). |
google_td_ad_metadata | String | Technical ad metadata (may be empty or for internal use). |
google_ait_url | String | Google Ads conversion tracking URL. |
redirect_url | String | Final redirect URL to the advertiser's landing page. |
visible_url | String | Displayed URL in the ad. |
destination_url | String | Actual destination URL for the ad click. |
final_url | String | Final resolved URL after all redirects (may be empty). |
evc_touch | String | Touch event tracking flag (usually "true"). |
link_target | String | Target for the ad link (e.g., "_blank" for new tab). |
google_template_data | Object | Contains ad creative data (see below for adData fields). |
format | String | Format of the ad creative, e.g., "VIDEO". |
google_template_data.adData[] subfields:
| Field | Type | Description |
|---|---|---|
headline | String | Main headline of the ad. |
description | String | Description text of the ad. |
longHeadline | String | Extended headline, if available. |
useVideoThumbnail | String | Indicates if a video thumbnail is used ("true"/"false"). |
layout | String | Layout type (e.g., "discover"). |
video | String | URL to the video file (may be a YouTube or Google-hosted video). |
videoAspectRatio | String | Aspect ratio of the video (e.g., "1.777..."). |
thumbnail | String | URL to the video thumbnail image. |
video_videoId | String | Video ID (if hosted on YouTube). |
video_videoAspectRatio | String | Aspect ratio of the video (duplicate of videoAspectRatio). |
| ... | ... | Additional technical or experimental fields (may vary per ad). |
Other fields:
| Field | Type | Description |
|---|---|---|
creativeRegions | Array | List of regions/countries where the ad was shown. |
regionStats | Array | Array of objects with region-specific stats (region code, name, first/last shown, impressions). |
variations | Array | Array of ad creative variations (different sizes, layouts, etc.), each with its own details. |
| Field | Type | Description |
|---|---|---|
scraped_at | String | Timestamp when this ad was scraped |
source_url | String | The URL from which the ad was scraped |
Image sample output
{"advertiserId": "AR01614014350098432001","creativeId": "CR03153595576927387649","adUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR03153595576927387649?region=US","format": "Image","advertiserName": "Lululemon Athletica Canada Inc.","advertiserDomain": "temu.com","firstShown": "2024-07-18T21:11:12.000Z","lastShown": "2025-04-22T15:44:39.000Z","shownAd": {"adTitle": "lululemon Women's Scuba Oversized Pullover Wordmark Size M/L Pink","adImage": "https://encrypted-tbn3.gstatic.com/shopping?q\\=tbn:ANd9GcQKzTk3ThczwbfU4ZWA3jJ-B1iUItEOtc7PPf9L4ZjV_IXvTYA","adDescription": "lululemon","advertiser": "lululemon","storeType": null,"callToAction": null,"categories": [],"format": "IMAGE"},"adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=9072866319&creativeId=706133062513&uiFeatures=12&adGroupId=160157227890&itemIds=15447364115943834769&overlay=%3DH4sIAAAAAAAAALMSMxLhEuKceOTTvYv8CdcEl0k2zbgX8pvNS4ZLILm42CWzuCAnsTK4pCgzL12Ig4vNPT8_PSfVS5FLojgjv6AAKOqY4p-WllrkXJSaWJJZlmogxGrFzLGcy0sFpxJDIQ4rNo5fTEKMjHhUGYFVPeEUYuTGY50x2LpmbjwGmYAN-go0SAAAbiDVgO4AAAA&sig=ACiVB_wBb_M7zT2NNPoBKXJt6vU-Q-c0EA&htmlParentId=fletch-render-3132676012382965825&responseCallback=fletchCallback3132676012382965825","creativeRegions": ["United States"],"regionStats": [{"regionCode": "US","regionName": "United States","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null}],"variations": [{"adTitle": "lululemon Women's Scuba Oversized Pullover Wordmark Size M/L Pink","adImage": "https://encrypted-tbn3.gstatic.com/shopping?q\\=tbn:ANd9GcQKzTk3ThczwbfU4ZWA3jJ-B1iUItEOtc7PPf9L4ZjV_IXvTYA","adDescription": "lululemon","advertiser": "lululemon","storeType": null,"callToAction": null,"categories": [],"format": "IMAGE"},{"adTitle": "lululemon Women's Pleat-Front High-Rise Trouser Regular Size 6 Brown","adImage": "https://encrypted-tbn1.gstatic.com/shopping?q\\=tbn:ANd9GcR-cXZ2nybKDr9ed0P41PBtQCHiEAHLk66d__Uwjri9l5zzg3Y","adDescription": "lululemon","advertiser": "lululemon","storeType": null,"callToAction": null,"categories": [],"format": "IMAGE"},{"adTitle": "lululemon Women's Pleat-Front High-Rise Trouser Regular Size 6 Brown","adImage": "https://encrypted-tbn1.gstatic.com/shopping?q\\=tbn:ANd9GcR-cXZ2nybKDr9ed0P41PBtQCHiEAHLk66d__Uwjri9l5zzg3Y","adDescription": "lululemon","advertiser": "lululemon","storeType": null,"callToAction": null,"categories": [],"format": "IMAGE"}]}
Image Ad Output Fields
| Field | Type | Description |
|---|---|---|
advertiserId | String | Unique Google advertiser ID. |
creativeId | String | Unique ID for the specific ad creative. |
adUrl | String | Direct link to the ad in the Google Ads Transparency Center. |
format | String | Ad format, e.g., "Image". |
advertiserName | String | Name of the advertiser as shown in the Transparency Center. |
advertiserDomain | String | Advertiser's website domain. |
firstShown | String | ISO 8601 date when the ad was first seen running. |
lastShown | String | ISO 8601 date when the ad was last seen running. |
shownAd | Object | Main ad creative object (see below for subfields). |
adLink | String | Direct link to a preview of the ad creative. |
creativeRegions | Array | List of regions/countries where the ad was shown. |
regionStats | Array | Array of objects with region-specific stats (region code, name, first/last shown, impressions). |
variations | Array | Array of ad creative variations (different images, titles, etc.), each with its own details. |
shownAd and variations[] subfields:
| Field | Type | Description |
|---|---|---|
adTitle | String | Title or headline of the ad. |
adImage | String | URL to the ad image. |
adDescription | String | Description text of the ad. |
advertiser | String | Name of the advertiser (may duplicate advertiserName). |
storeType | String | Type of store (if available, otherwise null). |
callToAction | String | Call-to-action text (if available, otherwise null). |
categories | Array | List of product or ad categories (may be empty). |
format | String | Format of the ad creative, e.g., "IMAGE". |
Text sample output
{"advertiserId": "AR00931916197090295809","creativeId": "CR06698593464864473089","adUrl": "https://adstransparency.google.com/advertiser/AR00931916197090295809/creative/CR06698593464864473089?region=US","archiveImageUrl": "https://tpc.googlesyndication.com/archive/simgad/11649949633206913875","format": "Text","advertiserName": "Whaleco Inc.","advertiserDomain": "temu.com","firstShown": "2024-11-18T12:27:15.000Z","lastShown": "2025-04-22T20:12:32.000Z","adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=5814258847&creativeId=721827965455&uiFeatures=12&adGroupId=170957075695&overlay=%3DH4sIAAAAAAAAAFVQwUrDQBAlICVdtdZURALCIEgVavHioce2ngLqIRXPa3bSLG52w-6mQRDpP4ggfoHH_oT_If6AXyC425uXYR7z5r03k1yQsEDKBJcYnZL-DMt6OFUl3OQ5zzgVkHKLcAZjIWBKLc6V5miSj4BsMjSZ5pXlSkZvAXkNJlo1BsEWqjZUMgMqh3u97lyBnLvCkAo3kPCoag05XTg9i45gwXsPIC1UBdeqGYKLgevFrMDsAYyHjluuyRSEaqDSPMOB1-ozkLhADQ2VFqyCkhvj6MNkj7QW3NRaRISE1t-XqTJxgfcpY9ynpyJFqrNizC6ppdHz0VMcke6d85N9A1OhbMHlPO6RXR8RJs5Z1RZSKjDukK0JGgdQCNQm3iHbtxXMFIzOj_0T4y7pXP3TeQ8PSS9cLpdfP5_fL79Bd9U-WLVPgqhFNrz-H6qwi6yTAQAA&sig=ACiVB_x_pOkAgixioHlBkBEb5RPa3TuRCw&htmlParentId=fletch-render-6097491865125542417&responseCallback=fletchCallback6097491865125542417","creativeRegions": ["Netherlands","Mexico","Northern Mariana Islands","Guam","United States","Canada","Italy","Ireland","Portugal","Germany","France","Spain"],"regionStats": [{"regionCode": "NL","regionName": "Netherlands","firstShown": 20241118,"lastShown": 20250419,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "MX","regionName": "Mexico","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null},{"regionCode": "MP","regionName": "Northern Mariana Islands","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null},{"regionCode": "GU","regionName": "Guam","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null},{"regionCode": "US","regionName": "United States","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null},{"regionCode": "CA","regionName": "Canada","firstShown": null,"lastShown": 20250422,"impressions": null,"surfaceServingStats": null},{"regionCode": "IT","regionName": "Italy","firstShown": 20241120,"lastShown": 20250421,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "IE","regionName": "Ireland","firstShown": 20241121,"lastShown": 20250422,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "PT","regionName": "Portugal","firstShown": 20241122,"lastShown": 20250422,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "DE","regionName": "Germany","firstShown": 20241122,"lastShown": 20250422,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "FR","regionName": "France","firstShown": 20241123,"lastShown": 20250421,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]},{"regionCode": "ES","regionName": "Spain","firstShown": 20241124,"lastShown": 20250422,"impressions": {"lowerBound": 1000,"upperBound": 1000},"surfaceServingStats": [{"surfaceCode": "SHOPPING","surfaceName": "4","impressions": {"lowerBound": 0,"upperBound": 1000}},{"surfaceCode": "SEARCH","surfaceName": "3","impressions": {"lowerBound": 0,"upperBound": 1000}}]}],"variations": [{"adTitle": "Temu.Com Official Site - All Categories","adImage": "www.temu.com/","adDescription": "Temu.Com Official Site - All Categories","advertiser": null,"storeType": null,"callToAction": null,"categories": ["Women's Clothing","Men's Clothing"],"format": "IMAGE"},{"adTitle": "Temu.Com Official Site - All Categories On Sale","adImage": "www.temu.com/","adDescription": "Temu.Com Official Site - All Categories On Sale","advertiser": null,"storeType": null,"callToAction": null,"categories": ["Women's Clothing","Men's Clothing"],"format": "IMAGE"},{"adTitle": "Temu.Com Official Site - Shop All Categories","adImage": "www.temu.com/","adDescription": "Temu.Com Official Site - Shop All Categories","advertiser": null,"storeType": null,"callToAction": null,"categories": ["Women's Clothing"],"format": "IMAGE"}]}
Text Ad Output Fields
| Field | Type | Description |
|---|---|---|
advertiserId | String | Unique Google advertiser ID. |
creativeId | String | Unique ID for the specific ad creative. |
adUrl | String | Direct link to the ad in the Google Ads Transparency Center. |
archiveImageUrl | String | URL to an archived image of the ad creative (if available). |
format | String | Ad format, e.g., "Text". |
advertiserName | String | Name of the advertiser as shown in the Transparency Center. |
advertiserDomain | String | Advertiser's website domain. |
firstShown | String | ISO 8601 date when the ad was first seen running. |
lastShown | String | ISO 8601 date when the ad was last seen running. |
adLink | String | Direct link to a preview of the ad creative. |
creativeRegions | Array | List of regions/countries where the ad was shown. |
regionStats | Array | Array of objects with region-specific stats (region code, name, first/last shown, impressions, surfaces). |
variations | Array | Array of ad creative variations (different text, images, etc.), each with its own details. |
regionStats[] subfields:
| Field | Type | Description |
|---|---|---|
regionCode | String | ISO country/region code. |
regionName | String | Name of the country/region. |
firstShown | Integer | Date (YYYYMMDD) when the ad was first seen in this region (may be null). |
lastShown | Integer | Date (YYYYMMDD) when the ad was last seen in this region. |
impressions | Object | Estimated impressions bounds (lowerBound, upperBound) for this region (may be null). |
surfaceServingStats | Array | Array of objects with stats for each Google surface (e.g., SEARCH, SHOPPING), may be null. |
surfaceServingStats[] subfields:
| Field | Type | Description |
|---|---|---|
surfaceCode | String | Code for the Google surface (e.g., "SEARCH", "SHOPPING"). |
surfaceName | String | Name or ID of the surface. |
impressions | Object | Estimated impressions bounds (lowerBound, upperBound) for this surface. |
variations[] subfields:
| Field | Type | Description |
|---|---|---|
adTitle | String | Title or headline of the ad. |
adImage | String | URL or identifier for the ad image (may be a URL or a domain). |
adDescription | String | Description text of the ad. |
advertiser | String | Name of the advertiser (may be null). |
storeType | String | Type of store (if available, otherwise null). |
callToAction | String | Call-to-action text (if available, otherwise null). |
categories | Array | List of product or ad categories (may be empty). |
format | String | Format of the ad creative, e.g., "IMAGE". |
Key Notes
- Timestamps: Dates are in ISO 8601 format (e.g.,
2024-12-20T00:00:00Z) - Media URLs: May expire quickly - download assets soon after scraping
- Ad Formats: Supported formats include IMAGE, VIDEO, and TEXT
- Data Availability: Some fields may be empty if not provided by Google
Key fields will include:
- Ad creative (text/images/video URLs)
- Advertiser details
- Impressions estimate (if available)
- Active dates
- Targeting parameters
- Ad format
Why This Scraper?
- Compliance: Follows Google’s rate limits and robots.txt
- Stealth: Residential proxies + random delays mimic human behavior
- Depth: Captures 15+ data points per ad
- Future-Proof: Handles Google’s frequent UI/API changes
Use Cases
- Track competitor ad strategies in real-time
- Analyze seasonal campaign patterns
- Archive political or regulated ads for transparency
- Monitor brand or trademark usage in Google ads
What this listing has that the volume leaders skip
| Capability | Volume-leader listings | This actor |
|---|---|---|
| Domain or AR id | Yes | Yes — plus batch domains / advertiserIds |
| Free-text brand name | Autocomplete or claimed keyword search | Not supported. The Center has no name search — a bare name is tried as name.com, a multi-word name is rejected |
| Full copy on the row (headline, description, CTA) | Extra detail event on some listings | Always on the row |
| Variations + YouTube ids | Extra $0.003 detail event on some listings | Included |
| Asset bytes in your KV store | Rare | downloadAssets / downloadPreviews |
| Only-new ad monitor | Some listings | onlyNewAds — skip CR… ids already delivered to this account |
| Advertiser-id check | — | advertiserCheck — GetAdvertiserById before scrape when the query is an AR… id |
| Brand / name autocomplete | UI typeahead | Not shipped — Google's public SearchAdvertisers RPC returns {} (verified 2026-08-05). Pass a domain or AR id |
| Advertiser-check (has-ads yes/no) | Some listings | Not shipped |
| Price per 1,000 ads | $0.80–$5.00 (detail extras on the cheap end) | $1.50 — copy, variations and landing URLs included |
| Volume rental twin | Separate listings | Same engine: monthly rental |
Coming from another Ads Transparency actor?
If you already have a run on a cheaper listing and the rows are thin, or you are paying a second event for variations, switch the actor id and keep the same domain or AR id:
{"searchQuery": "temu.com","region": "US","maxItems": 100}
You get headline, long headline, description, CTA, variations[] (image / video / YouTube id / landing URL), regionStats and surfaceServingStats on that one charge. Turn on onlyNewAds for a scheduled watch so repeats are not billed.
The Center still does not search by brand name. nike is tried as nike.com; Nike Inc is rejected with a clear error and zero charge.
Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.0001 | Once per run |
| Ad scraped | $0.0015 ($1.50 / 1,000) | Each creative written to the dataset. Failed pages are not billed |
Pay per ad on this listing. High-volume regular crawls may be cheaper on the monthly rental twin.
Explore More Scrapers
If you found this Apify Google Ads Transparency Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com
- Email: muhamed.didovic@gmail.com
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/google-ads-transparency-scraper-ppe).
Purpose: Scrape active and historical ads from Google's Ads Transparency Center for a given advertiser, with full creative variations, region stats and Google-surface breakdowns.
Minimal input:
{"searchQuery": "temu.com","maxItems": 25}
Output: one row per ad — advertiserId, creativeId, adUrl, format, advertiserName, advertiserDomain, firstShown, lastShown, shownAd (creative object), adLink, creativeRegions, regionStats [{ regionCode, regionName, firstShown, lastShown, impressions, surfaceServingStats }], variations, scraped_at, source_url.
Behaviors an agent should know:
searchQuerytakes an advertiser domain (temu.com) or advertiser ID (AR13288476527828631553).domainsandadvertiserIdsadd more advertisers in the same run. There is no free-text advertiser-name search, so a bare name is guessed as.comand a multi-word name is rejected.onlyNewAdsskips creatives already delivered to this account.advertiserChecklooks up each AR… id first and stops with zero billed ads if Google has no such advertiser.startUrls(raw adstransparency.google.com URLs) is a power-user override; when set it takes priority oversearchQuery/domains/advertiserIdsand theregion/format/platform/date fields.- Always set
maxItems; the default is 100 and an uncapped advertiser can return thousands of ads. - Narrow with
region,format(ALL/TEXT/IMAGE/VIDEO) andplatform(ALL/SEARCH/YOUTUBE/MAPS/PLAY/SHOPPING);dateFrom/dateTobound first/last-shown dates. downloadAssets/downloadPreviewsfetch creative bytes into your own key-value store (storage billed to your Apify account); originals are preserved asoriginalImage/originalVideoUrl/originalPreviewUrl.- Pay-per-result billing — $0.0015 per ad written ($1.50 / 1,000) plus a $0.0001 start. No subscription.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC or any of its subsidiaries. All trademarks mentioned — including Google and the Google Ads Transparency Center — are the property of their respective owners.
The scraper accesses only the publicly available Google Ads Transparency Center — no authenticated endpoints, paid features, or content behind a Google login wall. Users are responsible for ensuring their use complies with Google's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
google ads transparency scraper, scrape google ads transparency, ad transparency center scraper, google ads scraper, advertiser ads scraper, ads transparency api, ad transparency data, competitor ad intelligence, ad creative scraper, advertiser domain ads export, political ads monitoring, ad spend research, ad format analysis, google ads data extraction, video ad scraper, image ad scraper, brand monitoring data, ad archive scraper, Apify google ads scraper, marketing intelligence data