未捕获的ReferenceError:未定义ga

mei*_*j57 15 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>
Run Code Online (Sandbox Code Playgroud)

通过使用此工具http://gaconfig.com/google-analytics-event-tracking/contact-form/生成代码,在按钮上添加onclick事件:

onclick="ga('send', 'event', { eventCategory: 'Book button', eventAction: 'Click', eventLabel: 'enquiry home page'});"
Run Code Online (Sandbox Code Playgroud)

然后我在谷歌分析中设置目标,但在控制台中仍然有这个错误.

所以我试着添加:

var gaq = gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
Run Code Online (Sandbox Code Playgroud)

在声明谷歌分析功能之前,它会产生第二个错误,所以我放弃了它.

有谁知道问题是否来自我正在使用的脚本?或者,如果它来自onclick事件代码?

小智 19

我用相同的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'});"/>
Run Code Online (Sandbox Code Playgroud)