问答

怎么把 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

  1. Google 广告透明中心广告主搜索:输入名称,拿到广告主 ID(AR 开头),以及 Google 验证过的名称、注册国家和广告数量估计。验证名称常常是付钱的公司主体,和品牌名不一定一样。
  2. 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 上,见广告情报;长期盯竞品,见竞品监测。

更新于