Ad library research
Collect public creatives for a brand or domain and review the formats and shown dates.
- advertiserName
- format
- firstShown
Google Ads API
Collect public Google Ads Transparency creatives, advertiser identifiers and region-level delivery detail.
Historical recordings · 1 recorded item in the saved sample
Shopify · advertising creative
Google · recorded sample
Advertising transparency
shopify.com
Advertiser
Shopify Inc.
Format
TEXT
First shown
Dec 19, 2025, 08:00:00 UTC
Last shown
Sep 24, 2026, 15:45:31 UTC
Overview
Collect public Google Ads Transparency creatives, advertiser identifiers and region-level delivery detail.
resultType chooses between individual ad creatives and a summary row per advertiser. queries and domains resolve brand or domain searches, while advertiserIds and startUrls target known Transparency Center pages. maxResults is the hard cap across all targets.
includeDetails adds creative variations, per-country last-shown dates and EU impression ranges. Fields such as shownForDays and region data stay null when the source does not supply them; unknown is not replaced with zero.
Input
Queries, domains or ad URLs
Output
Ad creative records
Send brand queries, domains, advertiser IDs or Transparency Center URLs.
The Actor resolves each target and reads the public ad records for the selected region and format.
Each Dataset row keeps advertiser, creative, timing and preview fields, with optional variation detail.
Use cases
The record is designed to sit inside research and review workflows. The examples below are starting points, not packaged scores.
Collect public creatives for a brand or domain and review the formats and shown dates.
Compare saved creative rows over time without treating one run as a complete advertiser history.
Use advertiser summaries or creative rows to review who is advertising in a category or region.
Try it
Read a saved public creative, then inspect the original Dataset item as JSON.
Enter a brand, domain or Transparency Center advertiser reference.
https://api.apify.com/v2/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-itemsFirst shown
Dec 19, 2025, 08:00:00 UTC
Last shown
Sep 24, 2026, 15:45:31 UTC
Creative and advertiser IDs are literal source identifiers. Unknown preview fields stay null rather than zero.
Media links are rendered only when they use http(s). Google-hosted preview pages are links, not raw assets.
Timestamps are parsed only when they carry an explicit ISO date or time zone. Duration is source-reported days, not a reconstructed impression window.
These fields appear on advertiser-summary rows. A range is kept as a range; the report never substitutes its midpoint for a measured count.
Only returned fields are shown.
All returned fields
Recorded Sep 24, 2026 · Historical snapshot · Source: Google
1[2{3"advertiserId": "AR01625195283841286145",4"creativeId": "CR10286644044847120385",5"advertiserName": "Shopify Inc.",6"domain": "shopify.com",7"format": "TEXT",8"firstShown": "2025-12-19T08:00:00.000Z",9"lastShown": "2026-09-24T15:45:31.000Z",10"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/2754200431253643147",11"url": "https://adstransparency.google.com/advertiser/AR01625195283841286145/creative/CR10286644044847120385?region=anywhere"12}13]
Reference
POST to the Apify Actor endpoint with a bearer token. Request examples use $APIFY_TOKEN and the current product defaults; response examples come from a saved historical record.
Request fields accepted by the Actor. Preview input is sent only when you run a live request.
resultTypestring"ads" returns individual ad creatives. "advertisers" returns one summary row per advertiser — a cheap way to check which companies run Google Ads. Default: "ads". Accepted: "ads", "advertisers".
queriesstring[]Free-text brand names (e.g. "Nike") or bare domains (e.g. "nike.com"). Brand names are resolved to advertisers through the Transparency Center's own autocomplete; anything that looks like a domain is used directly.
Example: ["Nike","hellofresh.com"]
domainsstring[]Exact domains to pull ads for. Returns every advertiser account whose ads point at that domain.
Example: ["nike.com"]
advertiserIdsstring[]Specific advertiser IDs starting with "AR", as they appear in an advertiser's Transparency Center URL.
Example: ["AR16735076323512287233"]
startUrlsArray<string | { url: string }>Paste Transparency Center URLs: advertiser pages, creative pages, or domain search pages. They are parsed automatically.
Example: [{"url":"https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US"}]
regionstringISO 3166-1 alpha-2 country code (US, DE, GB …), or ANYWHERE for no country filter. Several codes can be given comma-separated; results are the union. Default: "US".
Example: "US"
platformsstring[]Restrict to ads served on specific Google surfaces. Leave empty for all. Default: [].
adFormatstringFilter by creative format. Several formats can be given comma-separated. Default: "ALL". Accepted: "ALL", "TEXT", "IMAGE", "VIDEO".
startDatestringOnly ads shown on or after this date (YYYY-MM-DD).
Example: "2026-01-01"
endDatestringOnly ads shown on or before this date (YYYY-MM-DD).
Example: "2026-06-01"
maxAdsPerSearchintegerMaximum ad creatives to collect for each domain or advertiser. Default: 100. Minimum: 1. Maximum: 50000.
maxResultsintegerHard cap on delivered rows across all targets. This is what you pay for. Default: 1000. Minimum: 1. Maximum: 100000.
maxAdvertisersPerQueryintegerWhen a brand-name query resolves to several advertisers, how many of the top matches to scrape. Default: 5. Minimum: 1. Maximum: 50.
includeDetailsbooleanOn by default. Adds every creative variation, the per-country reach with each country's last-shown date, and EU impression ranges. Turn it off for a faster, list-only run. Default: true.
detailConcurrencyintegerHow many detail batches to fetch in parallel. Default: 2. Minimum: 1. Maximum: 8.
disableTelemetrybooleanTurn off the anonymous reliability telemetry described in the README. When this is on, nothing about your run — including your search terms — leaves the run. Default: false.
Published response fields are listed below. The saved historical fixture keeps the recording's own preview link field and is shown unchanged.
creativeIdstringTransparency Center creative ID, e.g. CR09405416287280037889.
Example: CR10286644044847120385
advertiserIdstringTransparency Center advertiser ID, e.g. AR16735076323512287233.
Example: AR01625195283841286145
advertiserNamestring | nullAdvertiser display name as Google publishes it.
Example: Shopify Inc.
domainstring | nullLanding domain the ad points at. Null when the creative was reached by advertiser or creative URL, where the search row is not available.
Example: shopify.com
formatstring | nullTEXT, IMAGE or VIDEO. Unknown enum values come through as the raw number.
Example: TEXT
firstShownstring | nullISO timestamp of the first recorded impression.
Example: 2025-12-19T08:00:00.000Z
lastShownstring | nullISO timestamp of the most recent recorded impression.
Example: 2026-09-24T15:45:31.000Z
shownForDaysinteger | nullDays the creative has been running, as reported by Google. Null when absent; never 0 for unknown.
previewTypestring | null"image" for an archived bitmap preview with a direct URL, "iframe" for a Google-hosted render page. Null when neither is present.
imageUrlstring | nullDirect CDN URL of the archived image preview. Null for render-page previews.
Example: https://tpc.googlesyndication.com/archive/simgad/2754200431253643147
previewUrlstring | nullGoogle-hosted preview render page. Not a raw asset URL. Null for archived image previews.
widthinteger | nullPixel width of the archived image preview. Null for render-page previews.
heightinteger | nullPixel height of the archived image preview. Null for render-page previews.
googleCreativeIdstring | nullGoogle's internal creative ID, parsed from the preview URL. Null for plain image ads.
googleCustomerIdstring | nullObfuscated Google Ads customer ID, parsed from the preview URL. Groups ads from the same ad account. Null for plain image ads.
adGroupIdstring | nullAd group ID parsed from the preview URL. Clusters ads from the same campaign. Null for plain image ads.
versionIdstring | nullCreative version ID parsed from the preview URL. Null when absent.
adUrlstringTransparency Center link to this creative.
regionstringThe country filter this row was collected under, echoed back. ANYWHERE when no country filter was used.
variationCountintegerNumber of creative variations. Only present when includeDetails is on.
variationsobject[]Every creative variation: type, imageUrl, previewUrl, width, height and internal IDs. Only present when includeDetails is on.
regionsShownobject[]Every country the ad ran in, each with that country's last-shown date. Only present when includeDetails is on.
euTransparencyobjectEU DSA transparency block: available, impressions.lowerBound / upperBound, firstShownDate, lastShownDate and platformDistribution. available is false when Google publishes none for this creative. Only present when includeDetails is on.
namestring | nullAdvertiser display name.
countryCodestring | nullISO 3166-1 alpha-2 country the advertiser is registered in.
approxAdCountLowinteger | nullLower bound of Google's approximate ad count for this advertiser. Null when Google publishes no range.
approxAdCountHighinteger | nullUpper bound of Google's approximate ad count. Null when Google publishes no range.
matchedQuerystring | nullThe input that produced this row.
advertiserUrlstringTransparency Center link to the advertiser page.
curl -X POST 'https://api.apify.com/v2/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-items' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"queries": [
"Nike"
],
"domains": [
"shopify.com"
],
"resultType": "ads",
"region": "US",
"maxResults": 100,
"includeDetails": true
}'Recorded sample
1 recorded item · historical sample
[
{
"advertiserId": "AR01625195283841286145",
"creativeId": "CR10286644044847120385",
"advertiserName": "Shopify Inc.",
"domain": "shopify.com",
"format": "TEXT",
"firstShown": "2025-12-19T08:00:00.000Z",
"lastShown": "2026-09-24T15:45:31.000Z",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/2754200431253643147",
"url": "https://adstransparency.google.com/advertiser/AR01625195283841286145/creative/CR10286644044847120385?region=anywhere"
}
]Recorded Sep 24, 2026 · historical snapshot
Pricing & access
Published FREE-plan event rates from public Apify metadata. Plan-specific rates and usage terms remain on the Actor's pricing page.
Pricing
$0.80per 1,000 ads
$0.80per 1,000 advertisers
These delivery rates are alternatives, not added together.
One delivered ad or advertiser event, depending on the selected result unit.
Access
https://api.apify.com/v2/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-items
FAQ
Authentication, response shape, recorded data and availability.
resultType ads returns individual creatives. resultType advertisers returns one summary row per advertiser, which is useful for checking which companies run Google Ads.
It adds creative variations, per-country reach with each country's last-shown date, and EU impression ranges when Google publishes them.
No. Fields such as shownForDays, country reach and EU ranges stay null when the source does not supply them. Confirmed zero values are preserved separately.
Send an Apify token as a Bearer token in the Authorization header, as shown in the request examples.
Not by default. Saved samples are historical recordings from the source; each keeps the fields and values from that record and does not verify current availability. Live data is requested directly from the published Apify Actor endpoint with your own token.
Current pricing and usage terms are published on the Apify Actor page.