2

我刚刚加入了我的同事曾经工作过的一个项目。我看到以下代码。

  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
4

5 回答 5

2

如果您使用的是异步版本 - 通常没有理由不应该这样做,那么您应该始终使用

_gaq.push(...)- (其中 _gaq 只是一个 javascript 数组,push()只是添加到末尾)

这个数组的全部意义在于您可以存储事件,无论是trackEvent事件还是trackPageViewGA 脚本可能加载之前的事件 - 这就是它被称为异步跟踪的原因。加载脚本后,它会处理数组中的所有内容。

如果您在 google 脚本完成加载之前将某些内容推送到此数组的页面上有 javascript,则该事件在加载后仍将被跟踪。它也可以在脚本加载后工作。

我假设(但尚未验证这一点)——一旦脚本被加载,它就会转换_gaq为一个可观察的数组——或者只是一个直接的方法调用,这样一旦你向它推送更多内容,它就可以立即被处理。

我建议使用Google Analytics Debugger,它是由 Google 发布的 Chrome 插件 - 实时查看发送的内容。这也适用于一般的 GA 调试提示。

于 2013-03-05T02:23:48.730 回答
0

如果您不想一直部署您的应用程序,并且想要更灵活和更快,您可以使用 SiteApps 中的此应用程序,如下所示:

http://siteapps.com/app/easy_ga_track_event-459

很容易设置。

于 2013-04-04T21:51:13.153 回答
0

我认为第一部分是正确的。为了确保您可以使用http://www.fiddler2.com/fiddler2/查看是否引发了事件或安装Google Analytic debugger

于 2012-06-13T22:09:57.437 回答
0

_gaq 是 Google Analytics 异步页面跟踪全局对象。
_gat 是 Google 的传统页面跟踪对象。

根据 Google 的文档,不推荐使用 _gat(account) 方法调用。

有关详细信息,请参阅https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gat

另请参阅https://developers.google.com/analytics/devguides/collection/gajs/,了解有关 Google Analytics 的更多信息。

以下是 Google 的基本异步跟踪示例:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_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);
})();

您是否在页面的 Javascript 中的任何位置看到上述匿名函数?

以下代码适用于我。 我确实注意到在您发布的代码中,您在事件跟踪调用中缺少一个尾随分号。 我最初复制了您的代码,该代码导致了 JavaScript 异常,该异常已通过在行上放置一个尾随分号来纠正。

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-######-1']);
_gaq.push(['_trackPageview']);

_gaq.push(['_trackEvent', 'app', 'DEACTIVATE']);

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

同样,上面的代码对我有用。

祝你好运!

于 2012-06-13T22:22:22.143 回答
0

对于第二种方法,您要使用_getTrackerByName而不是_getTracker

pageTracker = _gat._getTrackerByName();
pageTracker._trackEvent("app","DEACTIVATE"); 

无论哪种方式都可以,但首选第一种。

您是在实时服务器上进行测试,还是在 localhost/Intranet 机器上进行测试?如果您的服务器不在完全限定的域名上,Google Analytics 将不会发送跟踪请求 (__utm.gif) - 请参阅Google Analytics GIF request not sent

于 2012-06-14T01:30:43.600 回答