SERP API 做广告验证:检查你的广告是否被 Google 屏蔽

SERP API 做广告验证:检查你的广告是否被 Google 屏蔽

背景

做 SEM 的同行都怕一个事:你花了钱投 Google Ads,但 Google 因为合规 / 政策原因把你的广告停了。你自己的 dashboard 不一定第一时间知道。

对策:每天用 SERP API 查一遍目标关键词,看你自己的广告是否还出现在 top 4 的 sponsored slot。

思路

Google Ads 的 top 4 slot 通常是 sponsored 标记(在 SERP 里以 “Sponsored” 开头)。/google/search返回的数组里有ads字段,包含:

  • position: 1-4(top 4)
  • title: 广告标题
  • link: 落地页 URL
  • displayed_link: 显示的 URL
  • description: 广告描述

如果你的广告在目标关键词的 top 4 消失,就是被屏蔽的早期信号。

每次 1 credit。

30 行 Python 监控脚本

importrequests,csv,timefromdatetimeimportdatetime API_KEY="your-serpbase-key"ENDPOINT="https://api.serpbase.dev/google/search"KEYWORDS=["your brand keyword 1","your brand keyword 2",...]# 你的目标关键词YOUR_DOMAIN="yourdomain.com"# 你的落地页 domaindeffetch_serp(keyword):r=requests.post(ENDPOINT,headers={"X-API-Key":API_KEY},json={"q":keyword,"gl":"us","hl":"en","num":10},timeout=10,)r.raise_for_status()returnr.json()defcheck_ad_visibility(keyword):data=fetch_serp(keyword)ads=data.get("ads",[])# 检查 top 4 sponsored 里有没有你的广告your_ads=[aforainadsifYOUR_DOMAINina.get("link","")]in_top4=[aforainyour_adsifa.get("position",99)<=4]return{"keyword":keyword,"total_ads":len(ads),"your_ads_total":len(your_ads),"your_ads_in_top4":len(in_top4),"your_top_position":min((a.get("position",99)forainyour_ads),default=None),}results=[]forkwinKEYWORDS:r=check_ad_visibility(kw)r["ts"]=datetime.utcnow().isoformat()results.append(r)time.sleep(0.3)# 告警:有广告消失forrinresults:ifr["your_ads_in_top4"]==0andr["total_ads"]>0:print(f"[ALERT]{r['keyword']}: 广告消失!对手占位{r['total_ads']}个 sponsored slot")withopen("ad_visibility.csv","a",newline="")asf:writer=csv.DictWriter(f,fieldnames=results[0].keys())writer.writerows(results)

几个工程细节

1. top 4 是不是真的"4"?

Google 不一定每次都填满 4 个 sponsored slot。脚本要判断"total_ads > 0"但"your_ads_in_top4 == 0"——这意味着有广告位但不是你的。

2. 对手广告也值得监控。

同样的脚本可以改成查对手 domain,看他们在你的目标关键词上出多少钱的位置。这部分数据拿来做 competitive intel。

3. mobile vs desktop SERP 不同。

Google desktop 跟 mobile 的广告位有时不同。生产脚本要分别跑 desktop 跟 mobile 两次,或者至少取 max(更保守)。

4. region 不同 SERP 不同。

gl=usgl=uk的广告完全不一样。监控脚本要按你投的国家分别跑。

配合 Google Ads API 用

Google Ads API 官方也提供 ad preview 工具,但有两个限制:

  • 速率限制严(每分钟几次)
  • 不返回 organic SERP,只返回 ad preview

SERP API 的优势是"广告 + organic 一起看",能看到"竞品 organic 排名上升是不是因为广告被 ban 了"。

成本

100 关键词 / 天 × 30 天 = 3,000 调用 = 0.9 美元(Starter Boost)。

多 region + 多 device 翻倍:200 关键词 × 2 设备 × 30 天 = 12,000 = 3.6 美元(Starter Boost)。

跟 Google Ads Script 比

Google Ads Script 也能做类似的监控,但只在你自己的 Google Ads 账号里查,看不到对手。

SERP API 的优势:全网视角,能看到对手 + 自己的相对位置。

谁用得上

  • 中型 SEM 团队(投 $10k+/月)
  • Affiliate / 联盟营销
  • 自有品牌的广告主
  • 广告代理商(给客户的月度报告)

注意点

  • SERP 里的 ads 字段不一定每次都返回(Google 有时隐藏 ad data)
  • 监控频率别太高,每天 1-2 次够了
  • request_id落库,异常数据可查 SerpBase 后台
  • SERP 显示 ≠ 实际投放,Google 有个性化因素,看到的可能跟某用户实际不同

100 次免费试用:serpbase.dev 注册,不用绑卡。