问答
怎么把 Google 广告透明中心里竞品的广告导出来?
简短回答
广告透明中心网页没有导出按钮,Google 也没有对应的 API;它在 BigQuery 上的公开数据集只覆盖欧洲经济区和土耳其展示的广告。用 okdata 先找广告主($0.004),再按每页 40 条列出广告(每页 $0.004),导出一个有 600 条广告的广告主共 $0.064。
一位投放经理刚接手新账户,想看看主要竞品今年在 Google 上都投了什么:用了哪些格式,每一波从什么时候开始,YouTube 和搜索各占多少。在 adstransparency.google.com 上,每条广告都要单独点开,把 600 条抄进表格得花两天。按数据拉下来,就是一份 CSV,中午前就能用。
Google 官方提供什么
- 透明中心网页。 可以按广告主或网站搜,按地区、平台(搜索、YouTube、展示、购物、地图、Play)、时间和格式筛选。免费,不用登录,但没有下载功能。
- BigQuery 公开数据集
bigquery-public-data.google_ads_transparency_center。它自己的说明写明只包含在欧洲经济区和土耳其展示的广告,定期更新,可能比网页慢。做欧盟研究、写 SQL 很合适;竞品在美国或亚洲投放就用不上。 - 政治广告有单独的透明度报告,可以下载数据。
两步导出成 CSV
- Google 广告透明中心广告主搜索:输入名称,拿到广告主 ID(AR 开头),以及 Google 验证过的名称、注册国家和广告数量估计。验证名称常常是付钱的公司主体,和品牌名不一定一样。
- Google 广告主的广告:传上一步的
id;如果知道品牌官网,也可以跳过第一步,直接传domain。还可以加country和format。每页 40 条,带格式、预览图、首次和最近展示时间。
| 任务 | 调用次数 | 费用 |
|---|---|---|
| 找广告主 | 1 | $0.004 |
| 600 条广告 | 15 | $0.06 |
| 合计 | 16 | {{cost:google.advertisers.search1+google.advertisers.ads.list15}} |
| 每月更新 5 个竞品,各 2 页 | 10 | $0.04 |
代码
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-sig") 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"]])
拿不到或要留意的
- 落地页大多没有。 透明中心不提供广告的跳转链接,所以
landing_url通常为 null,并写在meta.unavailable里。 - 文案常常在预览图里。 很多广告(包括文字广告)只以渲染好的预览图展示,
text可能是空的。用视觉模型或 OCR 读一遍预览图就能补上。 - 没有曝光和花费。 商业广告的这两项 Google 不公开。
- 按域名查时核对广告主。 同一个网站可能由好几个广告主推广,比如经销商。只要品牌自己的,就按
advertiser.name过滤。 - 每一页单独计费,够用了就停止翻页。
其他做法
只看几条广告,网页免费又方便。做欧盟范围的大规模研究,BigQuery 数据集是官方的,可以直接写 SQL。Semrush、SpyFu 这类搜索营销工具保存了多年的搜索广告文案,还有关键词和花费估算,这些透明中心都不展示。想把任意地区的广告放进表格、看板或 Agent 的上下文里,用 okdata 更顺手。同样的事放到 Meta 和 TikTok 上,见广告情报;长期盯竞品,见竞品监测。
更新于