如何在表单提交时在Google Analytics上设置事件跟踪?

时间:2016-04-22 05:44:34

标签: javascript forms google-analytics

我试图跟踪用户何时点击联系表单上的提交按钮 该网页的网址无法更改,其静态 我无法在提交后跟踪不同的网址,唯一的选择是跟踪用户何时点击提交按钮。

我是否需要编辑我的分析帐户?
我在哪里添加额外的javascript?
UA已正确安装(analytics.js)
我是GA和javascript的新手,所以请为我分解。

由于

1 个答案:

答案 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事件,否则它将不执行任何操作。

同样,这不是生产代码。不要试图复制和粘贴。

如果你是新手,这肯定有点多,但它至少应该帮助你改进问题并看看哪些事情是可能的。如果您可以在表单中共享网址,我可以改进答案。