我想知道人们点击特定按钮的次数(使用Google分析应该非常简单)。 但是,我有一个“未捕获的ReferenceError:ga未定义”错误来自谷歌控制台,无法找到如何解决它。
我在头脑中添加了这个:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)
[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-X', 'auto') ;
ga('send', 'pageview');
</script>
使用此工具http://gaconfig.com/google-analytics-event-tracking/contact-form/生成代码,在按钮上添加onclick事件:
onclick="ga('send', 'event', { eventCategory: 'Book button', eventAction: 'Click', eventLabel: 'enquiry home page'});"
然后我在Google Analytics中设置了目标,但在控制台中仍然出现此错误。
所以我试着添加:
var gaq = gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
在宣布谷歌分析功能之前,它会产生第二个错误,所以我就放弃了它。
有谁知道问题是否来自我正在使用的脚本?或者,如果它来自onclick事件代码?
答案 0 :(得分:17)
我使用相同的JS和点击处理程序创建了一个简单的HTML并在我的本地apache服务器中运行它,它运行正常。没有看到任何参考错误。
确保您没有AdBlocker或其他软件阻止可能阻止GoogleAnalytics的跟踪 `
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)
[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-X', 'auto') ;
ga('send', 'pageview');
</script>
<input type= "button" value ="Click Me" onclick="ga('send', 'event', { eventCategory: 'Book button', eventAction: 'Click', eventLabel: 'enquiry home page'});"/>
答案 1 :(得分:4)
我的Wordpress网站也出现了同样的问题。 我在我的联系表单7附加字段中有事件跟踪代码,但在我安装插件Monster Insights后,我不得不删除主题选项中的代码。忘记我的联系表格中的代码,我也得到了这个消息。
如果您开始使用此插件,请删除所有跟踪代码。 希望有人发现这些信息有用..
答案 2 :(得分:3)
你已经解决了这个问题,但我只是想补充一下:
确保您的浏览器允许网站跟踪您。如果您禁止跟踪,Google Analytics JS文件将无法加载,您可能会收到此错误
答案 3 :(得分:3)
打开一个新的隐身窗口。如果您已登录,则将不会运行分析代码。另外,出于某些原因,Monster Insights不使用“ ga”,因此您需要使用“ __gaTracker”,而不是“ ga”,它们会将其更改为“ __gaTracker”。
答案 4 :(得分:0)
这是所有其他与Monster Insights Wordpress插件有关的问题的后续,该插件将ga
重命名为__gaTracker
。
我不想在我的JS中对__gaTracker
进行硬编码(向GA发送事件),以防万一以后有人删除了MonsterInsights插件而我的脚本刚刚停止工作。
这是我的代码:
<script type="text/javascript">
var ga = typeof ga === "undefined" && typeof __gaTracker !== "undefined" ? __gaTracker : ga;
ga('send', 'event', 'Order', 'Received', 'My cool product name');
</script>
第一行创建一个名为ga
的var,它是原始ga
对象或__gaTracker
对象(如果ga
不存在)。注意:如果ga
和__gaTracker
都不存在,您将得到相同的错误ga is not defined