Google

Google Ads API

Advertiser creatives
and transparency data

Collect public Google Ads Transparency creatives, advertiser identifiers and region-level delivery detail.

  • Brand, domain, advertiser or URL inputs
  • Creative format and first/last shown dates
  • Optional variations and per-country detail

Historical recordings · 1 recorded item in the saved sample

POST/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-items

Shopify · advertising creative

Google · recorded sample

1 recorded item

Advertising transparency

Shopify Inc.

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

Recorded Sep 24, 2026Historical sample

Overview

What this API returns

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

01

Choose what to search

Send brand queries, domains, advertiser IDs or Transparency Center URLs.

02

Collect creatives

The Actor resolves each target and reads the public ad records for the selected region and format.

03

Read creative rows

Each Dataset row keeps advertiser, creative, timing and preview fields, with optional variation detail.

Use cases

Where these records fit

The record is designed to sit inside research and review workflows. The examples below are starting points, not packaged scores.

Ad library research

Collect public creatives for a brand or domain and review the formats and shown dates.

  • advertiserName
  • format
  • firstShown

Creative monitoring

Compare saved creative rows over time without treating one run as a complete advertiser history.

  • creativeId
  • lastShown
  • variationCount

Market ad review

Use advertiser summaries or creative rows to review who is advertising in a category or region.

  • resultType
  • region
  • advertiserId

Try it

Inspect a recorded Google ad

Read a saved public creative, then inspect the original Dataset item as JSON.

Checking live preview

Checking live preview availability… Saved samples remain available.

Enter a brand, domain or Transparency Center advertiser reference.

POSThttps://api.apify.com/v2/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-items
Recorded sample
Copyable cURL uses the current preview input and the Actor endpoint.

Rendered

Recorded
Google
1 record
Creative imageCreative image

Google advertising

Shopify Inc.

shopify.com · TEXT

TEXT

First shown

Dec 19, 2025, 08:00:00 UTC

Last shown

Sep 24, 2026, 15:45:31 UTC

Creative identity and timeline

Creative ID
CR10286644044847120385
Advertiser ID
AR01625195283841286145
Landing domain
shopify.com
Creative format
TEXT
First shown
Dec 19, 2025, 08:00:00 UTC
Last shown
Sep 24, 2026, 15:45:31 UTC
Response details (9 fields)

Creative identity

Creative and advertiser IDs are literal source identifiers. Unknown preview fields stay null rather than zero.

Creative ID
CR10286644044847120385
Advertiser ID
AR01625195283841286145
Advertiser
Shopify Inc.
Landing domain
shopify.com
Creative format
TEXT

Creative media

Media links are rendered only when they use http(s). Google-hosted preview pages are links, not raw assets.

Shown timeline

Timestamps are parsed only when they carry an explicit ISO date or time zone. Duration is source-reported days, not a reconstructed impression window.

First shown
Dec 19, 2025, 08:00:00 UTC
Last shown
Sep 24, 2026, 15:45:31 UTC

Advertiser record

These fields appear on advertiser-summary rows. A range is kept as a range; the report never substitutes its midpoint for a measured count.

Advertiser ID
AR01625195283841286145
Advertiser
Shopify Inc.

Only returned fields are shown.

All returned fields

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 · Source: Google

JSON

Recordedapplication/json
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

Request and response contract

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.

Parameters

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"}]

regionstring

ISO 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: [].

adFormatstring

Filter by creative format. Several formats can be given comma-separated. Default: "ALL". Accepted: "ALL", "TEXT", "IMAGE", "VIDEO".

startDatestring

Only ads shown on or after this date (YYYY-MM-DD).

Example: "2026-01-01"

endDatestring

Only ads shown on or before this date (YYYY-MM-DD).

Example: "2026-06-01"

maxAdsPerSearchinteger

Maximum ad creatives to collect for each domain or advertiser. Default: 100. Minimum: 1. Maximum: 50000.

maxResultsinteger

Hard cap on delivered rows across all targets. This is what you pay for. Default: 1000. Minimum: 1. Maximum: 100000.

maxAdvertisersPerQueryinteger

When a brand-name query resolves to several advertisers, how many of the top matches to scrape. Default: 5. Minimum: 1. Maximum: 50.

includeDetailsboolean

On 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.

detailConcurrencyinteger

How many detail batches to fetch in parallel. Default: 2. Minimum: 1. Maximum: 8.

disableTelemetryboolean

Turn 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.

Response

Published response fields are listed below. The saved historical fixture keeps the recording's own preview link field and is shown unchanged.

creativeIdstring

Transparency Center creative ID, e.g. CR09405416287280037889.

Example: CR10286644044847120385

advertiserIdstring

Transparency Center advertiser ID, e.g. AR16735076323512287233.

Example: AR01625195283841286145

advertiserNamestring | null

Advertiser display name as Google publishes it.

Example: Shopify Inc.

domainstring | null

Landing 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 | null

TEXT, IMAGE or VIDEO. Unknown enum values come through as the raw number.

Example: TEXT

firstShownstring | null

ISO timestamp of the first recorded impression.

Example: 2025-12-19T08:00:00.000Z

lastShownstring | null

ISO timestamp of the most recent recorded impression.

Example: 2026-09-24T15:45:31.000Z

shownForDaysinteger | null

Days 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 | null

Direct CDN URL of the archived image preview. Null for render-page previews.

Example: https://tpc.googlesyndication.com/archive/simgad/2754200431253643147

previewUrlstring | null

Google-hosted preview render page. Not a raw asset URL. Null for archived image previews.

widthinteger | null

Pixel width of the archived image preview. Null for render-page previews.

heightinteger | null

Pixel height of the archived image preview. Null for render-page previews.

googleCreativeIdstring | null

Google's internal creative ID, parsed from the preview URL. Null for plain image ads.

googleCustomerIdstring | null

Obfuscated Google Ads customer ID, parsed from the preview URL. Groups ads from the same ad account. Null for plain image ads.

adGroupIdstring | null

Ad group ID parsed from the preview URL. Clusters ads from the same campaign. Null for plain image ads.

versionIdstring | null

Creative version ID parsed from the preview URL. Null when absent.

adUrlstring

Transparency Center link to this creative.

regionstring

The country filter this row was collected under, echoed back. ANYWHERE when no country filter was used.

variationCountinteger

Number 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.

euTransparencyobject

EU 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 | null

Advertiser display name.

countryCodestring | null

ISO 3166-1 alpha-2 country the advertiser is registered in.

approxAdCountLowinteger | null

Lower bound of Google's approximate ad count for this advertiser. Null when Google publishes no range.

approxAdCountHighinteger | null

Upper bound of Google's approximate ad count. Null when Google publishes no range.

matchedQuerystring | null

The input that produced this row.

advertiserUrlstring

Transparency 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

Usage is billed through the Actor

Published FREE-plan event rates from public Apify metadata. Plan-specific rates and usage terms remain on the Actor's pricing page.

Pricing

Pay per delivered event

Apify FREE-plan rate

$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.

Checked 19 Oct 2026Apify pricing

Access

One POST endpoint

  • Authenticate with an Apify Bearer token.
  • Send a JSON body to the posted Actor endpoint.
  • Read the Dataset items array returned by the run.

https://api.apify.com/v2/acts/meka.im~google-ads-transparency-scraper/run-sync-get-dataset-items

FAQ

Questions about the contract

Authentication, response shape, recorded data and availability.

What is the difference between ads and advertisers?

resultType ads returns individual creatives. resultType advertisers returns one summary row per advertiser, which is useful for checking which companies run Google Ads.

What does includeDetails add?

It adds creative variations, per-country reach with each country's last-shown date, and EU impression ranges when Google publishes them.

Does a null value mean zero?

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.

How do I authenticate requests?

Send an Apify token as a Bearer token in the Authorization header, as shown in the request examples.

Are the results on this page live?

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.

Where can I find current pricing?

Current pricing and usage terms are published on the Apify Actor page.