虽然Google Analytics里面有个漫游器过滤器,这个过滤器可以过滤掉大部分的机器流量,但始终还是有部分机器流量没在这个过滤器的范围,所以还是需要通过其他的方式去是被过滤器,比如垃圾/作弊流量的分类与七种识别方法。
这一节介绍另一种方法,通过reCAPTCHA识别机器流量。reCAPTCHA 项目是由卡内基梅隆大学创建的系统,于 2009 年 9 月被谷歌收购。
一提到reCAPTCHA,很多人可能可能想到是图片验证,其实背后也是机器流量的识别,可以迁移到我们的Google Analytics里面使用的。
reCaptcha 已经升级到了 v3,直接给用户打分,整个流程是,页面加载的时候,向自己的服务器发送请求,服务器携带秘钥向reCaptcha请求去验证这次流量是否正常,reCaptcha会返回一个分数,0~1之间,越接近1就是正常流量,越接近0就是机器流量。
整个验证的过程,跟品牌安全的验证过程一样的,就是在页面打开的时候,向第三方验证平台请求去验证,然后返回结果,你自己就可以通过这个结果去判断去选择策略。
创建reCaptcha v3
访问https://www.google.com/recaptcha/admin/create创建一个reCaptcha,选择reCaptcha v3:
点击后你会获得两个秘钥:
后面需要用到,第一个秘钥是用于布署到网站页面的,第二个是布署到服务器的,注意不要搞混。
设置GTM
在Google Tag Manager设置一个HTML的Tag,触发器选择All Pages。
注意:代码中的“复制网站秘钥”是第一个秘钥,要替换成你自己的。另外这段代码需要在Google Analytics的基础跟踪代码之前触发,因为我们需要将分数通过自定义维度传递到Google Analytics,所以要在pv发送之前就拿到分数。
设置服务器端代码
设置服务端的代码,将这段代码上传到服务器根路径下:
注意:这里的secret中用的第第二个秘钥,需要替换成你自己的。
从代码中可以看到验证是需要向Google的服务器请求,而这个域名是在google.com是被屏蔽的,所以如果是服务器在大陆地区的是使用不了,需要替换成recaptcha.net,这个是谷歌提供给中国地区的一个验证服务器。
获取分数
获取分数有两种方式:一种是通过数据层获取,一种是通过第一方cookie。
数据层
设置GTM里面的代码中有一段:
window.dataLayer.push({ event: 'recaptcha', recaptchaAnswer: greResult.success, recaptchaScore: greResult.score });
成功获取分数后会通过数据层发送出去。
greResult.success表示是否获取成功,1表示成功,greResult.score就是分数了,通过数据层变量可以拿到这两个值。如:
第一方cookie
设置服务器端代码中有一段:
setcookie('_rbs', $curlJson['score'], time()+1800, '/','', 0);
它会将分析设置到cookie里的_rbs。可以通过这种方式去验证自己是否布署成功。
所以这两种方式都可以见到分数的。
将分数设置成自定义维度
创建一个自定义维度reCAPTCHA score:
然后将其设置成自定义维度:
这里的值是用数据层的。
如果你是通过数据层发送的,你还可以通过事件将分数发送给Google Analytics。
结果
结果可以在下面几个位置看:
reCaptcha后台
reCaptcha后会呈现数据的概要,如每天请求数和可以数量:
可以看到即使我开启了漫游过滤器,仍然有2.2%的可疑流量。
事件跟踪
如果你通过数据层发送,那么还可以通过事件跟踪传递分数,event label就是分数了:
分数太低就是可疑流量。
自定义维度
利用自定义维度,你可以在次级维度、自定义报告或细分中去进一步分析。