我试图跟踪用户何时单击联系表单上的“提交”按钮。
页面的URL不变,它是静态的。
我无法在提交后跟踪其他URL,唯一的选择是跟踪用户何时单击“提交”按钮。
我需要编辑我的分析帐户吗?
在哪里添加其他JavaScript?
UA已正确安装(analytics.js)
我是GA和JavaScript的新手,所以请为我分解一下。
谢谢
最佳答案
I can't track a differnt URL after submission, the only option would be to track when a user hits the submit button.
这有点不合时宜。即使Url不变,也可能会发生一些事情-在发送之前,可能会进行某种形式的验证,并且幕后还会有一些动作来发送形式,例如ajax调用。
您可以将事件跟踪附加到提交处理程序:
<form onSubmit="ga('send','event','category','action','label')">
<input type="text" id="text" name="text">
<input type="submit">
</form>
但是,这只会告诉您有人单击了提交按钮,而不是他们是否正确填写了表单或表单是否已实际发送。
现在,我进入猜测领域,因为我不知道您的表格实际如何工作-也许您可以向我们显示url或提供更多信息。
但是也许您有一个验证函数,可以在表单的提交操作上调用该函数,以查看表单是否正确填写。在这种情况下,建议在验证功能中进行跟踪(非常简化的示例,而不是生产代码):
<form onSubmit="validate()"><input type="text" id="text" name="text"><input type="submit"></form>
<script>
function validate() {
var test = document.querySelector('#text').value
if(test = "") {
ga('send','event','Form','Submit','Submitted, but not filled in');
return false;
}
ga('send','event','Form','Submit','Submitted with correct values');
return true;
}
</script>
更好一点,至少它可以跟踪正确提交和无效提交之间的差异。
甚至有更多的猜测:如果您发送的表单没有重新加载页面,则它可能使用了ajax调用,并且很有可能使用jQuery(我说这是因为a)确实很有可能,而b)构造一个更容易jQuery中的示例。其他库或本机JS也可以实现相同的功能,但是如果您不使用jQuery,该示例将产生错误。
jQuery有一个叫做“全局ajax处理程序”的东西。 “全局”表示它们不是特定动作的回调,每当调用ajax函数时,它们就会挂接到jQuery的ajax“机制”中。如果每页只有一个aja事件(例如,您需要逻辑来区分不同的ajax事件,例如,通过检查它们发送到的url),以下方法可能会起作用,并且允许您跟踪ajax调用是否已成功返回,例如当您的表单数据已发送到服务器,并且请求返回2xx状态代码时:
$(document).ajaxSuccess(function() {
ga('send','event','Form','Submit','Yeah, form data sent to the server');
});
但是,这不会告诉您数据是否已正确处理。为此,您需要使服务器发出成功消息并检查响应:
$( document ).ajaxSuccess(function( event, xhr, settings ) {
if ( settings.url == "formprocessor.php" ) {
if(xhr.responseText.indexOf("success") > -1) {
ga('send','event','Form','Response Received','Form data processed ');
} else {
ga('send','event','Form','Response Received','Form data NOT processed ');
}
}
});
全局ajax事件处理程序已附加到文档-您可以将其放在页面上的任何位置,除非调用了ajax事件,否则它将什么都不做。
同样,这不是生产代码。不要尝试复制和粘贴。
如果您是初学者,那么这当然有点多,但是它至少应该可以帮助您改善问题并查看可能发生的事情。如果您可以与您的表格共享一个网址,则可以改善答案。
关于javascript - 如何在提交表单时在Google Analytics(分析)上设置事件跟踪?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36785780/