{"name":"google-ads-transparency","id":"sfoln/google-ads-transparency","title":"Google Ads Transparency Scraper","description":"List the ads any advertiser runs on Google from the Ads Transparency Center, by name, advertiser ID or domain: creative ID, advertiser, preview link and, optionally, format, image and first/last shown dates. $1.50 per 1,000 ads + $0.004 per request.","version":"0.1","status":"ready","family":{"id":"ad-intelligence","name":"Ad intelligence","description":"Ads and advertisers from the Meta Ad Library, Google Ads Transparency Center, and the TikTok and LinkedIn ad libraries.","actors":6},"categories":["SOCIAL_MEDIA","LEAD_GENERATION","ECOMMERCE"],"availability":"on_request","seoTitle":"Google Ads Transparency API – $1.50 per 1,000 Ads","seoDescription":"Google Ads Transparency Center scraper: export any advertiser's Google ads by name or domain, with previews, formats and dates. $1.50 per 1,000 ads.","summary":"Google Ads Transparency Scraper lists the public ads any company runs on Google (Search, YouTube, Display, Play, Maps, Shopping) from the Google Ads Transparency Center – by advertiser name, advertiser ID (AR…) or website domain – and returns one dataset record per ad creative: creative ID, advertiser ID and name, public preview link and, optionally, format, image and first/last shown dates. Filter by region, platform, format, political topic and date range. Built for competitive intelligence, agencies, brand-safety teams and AI agents.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"google-ad","title":"Google ad","description":"Charged once per ad (creative) record delivered from the Google Ads Transparency Center (recordType ad). Duplicates, query summary rows and failed requests are not charged.","priceUsd":0.0015},{"name":"google-ads-query","title":"Transparency Center request","description":"Charged once per upstream request: the advertiser-name search (when you pass a name) and every page of ads fetched. A search that matched no advertiser, or a page without new ads, is charged only when the upstream provider billed it. Failed requests are not charged.","priceUsd":0.004},{"name":"google-ad-details","title":"Ad details page","description":"Optional (includeAdDetails). Charged once per ads page requested with ad details (format, preview URL, advertiser name, first/last shown). The upstream bills 25 credits for such a page; a page without new ads is charged only when the provider billed its details.","priceUsd":0.12,"paidPlanOnly":true}]},"input":{"description":"List public ads from the Google Ads Transparency Center by advertiser name, advertiser ID or website domain. Each query returns one dataset record per ad plus one summary record.","required":["advertisers"],"fields":[{"name":"advertisers","title":"Advertisers (names, IDs or domains)","type":"array","required":true,"description":"Advertiser names (searched in the Transparency Center), advertiser IDs (AR…) / adstransparency.google.com advertiser or ?domain= URLs, or website domains (e.g. lululemon.com), one per line. Accounts on the Apify free plan can process up to 10 advertisers per run.","prefill":["lululemon.com"],"editor":"stringList"},{"name":"maxAdsPerQuery","title":"Max ads per query","type":"integer","required":false,"description":"Maximum ads returned per advertiser name, ID or domain (1–500).","default":50,"prefill":10,"minimum":1,"maximum":500},{"name":"region","title":"Region","type":"string","required":false,"description":"Optional 2-letter country code (US, GB, AU…). Limits ads to that region and is used for advertiser-name search (which otherwise defaults to US). Empty = anywhere.","editor":"textfield"},{"name":"maxAdvertisersPerName","title":"Advertisers per name","type":"integer","required":false,"description":"When you pass a name, how many matching advertiser accounts to list ads for (the ones with the most ads first, 1–5). Each costs at least one extra page.","default":1,"minimum":1,"maximum":5},{"name":"includeAdDetails","title":"Include ad details (costly)","type":"boolean","required":false,"description":"Ask for format, preview URL, advertiser name and first/last shown dates on every ad. The upstream bills 25× for these pages, so each ads page adds one google-ad-details event ($0.12).","default":false},{"name":"format","title":"Ad format","type":"string","required":false,"description":"Optional filter by creative format.","enum":["text","image","video"],"editor":"select"},{"name":"platform","title":"Platform","type":"string","required":false,"description":"Optional filter by Google platform.","enum":["google_search","youtube","google_play","google_maps","google_shopping"],"editor":"select"},{"name":"topic","title":"Topic","type":"string","required":false,"description":"All ads, or political ads only (political requires a region).","default":"all","enum":["all","political"],"editor":"select"},{"name":"startDate","title":"Shown from (YYYY-MM-DD)","type":"string","required":false,"description":"Optional start of the date range.","editor":"textfield"},{"name":"endDate","title":"Shown until (YYYY-MM-DD)","type":"string","required":false,"description":"Optional end of the date range.","editor":"textfield"},{"name":"maxQueries","title":"Max queries","type":"integer","required":false,"description":"Safety cap on advertisers processed in this run.","default":100,"minimum":1,"maximum":1000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Queries processed in parallel (1–8).","default":4,"minimum":1,"maximum":8},{"name":"itemTimeoutSecs","title":"Time limit per query (seconds)","type":"integer","required":false,"description":"Pagination for one advertiser name, ID or domain stops cleanly shortly before this limit (60–3600). Raise it for very large per-query limits.","default":600,"minimum":60,"maximum":3600},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified upstream ad object to each ad record under `raw` (larger output).","default":false}]},"exampleInput":{"advertisers":["lululemon.com"],"maxAdsPerQuery":10},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The input query this record belongs to."},{"name":"recordType","type":"string","title":"Row type","description":"ad (one per ad, charged google-ad) | query (one summary per query, free)."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a pay-per-event charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"Pay-per-event event charged for this record."},{"name":"source","type":"string","title":"Source","description":"Upstream data source (scrapecreators = ScrapeCreators API over the public ad library)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"error","type":"object","title":"Error","description":"code / message when status is not ok."},{"name":"warnings","type":"array","title":"Warnings","description":"Non-fatal notes (e.g. stopped early)."},{"name":"query","type":"string | null","title":"Query","description":"Advertiser name, ID or domain the row belongs to."},{"name":"queryType","type":"string | null","title":"Query type","description":"name | advertiserId | domain."},{"name":"position","type":"integer | null","title":"Position","description":"1-based position within the query results."},{"name":"adId","type":"string | null","title":"Ad (creative) ID","description":"Transparency Center creative ID (CR…)."},{"name":"advertiserId","type":"string | null","title":"Advertiser ID","description":"Transparency Center advertiser ID (AR…)."},{"name":"advertiserName","type":"string | null","title":"Advertiser","description":"Advertiser name (from ad details or the advertiser search)."},{"name":"format","type":"string | null","title":"Format","description":"text | image | video (with ad details)."},{"name":"firstShown","type":"string | null","title":"First shown","description":"ISO date first shown (with ad details)."},{"name":"lastShown","type":"string | null","title":"Last shown","description":"ISO date last shown (with ad details)."},{"name":"previewUrl","type":"string | null","title":"Preview URL","description":"Public Transparency Center page of the creative."},{"name":"imageUrl","type":"string | null","title":"Image URL","description":"Creative image / rendered preview when available."},{"name":"domain","type":"string | null","title":"Domain","description":"Advertiser domain when known."},{"name":"regions","type":"array","title":"Regions","description":"Regions the ad was shown in when reported, otherwise the region filter."},{"name":"text","type":"string | null","title":"Text","description":"Ad text when the upstream returns it (rare)."},{"name":"detailsIncluded","type":"boolean | null","title":"Details included","description":"The page was fetched with includeAdDetails."},{"name":"resolvedAdvertisers","type":"array","title":"Resolved advertisers","description":"Advertiser accounts matched for a name query (summary rows)."},{"name":"advertiserSearchCharged","type":"boolean | null","title":"Advertiser search charged","description":"Name queries: true when the advertiser search was charged one google-ads-query (summary rows)."},{"name":"adsDelivered","type":"integer | null","title":"Ads delivered","description":"Ads delivered for this query (summary rows)."},{"name":"pagesFetched","type":"integer | null","title":"Pages fetched","description":"Ads pages fetched (summary rows)."},{"name":"queryFeesCharged","type":"integer | null","title":"Request fees charged","description":"google-ads-query events charged (summary rows)."},{"name":"detailFeesCharged","type":"integer | null","title":"Details fees charged","description":"google-ad-details events charged (summary rows)."},{"name":"adsEstimate","type":"integer | null","title":"Ads estimate","description":"Number of ads the Transparency Center estimates for the advertiser(s) (summary rows)."},{"name":"stopReason","type":"string | null","title":"Stop reason","description":"limit | end | budget | max_pages | deadline | error | empty_pages (summary rows)."}],"outputExample":{"input":{"kind":"domain","value":"lululemon.com"},"recordType":"ad","query":"lululemon.com","queryType":"domain","position":1,"adId":"CR08567627846124568577","advertiserId":"AR01614014350098432001","advertiserName":"lululemon athletica canada inc.","format":"image","firstShown":"2026-03-11T17:08:22.000Z","lastShown":"2026-05-04T17:59:12.000Z","previewUrl":"https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR08567627846124568577","imageUrl":null,"domain":"lululemon.com","regions":["US"],"text":null,"detailsIncluded":true,"status":"ok","charged":true,"chargedEvent":"google-ad","source":"scrapecreators","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"List 20 Google ads that lululemon.com runs in the United States and describe their formats and when they were last shown.","related":["ad-library-scraper","facebook-ads-search","linkedin-ads-search","tiktok-ads-search","facebook-ad-lookup"],"urls":{"site":"https://www.sfoln.com/actors/google-ads-transparency/","siteJson":"https://www.sfoln.com/actors/google-ads-transparency.json","siteMarkdown":"https://www.sfoln.com/actors/google-ads-transparency.md","runSync":"https://api.apify.com/v2/actors/sfoln~google-ads-transparency/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~google-ads-transparency/runs","mcp":"https://mcp.apify.com?tools=sfoln/google-ads-transparency","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Google%20Ads%20Transparency%20Scraper%20(sfoln%2Fgoogle-ads-transparency)&body=Please%20publish%20google-ads-transparency.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}