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

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

 (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');  

它位于标记之前。

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

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

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

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

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

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

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

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

更新:逗号丢失。

我有同样的问题。 我必须创建一个新属性并选择“Universal Analytics”而不是“Classic Analytics”(它标记为“beta”)。 现在可以正确捕获事件。

我遇到了同样的问题,而且我认为我已经找到了解决方案,但是对于Universal Analytics来说,这真的让我感觉很糟糕。

我必须做的是明确使用同步分析API。 因此,不要在标记中包含常用的代码段,请使用以下代码:

   

然后你像这样调用事件跟踪代码:

 tracker.send('event', 'Category', 'Action', 'Label'); 

这将确保跟踪信标发送给Google 在用户导航到的页面开始加载之前得到确认

这表明Universal Analytics需要某种额外的确认,而不是旧的ga.js分析代码所需要的。 因此,当您将事件附加到将用户带到另一个页面的单击时,无法发送该确认,因为浏览器已离开页面并删除了当前的javascript执行堆栈。

也许这个问题特定于某些执行环境(我在OSX Mountain Lion上使用Chrome 34),这可能解释了为什么更多的开发人员没有注意到这个问题。

在我的情况下,问题是阻止分析脚本加载的uBlock Origin。

我看不出代码本身有什么问题。 您是否尝试过使用备用事件跟踪?

 ga('send', { 'hitType': 'event', // Required. 'eventCategory': 'button', // Required. 'eventAction': 'click', // Required. 'eventLabel': 'contact form' }); 

我还建议使用GA Debug Chrome插件测试网站,这样您就可以看到跟踪信号是否已发送。

截至目前,Universal Analytics的“官方”调试文档仍然缺失,但希望很快就会添加,因为ga_debug.js提供了很多有用的方法来找出Google Analytics实施的错误…

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

UPD :使用GA Chrome调试,发现了一个问题; 第一种方法不起作用(发送事件没有附加任何数据),但第二种方法是OK。

您还应该考虑在ga脚本能够执行’send’方法之前触发提交事件后页面可能会重新加载。 为避免这种情况,您可以使用’hitCallback’机制,即阻止提交,调用ga send-method并在回调中提交表单数据。

我得到了它 – 我的例子是使用新的Universal Analytics。

  
  1. 确保Google Analytics / Google跟踪代码管理器filter不排除来自其他域的任何流量。 (也许你正在测试它以使用不同的域工作)
  2. 在ga(’create’,’UA-39570713-1’,’site.com’)中重新检查您的GA ID和域名;
  3. 在Google Analytics(GA)中创建新的配置文件以进行测试,并在您在GA中定义的同一域中调试html。
  4. 在GA中更改今天的日期 – 您可能还需要等待一段时间才能在GA中出现

在我的情况下它没有用,因为我直接从文件系统加载HTML文件。

通过Web服务器加载页面就可以了。

对于本地开发,像https://github.com/tj/serve这样的工具做得很好。

今天我需要第一次设置分析,我发现自己遇到了同样的麻烦。

我发现处理多个跟踪器以避免getAll()getAll()是这样的:

  

请注意,您必须将“名称”传递给create方法,然后使用ga([trackerName].send, ...)将事件发送到该跟踪器

参考: https : //developers.google.com/analytics/devguides/collection/analyticsjs/accessing-trackers

我建议通过window.dataLayer.push({ event: 'EVENT_NAME', ...data })发送GTM事件window.dataLayer.push({ event: 'EVENT_NAME', ...data })并在GTM中创建触发器以触发将事件发送到Google Analytics的标记。 您将获得GTM预览的最佳调试体验,并且您将确保将事件从GTM发送到GA,因为GTM负责这一点。

解决问题的唯一方法是回滚到之前版本的Analytics(非beta):

  

您还可以使用我为新的Universal Analytics编写的jquery插件: https : //github.com/pascalvgemert/jquery-analytics-event-tracking

Interesting Posts