在我的所有网站页面上,我在结束 head 标记之前都有如下的谷歌分析异步代码设置......
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-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);
})();</script>
然后在我的结帐页面上,我尝试使用事件跟踪来报告用户在各个页面上花费的时间作为谷歌分析事件的价值。
我通过使用 jQuery.ready 函数来记录“开始”时间并将事件处理程序添加到提交按钮,从而将用户带到结帐的下一步。此代码位于外部文件 common.js 中,如下所示...
$(document).ready(function() {
recordStartTime();
if ($("#checkoutPage1").length)
{
if ($("#customerDetailsForm").length)
{
// Time spent
$('.customerDetailsSubmitButton').click(function() {
time = durationWholeSeconds();
_gaq.push(['_trackEvent', 'Checkout', 'Timing', 'CustomerDetailsPage', time]);
return true;
});
}
}
对于 jQuery.ready、#checkoutPage1、#checkoutPage2、#checkoutPage3 等中的其他步骤,我有类似的代码部分。
当我在我的浏览器 (Chrome) 上测试此代码时,一切都按预期工作并使用 ga.debug 插件,我可以看到 _trackEvent 参数被发送到谷歌分析。
我的问题似乎是这似乎并不总是在野外工作。在我的直播网站上,我看到间歇性事件正在发生。鉴于我非常准确地知道有多少“销售”,我在 GA 中应该预期的事件不匹配。通常,结帐步骤中的一些后面的事件会在没有记录较早的事件的情况下报告。
我的问题基本上是我可以使用 jQuery.ready 函数在需要的地方添加事件处理程序和跟踪代码吗?还有另一个我没有发现的问题吗?