新Google Analytics(analytics.js)设置中未跟踪事件

squ*_*ime 31 jquery events google-analytics analytics.js

我有一个网站,我正在使用新的Universal Analytics(analytics.js)进行跟踪.使用以下代码片段设置和工作(网页浏览,推介等):

<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-39570713-1', 'site.com');
  ga('send', 'pageview');

</script>
Run Code Online (Sandbox Code Playgroud)

它位于</head>标签之前.

我正在使用JQuery来发起一个事件.我用一条警告消息测试了JQuery并且它被调用了,所以这不是问题所在.以下是单击按钮时触发的代码段:

$('#submitButton').on('click', function() {
      ga('send', 'event', 'button', 'click', 'contact form');
    });
Run Code Online (Sandbox Code Playgroud)

Google Analytics的"事件"部分中没有任何内容.我一直点击按钮,即使是从不同的计算机,只是为了确保它不排除我的IP地址.由于Google提供的Google Analytics(分析)文档并未提供大量解释,因此我不知所措.

San*_*mja 109

如果您使用的是Google跟踪代码管理器,并且还想通过代码触发某些事件,ga('send'...)那么这似乎还不够.您需要先获取适当的分析对象:

if ("ga" in window) {
    tracker = ga.getAll()[0];
    if (tracker)
        tracker.send("event", "Test", "Test GA");
}
Run Code Online (Sandbox Code Playgroud)

请注意,这假设您在网站上仅使用一个Google Analytics跟踪代码.如果您碰巧使用多个,则可能需要按名称或索引获取适当的一个.

  • 这对我有用.为什么不在[Google Analytics事件跟踪页面](https://developers.google.com/analytics/devguides/collection/analyticsjs/events)中对此进行记录? (11认同)
  • 想要使用Google跟踪代码管理器发送综合浏览量事件的用户的摘录const tracker = window.ga.getAll()[0]; 如果(tracker &amp;&amp; tracker.set &amp;&amp; tracker.send){tracker.set('page',props.location.pathname)tracker.send('pageview')} (3认同)
  • 相关[关于`tracker.send`方法的文档](https://developers.google.com/analytics/devguides/collection/analyticsjs/tracker-object-reference#send) (3认同)
  • 或者,只需添加跟踪器名称,​​如下所示:ga('gtm1.send','event','Test','Test GA'); (2认同)

小智 8

对于这一刻的 GA ......在 SPA 中发送一个新页面对我来说最终看起来像这样:

if (window.ga){
    window.ga.getAll()[0].set('page', location);
    window.ga.getAll()[0].send('pageview')
}
Run Code Online (Sandbox Code Playgroud)

这准确地显示了 GA 报告中想要的内容,例如点击了新页面,标题和所有内容都是正确的。


小智 7

出于测试目的,您还可以使用hitCallback方法:

ga('send', {
  'hitType': 'event',         
  'eventCategory': 'button', 
  'eventAction': 'click',     
  'eventLabel': 'contact form',
  'hitCallback' : function () {
      alert("Event received");
   }
});
Run Code Online (Sandbox Code Playgroud)

更新:逗号丢失.


小智 5

就我而言,问题是 uBlock Origin 阻止分析脚本加载。


小智 5

新版本的分析具有新的语法。替换下面的行;

ga('send', 'event', 'button', 'click', 'contact form');
Run Code Online (Sandbox Code Playgroud)

有了这个;

gtag('event', 'click', {'event_category' : 'button',
  'event_label' : 'contact form'});
Run Code Online (Sandbox Code Playgroud)

参考; https://developers.google.com/analytics/devguides/collection/gtagjs/events

  • 这适用于那些使用“gtag.js”而不是“analytics.js”的人 (5认同)

squ*_*ime -2

我解决问题的唯一方法是回滚到以前版本的 Analytics(非测试版):

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-39570713-2']);
  _gaq.push(['_setDomainName', 'optimino.com']);
  _gaq.push(['_trackPageview']);

  (function() {
    var 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';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
Run Code Online (Sandbox Code Playgroud)