我试图跟踪用户何时点击联系表单上的提交按钮 该网页的网址无法更改,其静态 我无法在提交后跟踪不同的网址,唯一的选择是跟踪用户何时点击提交按钮。
我是否需要编辑我的分析帐户?
我在哪里添加额外的javascript?
UA已正确安装(analytics.js)
我是GA和javascript的新手,所以请为我分解。
由于
答案 0 :(得分:2)
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>
然而,这只是告诉你有人点击提交按钮,而不是他们正确填写表格或表格实际已经发送。
现在我进入投机土地,因为我不知道你的表格是如何运作的 - 也许你可以给我们看一个网址或提供更多信息。
但是,您可能有一个验证函数,该函数在表单的提交操作上调用,以查看表单是否正确填写。在这种情况下,建议在验证功能中进行跟踪(可怕的简化示例,而不是生产代码):
<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有一个名为&#34;全局ajax处理程序&#34;。 &#34;全球&#34;意味着它们不是特定动作的回调,它们挂钩到jQuerys ajax&#34;机制&#34;每当调用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事件,否则它将不执行任何操作。
同样,这不是生产代码。不要试图复制和粘贴。
如果你是新手,这肯定有点多,但它至少应该帮助你改进问题并看看哪些事情是可能的。如果您可以在表单中共享网址,我可以改进答案。