更新时间:2022年12月5号
2015年,百度全面升级https后,屏蔽了搜索词wd/word,第三方网站分析工具获取不到百度的搜索关键字,不管是SEO还是SEM的,只提供一个eqid,用eqid可以通过Referral API查询到搜索关键字,此时品牌专区不受影响,可以直接传递wd。
2020年,付费搜索的SEM的eqid移除,SEO的还有eqid。
2022年,Referer API 产品下线。
但还是可以通过一些方法获取搜索关键字的,下面介绍几种获取百度关键字的方法:
通过UTM标记
UTM有三个必须参数,还有两个可选参数term和content,可以用这两个可选参数存放搜索关键字,比如用户搜索“GA小站”的时候对应的投放的着陆页为:
http://www.ichdata.com/?utm_source=baidu&utm_medium=cpc&utm_campaign=summer&utm_content=GA小站
这样从这个词搜索进来的流量都会通过这个UTM上的参数知道,从而实现了关键字的抓取。但是这种方法获取到的投放关键字和用户搜索关键字是两个不同的概念,但如果做得足够细致,可以看似相等。
注意:但这个方法有局限性,就是只适用于SEM的关键字,如果是SEO,就无能为力了。
百度的Referral API(2022年11月移除)
百度虽然将搜索关键字屏蔽了,但是百度提供了Referral API,让用户可以获取得到不同着陆页对应的关键字。
具体原理是百度在搜索的时候,会先跳转到一个带有eqid的url,然后才跳转到搜索的页面,这中间带有eqid的url就是将关键字关联起来的。
比如我在百度中搜索“GA小站”,显示的URL是https://www.baidu.com/s?wd=GA小站,可以看到上面的wd就是搜索关键字。
但是点击一个链接后它会先跳转到一个百度的中转页上面就没有wd了。
我们需要在获取eqid,然后通过百度Referral API将eqid将关键字关联起来。
百度提供的API接口有这么几个特点:
- 付费的,但是费用很廉价,0.001元/次
- 注册需要有百度推广账号,完成企业认证
- 需要百度云北京地区的服务器才可以使用Referral API。
- 只提供近两天的数据,所以需要通过程序定时的将API的数据导入到GA
百度referralapi的地址:https://cloud.baidu.com/doc/RefererAPI/s/hjwvycn07
注意:2020年7月,SEM的eqid已经移除,所以SEM的关键字不能通过这个方法实现,SEO的还可以。
百度统计API
如果你不想付费,还可以使用百度统计API,其实就是百度统计里的数据导出服务了。
这种方式需要维护一张表格,当有用户搜索的时候,就通过百度统计API导出当天的所有的搜索关键字,跟上一次导出的数据之间做匹对,看新增的是哪个关键字或哪个关键字的IP数据增加了,那么这次用户的搜索词就是它。
创意触发的keywordId
这种是免费的方法,是通过URL通配符实现的,目前百度凤巢系统只支持将关键词ID,创意ID开放到第三方平台,国内有增长工具就是通过这种方式获取百度关键字,如诸葛IO、TalkingData是采用这种方式。
通过向关键词目标链接中添加{keywordid},如
http://www.baidu.com?keywordid={keywordid}&creative={creative}&{mediatype}={mediatype}&matchtype={matchtype}&adposition={adposition}&pagenum={pagenum}
用户点击广告的时候,百度会自动替换{keywordid}为该关键词在百度系统里的id:
http://www.baidu.com?keywordid=12123&creative=45632&{mediatype}=1&matchtype=2&adposition=mb1&pagenum=1
其中动态参数解析:
- keywordid= 关键词唯一标识
- matchtype={matchtype} 匹配模式
- creative={creative} 触发创意
- adposition={adposition}展现排名
着陆页上会有keywordid=12123,我们要用这个keywordid通过百度统计API里去获取搜索关键字,可以看上一种方法中导出的数据中有keywordid这个字段,跟搜索关键字是一一对应的,从而实现关键字匹配。
注意:这种方式只适用于SEM。
搜索词回传API
回传API链接方式是在广告点击后,由百度服务器端向客户监测服务器(这个需要用户设置)延时发送的一个监测请求(可能会有15-30分钟延迟),客户基于收集到的回传信息进行进一步的加工处理,目前支持账户ID、搜索词、ip和点击时间这4个信息:
比如我们要订阅账户ID、搜索词、时间和ip,那么回传链接可以这么设置:
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和时间戳跟着陆页匹配了,就可以知道对应着陆页是哪个搜索关键字进来的。
注意:这种方式是适用于SEM
总结
方法 | 是否付费 | SEM | SEO | 要求 |
免费 | 支持 | 不支持 | ||
百度Referral API | 付费 | 不支持 | 支持 | 企业认证、百度云北京地区的服务器,已经下线 |
百度统计API | 免费 | 支持 | 支持 | |
KeywordId | 免费 | 支持 | 不支持 | 广告投放需要开启通配符,依赖百度统计API |
搜索词回传API | 免费 | 支持 | 不支持 | 需开通服务apihelp@baidu.com |