Answers
What is a Google Ads Transparency advertiser ID (AR…)?
Short answer
It is the Ads Transparency Center's ID for one advertiser, AR followed by 20 digits, and it appears in links like adstransparency.google.com/advertiser/AR…. okdata finds it by brand name with Google advertiser search for $0.004 and lists that advertiser's ads, 40 a page, for $0.004 a page.
Open any advertiser in the Google Ads Transparency Center and the address bar shows something like adstransparency.google.com/advertiser/AR04718236590142738945. That AR… string is the advertiser ID: the center's key for one advertiser, the account behind ads on Search, YouTube, Display, Shopping, Maps and Play. Every ad of that advertiser hangs off it, at /advertiser/AR…/creative/CR….
What it looks like
| Advertiser ID | Creative ID | |
|---|---|---|
| Shape | AR + 20 digits, 22 characters |
CR + 20 digits, 22 characters |
| Names | One advertiser | One ad |
| In okdata | id from advertiser search, advertiser.id on each ad |
id of each ad |
Keep both as strings. Twenty digits can overflow a signed 64-bit integer, and a spreadsheet will round them.
Why the name looks wrong
The name next to an advertiser ID is not chosen for marketing. Google's help says that for advertisers who completed its verification program it shows the legal or trademark name and location they verified, and for unverified ones the payments profile name. So a well-known brand often appears under its company name, a holding company or an agency. A search for one brand can return several advertiser IDs, for example a parent company and a regional distributor. Check the region and the ads estimate before you pick one.
Finding it and using it
Google advertiser search takes a query (brand or company name) and a country, and returns up to 10 advertisers with id, name, region and ads, the center's estimate of how many ads it has. Google advertiser ads then takes id, or skips the ID entirely with domain=brand.com, and lists the ads: format, preview image, first and last time shown, 40 per page.
| Job | Calls | Cost |
|---|---|---|
| Brand name to advertiser IDs | 1 | $0.004 |
| One page of ads | 1 | $0.004 |
| An advertiser with about 600 ads, all pages | 1 + 15 | $0.064 |
Example
import os, requests
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
SEARCH = "https://api.okdata.online/v1/google/advertisers/search"
ADS = "https://api.okdata.online/v1/google/advertisers/ads/list"
found = requests.get(SEARCH, headers=H, timeout=60,
params={"query": "Trail Kit", "country": "US"}).json()
if found["code"] != "ok":
raise SystemExit(found["message"])
for a in found["data"]["items"]:
print(a["id"], a["name"], a["region"], a["ads"])
advertiser = max(found["data"]["items"], key=lambda a: a["ads"] or 0)
page = requests.get(ADS, headers=H, timeout=60,
params={"id": advertiser["id"], "country": "US"}).json()
for ad in page["data"]["items"]:
print(ad["id"], ad["format"], ad["first_shown_at"], ad["last_shown_at"], ad["url"])
Follow page.next_cursor for the next 40 ads, and stop when page.has_more is false.
Limits
- The list does not carry ad copy, landing pages or reach for Google ads; those fields come back null and
meta.unavailablenames them. Theurlof each ad opens it in the center. adson an advertiser is Google's estimate, not a count you can reconcile to the list.countrylimits the list to ads shown in one country andformat=text|image|videoto one kind; leave both out for everything.
For a full export workflow, see exporting a competitor's ads from the Google Ads Transparency Center.
Sources
- Google Advertising Policies Help: Ads transparency
- Google Advertising Policies Help: Advertiser verification
Where people asked this (read 2026-11-12)
Updated