根据国外一项研究报告,在美国及欧洲,大约有9.26%的广告会被屏蔽,而Google Analytics的再营销代码片段中的stats.g.doubleclick.net/dc.js不幸被列在这个名单之内,可以自行安装AdBlock这个插件查看。如果用户安装了这个插件并启用过滤掉了那个URL,那么你也就无法收集和跟踪到这部分数据了,从而造成数据统计误差。
在此,我们提供一个解决方案,原理是这样的:如果用户安装了插件致使GA中的再营销代码无法执行,则使用传统的GA代码,否则执行再营销的代码。同时,为了统计有用户安装相关插件的占比,我们还可以使用事件跟踪或自定义变量跟踪来追踪这个数据占比(这里提供的是自定义变量实现,同理也可以用事件跟踪)。
首先,我们通过这个javascript函数判断用户是否安装屏蔽了dc.js:
“ |
其次,我们使用页面级的自定义变量进行跟踪这个比例:
if ( !_adblock ) { | |
_gaq.push(['_setCustomVar',3,'Adblocker','Not Installed',3]); | |
} else { | |
_gaq.push(['_setCustomVar',3,'Adblocker','Installed',3]); | |
} |
再次,我们通过以下函数自动识别使用哪个代码片段:
(function() { | |
if ( !_adblock ) { //load dc.js unless user has opted for AdBlock | |
ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; | |
ga.src = (‘https:’ == document.location.protocol ? ‘https://’ : ‘http://’) + ‘stats.g.doubleclick.net/dc.js’; | |
s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s); | |
} else { //otherwise load ga.js | |
ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; | |
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’)+ ‘.google-analytics.com/ga.js’; | |
s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s); | |
} | |
})(); |
这样,就搞定了。既能够更完整地收集到用户访问数据,同时还能够充分利用GA的再营销进行更细致的用户细分。
参考文章: