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: 落地页 URLdisplayed_link: 显示的 URLdescription: 广告描述
如果你的广告在目标关键词的 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=us跟gl=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 注册,不用绑卡。