新版Google Analytics(analytics.js)设置中无法跟踪事件。

63

我有一个网站,正在使用新版通用分析(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>

这位于</head>标签之前。

我正在使用JQuery来触发事件。我使用一个警告消息测试了JQuery,并且它被调用了,所以那不是问题。这是在点击按钮时触发的片段:

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

分析功能中的事件部分没有显示任何内容。我一直尝试点击按钮,甚至从不同的电脑上尝试,以确保它不会排除我的IP地址。因为Google提供的分析文档没有提供很多解释,所以我现在很茫然。


我也遇到了同样的问题。我可以在实时视图中看到事件,但在内容部分的事件下却看不到。有什么想法吗? - dicemaster
我也遇到了同样的问题。我在想是否因为我们正在跟踪的点击事件会产生新的页面加载(在你的情况下是表单提交,或者在我的情况下是点击链接)。由于我们正在“离开”页面,并且Google Analytics跟踪是异步的,我可以想象跟踪事件必须先被发送(这需要一些时间),然后才能执行原始的“点击”操作(提交或加载新页面)。Google Analytics提供了一个回调来完成这个过程:http://stackoverflow.com/questions/18428690/analytics-js-event-not-working-properly - Patrick Janser
20个回答

0

我正在使用Vue.js,但似乎每次都需要创建ga(即使它已经在窗口中创建了):

ga('create', yourGtagId, 'auto');
ga('send', {});

0

我搞定了 - 我的示例正在使用新的通用分析。

<script type="text/javascript">
    function sliderOnChange() {
    var period = window.convertDays(($("#PeriodSlider").slider("value")));
    var amount_of_credit = $("#AmountOfCreditSlider").slider("value");
    var gaEventInput = "£" + amount_of_credit + " for " + period;
    ga('send', 'event', 'slider', 'sliding', gaEventInput);
}
</script>
  1. 确保Google Analytics / Google Tag Manager的过滤器没有排除来自不同域名的任何流量。(也许您正在使用不同的域名进行测试以使其正常工作)
  2. 重新检查您在ga('create','UA-39570713-1','site.com')中定义的GA ID和域名。
  3. 为测试目的在Google Analytics(GA)中创建一个新配置文件,并在与您在GA中定义的相同域中调试您的HTML。
  4. 将日期更改为今天在GA中 - 您可能还需要等待一段时间才能在GA中看到它。

0

我有同样的问题,看起来事件已经被跟踪了,但是GA仪表板不允许浏览它们。这是我能够解释GA仪表板显示的“带有事件的访问次数:1071”但“总事件数:0”的唯一方式。

更新:通过GA Chrome调试,发现了一个问题;第一种方法不起作用(发送事件时没有附加任何数据),但第二种方法可以。


0
你还应该考虑到在触发提交事件后,可能会重新加载页面,而 ga 脚本尚未能够执行“发送”方法。为了避免这种情况,你可以使用“hitCallback”机制,即阻止提交,调用 ga 发送方法,并在回调中提交表单数据。

0

我看到的所有内容都不包括事件(实时和报告)。我的步骤包括:

  • 联系谷歌,他们发现我的Google Optimize的GTM标签阻止了所有事件发送到分析。
  • 从Google标签管理器中删除Optimize标签,事件开始在分析中出现。

如果您遇到此问题,请尝试暂停某些标签。同时将事件标签连接到某个目标。


0
我建议通过 window.dataLayer.push({ event: 'EVENT_NAME', ...data }) 发送 GTM 事件,并在 GTM 中创建触发器来触发标签,从而将事件发送到 Google Analytics。使用 GTM 预览可以获得最佳的调试体验,并且您可以确保事件将从 GTM 发送到 GA,因为 GTM 会处理这些事情。

0

onclick ga() 函数对我不起作用,我还在 <head> 部分中添加了 'analytics.js' -

<a mat-list-item routerLink='/dashboard' onclick="ga('send', 'event', 'Dashboard', 'Click', 'demoClick, 30);">
   <mat-icon color="accent">home</mat-icon>
   <span class="side-item">Dashboard</span>
</a>

gtag()函数对我来说运行良好,只需在<head>部分添加'gtag.js',不需要或可以删除'analytics.js' -

<a mat-list-item routerLink='/dashboard' id="sideNavDashboard" onclick="gtag('event', 'Click', {'event_category':'Dashboard', 'event_label':'demoClick', 'value':'30'});">
   <mat-icon color="accent">home</mat-icon>
   <span class="side-item">Dashboard</span>
</a>

结果(Google Analytics 输出)-

enter image description here


-1
在我的情况下,它没有起作用,因为我直接从文件系统加载HTML文件。
通过Web服务器加载页面解决了这个问题。
对于本地开发,像https://github.com/tj/serve这样的工具做得很好。

-2
我解决这个问题的唯一方法是回滚到以前版本的Analytics(非beta版):
<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>

1
这意味着您的帐户未设置使用analytics.js,它只能与Universal Analytics一起使用。您需要创建一个新的GA帐户并选择Universal Analytics,而不是Classic。 - Brian
1
FYI - 我注意到 Adblock Plus 正在屏蔽来自 Google 的新 analytics.js 文件。 - William Isted

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接