Answers
How do I export a competitor's ads from the Google Ads Transparency Center?
Short answer
The Transparency Center website has no export button and Google publishes no API for it; its BigQuery dataset only covers ads shown in the EEA and Turkey. okdata finds the advertiser for $0.004 and lists its ads 40 per page for $0.004, so exporting an advertiser with 600 ads costs $0.064.
A PPC manager takes over a new account and wants to see what the main competitor ran on Google this year: which formats, when each push started, how much went to YouTube against Search. On adstransparency.google.com every ad opens on its own, so copying 600 of them into a sheet is a two-day job. Pulled as data, it is one CSV, ready before lunch.
What Google offers
- The website. Search an advertiser or a website, filter by region, platform (Search, YouTube, Display, Shopping, Maps, Play), date and format. Free, no account, but nothing to download.
- The BigQuery public dataset
bigquery-public-data.google_ads_transparency_center. Its own overview says it holds ads shown in the European Economic Area and Turkey, refreshed periodically, and it can lag the website. Good for EU research in SQL; no help for a US or Asian competitor. - Political ads have their own transparency report with downloadable data.
From advertiser to CSV in two calls
- Google Ads Transparency advertiser search turns a name into the advertiser ID (AR…), with the name Google verified, the country it is registered in and the center's estimate of how many ads it has. The verified name is often the company that pays, which may not match the brand.
- Google advertiser ads takes that
id, or skips step 1 with the brand's website asdomain, plus optionalcountryandformat. Each page has 40 ads with format, preview image and first and last time shown.
| Job | Calls | Cost |
|---|---|---|
| Find the advertiser | 1 | $0.004 |
| 600 ads | 15 | $0.06 |
| Total | 16 | {{cost:google.advertisers.search1+google.advertisers.ads.list15}} |
| Monthly refresh, 5 competitors, 2 pages each | 10 | $0.04 |
Code
import csv, os, requests
URL = "https://api.okdata.online/v1/google/advertisers/ads/list"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
ads, cursor = [], None
while len(ads) < 600:
params = {"domain": "example.com", "country": "US"}
if cursor:
params["cursor"] = cursor
body = requests.get(URL, headers=H, params=params, timeout=60).json()
if body["code"] != "ok":
raise RuntimeError(f"{body['code']}: {body['message']}")
ads += body["data"]["items"]
cursor = body["page"]["next_cursor"]
if not cursor:
break
with open("google_ads.csv", "w", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow(["id", "advertiser", "format", "first_shown", "last_shown", "preview", "url"])
for a in ads:
w.writerow([a["id"], a["advertiser"]["name"], a["format"], a["first_shown_at"],
a["last_shown_at"], (a["images"] or [""])[0], a["url"]])
Gaps to expect
- Landing pages are mostly missing. The Transparency Center does not link ads to their destination, so
landing_urlis usually null and named inmeta.unavailable. - Copy often sits inside the preview image. Many ads, text ads included, are shown only as a rendered preview, so
textcan be empty. A vision model or OCR over the preview images fills that in. - No impressions or spend for commercial ads; Google does not publish them.
- Check the advertiser on domain lookups. A website can be promoted by more than one advertiser, resellers for example, so filter on
advertiser.nameif you want only the brand. - Every page is a separate call; stop paging when you have enough.
Other ways
For a quick look at a few ads, the website is free and fine. For EU research at scale, the BigQuery dataset is official and queryable in SQL. Search-marketing suites such as Semrush or SpyFu keep years of search ad copy with keyword and spend estimates, which the Transparency Center never shows. okdata fits when you want any region's ads in a sheet, a dashboard or an agent's context. The same job across Meta and TikTok is in ad intelligence; keeping watch over time is in competitor monitoring.
Updated