我刚刚投入了我同事曾经工作过的一个项目。我看到以下代码。
var _gaq = _gaq || [];
_gaq.push(['_setAccount', "my id"]);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackEvent', 'app', 'DEACTIVATE'])
问题是,我在谷歌分析页面下没有看到任何用户事件。我检查了内容->事件。
我用谷歌搜索,然后发现大多数人都使用
pageTracker = _gat._getTracker("id")
pageTracker._trackEvent("app","DEACTIVATE");
哪一个是正确的?我喜欢先自己测试一下,但应用程序已经上线,GA 延迟了一天。我想先确认一下。
更新:进一步深入研究后,我发现我应该使用第一种方法。但是,除非您传递该值,否则它仍然不起作用。
var _gaq = _gaq || [];
_gaq.push(['_setAccount', "my id"]);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackEvent', 'app', 'DEACTIVATE',""]) // must pass value even if it's empty
最佳答案
如果您使用的是异步版本 - 并且通常没有理由不应该使用,那么您应该始终使用
_gaq.push(...)
- (其中 _gaq 只是一个 JavaScript 数组,push()
只是添加到末尾)
这个数组的全部意义在于,您可以在 GA 脚本加载之前存储事件,无论是 trackEvent
事件还是 trackPageView
事件 - 这就是它的原因称为异步跟踪。当脚本加载后,它会处理数组中的所有内容。
如果页面上的 JavaScript 在 google 脚本完成加载之前将某些内容推送到此数组,那么该事件在加载后仍将被跟踪。它也可以在脚本加载后运行。
我假设(但尚未验证这一点) - 一旦加载脚本,它就会将 _gaq
转换为可观察数组 - 或者只是直接方法调用,以便一旦您向其推送更多内容它可以立即被处理。
我建议使用 Google Analytics Debugger这是 Google 发布的 Chrome 插件 - 实时查看发送的内容。 Also this is good用于一般 GA 调试技巧。
关于google-analytics - 如何使用谷歌分析trackEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023996/