更新时间:2022年12月5号
由于百度不断加强用户隐私保护,目前第三方统计工具(如GA4)已经无法像以前一样直接获取百度搜索关键字。
2015年之后,百度陆续移除了Referer中的 wd/word 参数,并最终关闭了相关API,因此获取搜索词的方式越来越少。
目前能够获取百度搜索关键字的方法主要如下。
| 方法 | 是否收费 | SEM | SEO | 是否仍可用 |
|---|---|---|---|---|
| UTM 参数 | 免费 | ✅ | ❌ | ✅ 推荐 |
| 百度统计 API | 免费 | ✅ | 部分支持 | ✅ |
| KeywordId | 免费 | ✅ | ❌ | ✅ |
| 搜索词回传 API | 免费 | ✅ | ❌ | ✅(需申请) |
| Referral API | 付费 | ❌ | ✅ | ❌ 已下线 |
百度为什么获取不到搜索关键字?
百度曾经会在搜索结果页面的URL中传递 wd(word) 参数,例如:
https://www.baidu.com/s?wd=GA小站
wd=GA小站
后来为了保护用户隐私,百度逐步进行了以下调整:
| 时间 | 变化 |
|---|---|
| 2015 年 | HTTPS 全面升级,Referer 不再传递 wd/word,仅保留 eqid。 |
| 2020 年 | SEM 流量不再传递 eqid,仅 SEO 保留。 |
| 2022 年 | Referral API 下线。 |
因此,现在第三方分析工具已经无法直接获取百度搜索关键字。
方法一:使用UTM参数(推荐)
对于 SEM(百度推广),最简单的方法就是在广告落地页中使用UTM参数。
例如:
http://www.ichdata.com/?utm_source=baidu&utm_medium=cpc&utm_campaign=summer&utm_content=GA小站
其中:
utm_content=GA小站
这样,在GA4中即可直接看到utm_source、utm_medium、utm_campaign、utm_content,从而分析不同关键词带来的流量和转化。
注意:UTM 记录的是广告投放关键词,并不一定等于用户真实搜索词。如果一个关键词对应多个匹配模式(精确、短语、广泛),仍可能存在一定差异。
适用范围
- ✅ 百度推广(SEM)
- ❌ 百度自然搜索(SEO)
方法二:百度统计 API
如果网站同时部署了百度统计,可以调用百度统计API导出搜索词数据。
一般流程如下:
- 定时调用百度统计 API。
- 导出当天搜索关键词数据。
- 获取关键词对应的KeywordId、IP、访问时间等信息。
- 与网站访问日志进行关联。
- 将结果导入GA4或数据仓库。
相比直接抓取Referer,这种方式更加稳定,也是目前较多企业采用的方法。
适用范围
- ✅ SEM
- ⚠️ SEO(取决于百度统计可提供的数据)
方法三:KeywordId(推荐)
百度推广支持在广告链接中使用动态参数。
例如:
<span style="font-size: 12pt;">www.baidu.com?keywordid={keywordid}&creative={creative}&{mediatype}={mediatype}&matchtype={matchtype}&adposition={adposition}&pagenum={pagenum}
</span>
广告点击后,百度会自动替换为:
<span style="font-size: 12pt;">www.baidu.com?keywordid=12123&creative=45632&{mediatype}=1&matchtype=2&adposition=mb1&pagenum=1
</span>
其中常见参数如下::
- keywordid= 关键词唯一标识
- matchtype={matchtype} 匹配模式
- creative={creative} 触发创意
- adposition={adposition}展现排名
之后可通过百度统计API导出的 KeywordId 与搜索词建立映射关系,实现关键词还原。
适用范围
- ✅ SEM
- ❌ SEO
方法四:搜索词回传 API
百度推广还提供了搜索词回传API。
广告点击后,百度服务器会在 15~30 分钟内向用户指定的服务器发送一次回传请求。
目前支持账户ID、搜索词、ip和点击时间这4个信息:
例如:
https://www.bbb.com?uid={userid}&query={query}&ip={ip}&time={time}
实际请求可能如下:
https://www.bbb.com?uid=123456&query=%e9%b2%9c%e8%8a%b1&ip=106.115.104.89&time=1594260440000
服务器即可获得搜索词、用户 IP 、点击时间、账户ID信息, 再结合网站日志、Cookie或GA4 Client ID,即可关联用户访问对应的搜索关键字。
注意: 搜索词回传 API 需要向百度申请开通,具体支持情况请以百度推广平台最新政策为准。
适用范围
- ✅ SEM
- ❌ SEO
已下线:Referral API
早期百度提供 Referral API,可通过 eqid 查询真实搜索关键字。
这种方式有这么几个特点:
- 付费的,但是费用很廉价,0.001元/次
- 注册需要有百度推广账号,完成企业认证
- 需要百度云北京地区的服务器才可以使用Referral API。
- 只提供近两天的数据,所以需要通过程序定时的将API的数据导入到GA4
但该接口已于 2022 年正式下线,目前已无法继续使用,因此不建议再采用该方案。
总结
| 方法 | 是否收费 | SEM | SEO | 推荐指数 |
|---|---|---|---|---|
| UTM 参数 | 免费 | ✅ | ❌ | ⭐⭐⭐⭐⭐ |
| 百度统计 API | 免费 | ✅ | 部分支持 | ⭐⭐⭐⭐ |
| KeywordId | 免费 | ✅ | ❌ | ⭐⭐⭐⭐⭐ |
| 搜索词回传 API | 免费 | ✅ | ❌ | ⭐⭐⭐⭐ |
| Referral API | 已下线 | ❌ | ❌ | ⭐ |
建议
对于目前的百度推广(SEM),建议优先采用以下组合:
- UTM 参数:便于GA4直接统计广告效果。
- KeywordId:用于还原广告关键词。
- 搜索词回传 API:获取真实搜索词并与站内数据关联。
- 百度统计 API:作为关键词映射和数据补充来源。
对于百度自然搜索(SEO),由于百度已不再向第三方开放真实搜索关键字,目前基本无法像早期一样直接获取完整搜索词,只能借助百度统计等官方产品提供的有限数据进行分析。

