Google Ads Transparency Center Scraper (LatAm-ready)
Pricing
from $1.00 / 1,000 ad results
Google Ads Transparency Center Scraper (LatAm-ready)
Extract ads from the Google Ads Transparency Center by brand, advertiser ID or domain. Filter by country (CO, MX, BR, AR, CL, PE presets or any country), date range and format. Monitor mode returns only new ads. Optional full creative details, ad text, YouTube IDs and advertiser profiles. No login.
Pricing
from $1.00 / 1,000 ad results
Rating
0.0
(0)
Developer
JG GOMEZ
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
17 days ago
Last modified
Categories
Share
Extract ads from the public Google Ads Transparency Center by brand name, advertiser ID or domain. You can filter by country (presets for Colombia, Mexico, Brazil, Argentina, Chile and Peru, or any other country), date range and format (text, image, video). Monitor mode returns only ads that are new since your last run. Optional full creative details add every variation, per-country dates, text-ad copy, YouTube video IDs and landing pages. You can also add advertiser profiles with verification status.
No login, no cookies, no browser. The Actor makes plain HTTP calls to the same public JSON endpoints the website uses, so it is fast and cheap.
Independent tool, not affiliated with or endorsed by Google.
Use cases
- Competitor ad intelligence: see every creative a competitor is running in your market, how long each one has been live, and which landing pages and UTM campaigns it uses.
- Agencies in Latin America: run daily monitors of clients' competitors in CO/MX/BR/AR/CL/PE and get only the new ads.
- Creative research / swipe files: collect image and video ads by brand or domain, with direct image URLs and YouTube links.
- Brand protection: find ads that point to your domain, or advertisers using your brand name.
- Market research and journalism: track advertising activity of banks, retailers, fintechs and political advertisers by country.
Input
| Field | Type | Description |
|---|---|---|
searchTerms | string[] | Brand or advertiser names, e.g. bancolombia. Each term resolves to the matching advertiser(s) with the most ads. |
advertiserIds | string[] | Exact IDs such as AR12885191334436012033 (taken from the advertiser URL). |
domains | string[] | Ads pointing to a domain, e.g. liverpool.com.mx. |
maxAdvertisersPerSearchTerm | integer | How many matching advertisers to include per term (default 1). |
regions | string[] | ISO country codes (CO, MX, BR, AR, CL, PE, US, ES…), presets LATAM_CORE / LATAM_ALL, or empty / anywhere. |
startDate, endDate | date | Only ads shown in this window (YYYY-MM-DD). Google serves date-filtered data for about the last 12 months only. |
format | enum | ALL, TEXT, IMAGE, VIDEO. |
maxResults | integer | Max ads per query (default 100). Results come newest first. |
includeDetails | boolean | Adds all variations, per-country stats, text-ad copy, YouTube ID and landing page (charged per ad). |
extractAdText | boolean | Used together with details: reads TEXT/VIDEO previews to get the headline, description, YouTube ID and landing page (default on). |
includeAdvertiserProfile | boolean | Adds legal/verified name, country and verification status (charged once per advertiser). |
excludeLikelyIndividuals | boolean | Drops advertisers whose name looks like a private person (see Privacy). |
monitorMode | boolean | Outputs only ads not returned before for the same query and filters. |
monitorKey | string | Optional label that keeps a separate monitor state (e.g. per client). |
proxyConfiguration | object | Apify Proxy. Datacenter proxy is ON by default (recommended). |
residentialFallback | boolean | Default true. If the datacenter proxy keeps getting blocked, switch to residential proxy automatically. |
maxConcurrency, requestsPerSecond, maxRetries | integer | Politeness and robustness settings (defaults 4 / 1 / 6). |
Example:
{"searchTerms": ["bancolombia"],"domains": ["liverpool.com.mx"],"regions": ["CO", "MX"],"format": "ALL","maxResults": 200,"includeDetails": true,"includeAdvertiserProfile": true,"monitorMode": true}
Output
One dataset item per ad. Below is a real item from a test run on 2026-10-04 (query bancolombia, region CO, with details; long preview URLs shortened):
{"adId": "CR17419182227702415361","advertiserId": "AR12885191334436012033","advertiserName": "Bancolombia SA","format": "VIDEO","firstShown": "2026-09-14T20:51:54Z","lastShown": "2026-10-04T14:11:05Z","daysShown": 21,"imageUrl": null,"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?...","adUrl": "https://adstransparency.google.com/advertiser/AR12885191334436012033/creative/CR17419182227702415361?region=CO","advertiserLikelyIndividual": false,"advertiserIndividualReason": "contains business/legal-form keyword","query": { "type": "searchTerm", "value": "bancolombia" },"regions": ["CO"],"details": {"format": "VIDEO","variationsCount": 3,"variations": [{ "imageUrl": null, "previewUrl": "https://displayads-formats.googleusercontent.com/..." }],"regionStats": [{ "geoId": 2170, "countryCode": "CO", "lastShownDate": "2026-10-04" }],"youtubeVideoId": "qWRIt184UVI","youtubeUrl": "https://www.youtube.com/watch?v=qWRIt184UVI","headline": "Ábrela desde 0","landingPageUrl": "bancolombia.com"},"advertiser": {"name": "Bancolombia SA", "legalName": "Bancolombia SA", "country": "CO", "isVerified": true,"profileUrl": "https://adstransparency.google.com/advertiser/AR12885191334436012033"},"scrapedAt": "2026-10-04T14:39:23Z"}
Other fields you may see:
- Image and text ads:
imageUrl,width,height. - Text ads with an HTML preview:
details.adTextwithheadline,displayUrl,descriptionandsitelinks. - Some video ads:
details.videoFile, a temporary signed MP4 URL. - Monitor mode:
isNewandmonitorFirstRun.
Each run also writes a summary to the OUTPUT record of the default key-value store, with ads saved, per-query counts, the total ads Google reports and HTTP stats. Full samples are in samples/.
Dataset views: Ads overview (with creative thumbnails), Details & ad text, Advertisers.
Pricing (pay per event)
| Event | Price |
|---|---|
| Run start | $0.005 per run |
| Ad result | $1.00 per 1,000 ads ($0.001 each) |
| Full creative detail (optional) | $0.002 per ad |
| Advertiser profile (optional) | $0.005 per unique advertiser per run |
Example: 1,000 ads with details and 3 advertiser profiles cost about $1.00 + $2.00 + $0.015 + $0.005 ≈ $3.02. In monitor mode you only pay for new ads. Set a max cost per run in Apify to cap spending; the Actor stops cleanly when the cap is reached.
Tips and limitations
- Date filter: Google only returns date-filtered results for about the last 12 months. Older ranges come back empty.
- Impression ranges and per-surface stats are published by Google mainly for ads shown in the EU/EEA and Türkiye. For Latin America you usually get only first/last shown dates per country.
- Text ads are often archived by Google as images. In that case you get
imageUrlbut noadText. - Ad counts reported by Google are ranges (e.g. 1,000–2,000), not exact numbers.
- Rate limits: Google throttles fast traffic from one IP (HTTP 429 or a CAPTCHA page). The Actor backs off and slows down automatically. Apify Proxy (datacenter) is enabled by default and the Actor automatically switches to residential proxy (a fresh IP per request) if Google keeps blocking, because runs without a proxy got throttled in our platform tests. Typical speed with full details: about 60 ads in 2–3 minutes; without details, hundreds of ads per minute.
- Unofficial endpoints: they are undocumented and may change. Field mappings were verified in October 2026.
surfaceIdvalues are Google's raw internal codes and are not mapped to names.
Privacy
Advertisers in the Transparency Center are mostly businesses, but some are natural persons. Every ad carries advertiserLikelyIndividual and advertiserIndividualReason. This is a name-based heuristic (a common first name plus no business keywords), not identity verification. Turn on excludeLikelyIndividuals if you must avoid processing personal data (GDPR, LGPD, Colombian Ley 1581). Use the data responsibly and in line with the laws that apply to you and with Google's terms.
🇪🇸 En español
¿Qué hace? Extrae anuncios públicos del Centro de Transparencia de Anuncios de Google. Puedes buscar por marca, ID de anunciante o dominio y filtrar por país (atajos para Colombia, México, Brasil, Argentina, Chile y Perú, o cualquier país), fechas y formato (texto, imagen, video). No requiere login.
Casos de uso
- Espiar legalmente los anuncios de la competencia: creatividades, cuánto tiempo llevan activas, landing pages y campañas UTM.
- Agencias en LatAm: monitoreo diario de competidores con modo monitor, que entrega solo los anuncios nuevos.
- Bancos de ideas creativas (swipe files) de imágenes y videos, con enlaces directos a YouTube.
- Protección de marca: anuncios que apuntan a tu dominio o que usan tu nombre.
Entrada: searchTerms (p. ej. bancolombia), advertiserIds, domains, regions (CO, MX, LATAM_CORE…), startDate/endDate, format, maxResults, includeDetails, includeAdvertiserProfile, excludeLikelyIndividuals, monitorMode.
Salida: un registro por anuncio con ID, anunciante, formato, fechas de primera y última vez mostrado, días activo, imagen, enlace al Centro de Transparencia y, opcionalmente, variaciones, estadísticas por país, texto del anuncio, ID de YouTube, landing page y perfil verificado del anunciante. Hay un ejemplo real arriba y más en samples/.
Precio (pago por evento): $0,005 por ejecución, $1,00 por cada 1.000 anuncios, $0,002 por detalle completo y $0,005 por perfil de anunciante. En modo monitor solo pagas los anuncios nuevos.
Limitaciones: el filtro de fechas solo cubre aproximadamente los últimos 12 meses. Las impresiones solo se publican sobre todo para la UE. Si haces muchas consultas seguidas, Google puede limitar la IP; por eso Apify Proxy (datacenter) viene activado por defecto; no lo desactives.
Privacidad: cada anuncio indica si el anunciante parece una persona natural (advertiserLikelyIndividual). Activa excludeLikelyIndividuals para cumplir con la Ley 1581 de 2012, la LGPD o el RGPD.