【发布时间】:2011-06-23 18:29:27
【问题描述】:
我想跟踪用户使用 Google Analytics(分析)事件下载文件的频率,但即使事件似乎已发送,跟踪 .gif 似乎也没有正确到达。
要下载文件,用户需要填写一份简短的表格。输入此表单的信息由函数checkSubmit()检查(当输入的信息无效或不完整时返回false,当信息可以提交时返回true)。提交后,用户将被重定向到文件。
<script>
function checkSubmit() {
…
if(dataIsGood) {
_gaq.push(['_trackEvent', 'Download', 'the_filename.xxx']);
return true; //allow the form to submit
} else {
_gaq.push(['_trackEvent', 'Form', 'info not okay']);
return false; //keep the form from being submitted
}
}
</script>
<form action="/form/emailcaptureform" method="post" onSubmit="return checkSubmit();">
… </form>
在 Chrome 控制台中,Google Analytics Tracking Debugger 表示已发送下载事件跟踪信标,但控制台表示它无法加载资源 __utm.gif
这种情况仅发生在表单提交之前推送的事件。 事件在我的网站上的其他地方起作用 - 包括表单信息不好时推送的表单事件(在上面的 else 块中)
Analytics snippet 似乎正在工作,接受 _trackPageviews 和 _trackEvents。
__utm.gif 的请求 URL 格式正确:将 gadebug 输出中的 URL 复制并粘贴到位置栏中会顺利返回 __utm.gif。
当从另一个元素推送时,该事件被推送而没有问题。例如:
<a href="#" onClick="_gaq.push(['_trackEvent', 'Download', the_filename.xxx']);">Event!</a>
推送事件,暂停几秒钟,然后返回true 似乎没有任何效果——除了在提交表单之前添加一个暂停。
您有解决方案或建议吗?
【问题讨论】:
-
似乎在
-
解决这种请求冲突的方法是 1) 异步提交表单数据或 2) 中断表单上的提交事件,保持它直到处理完 GA 事件,然后有 GA允许提交表单。
标签: javascript forms google-analytics form-submit