未捕获的ReferenceError:未定义ga

时间:2015-07-07 16:52:58

标签: javascript google-analytics

我想知道人们点击特定按钮的次数(使用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事件代码?

5 个答案:

答案 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