Javascript 谷歌分析可以用来衡量动态表单的使用情况吗?

Javascript 谷歌分析可以用来衡量动态表单的使用情况吗?,javascript,forms,google-analytics,Javascript,Forms,Google Analytics,我们开发了一个基于web的应用程序,用户可以将科学数据输入到动态表单中,并在表单输入发生变化时动态生成结果 因为表单是动态的,所以用户可以在表单上花费很多时间,而无需重新加载页面 我们的客户想知道每个用户对表单进行了多少调整,以衡量使用情况和参与度 我们已经有了一个Javascript计数器,它记录了对表单所做更改的数量 他们还问我们是否可以测量有多少字段被更改(我们可以通过Javascript进行测量) 是否可以在Google Analytics中记录动态表单的使用情况?最好的方法是什么?是的

我们开发了一个基于web的应用程序,用户可以将科学数据输入到动态表单中,并在表单输入发生变化时动态生成结果

因为表单是动态的,所以用户可以在表单上花费很多时间,而无需重新加载页面

我们的客户想知道每个用户对表单进行了多少调整,以衡量使用情况和参与度

我们已经有了一个Javascript计数器,它记录了对表单所做更改的数量

他们还问我们是否可以测量有多少字段被更改(我们可以通过Javascript进行测量)


是否可以在Google Analytics中记录动态表单的使用情况?最好的方法是什么?

是的,如果您可以在每次更改中添加一点Javascript

如果您碰巧使用Google标记管理器,您可以将事件对象推送到数据层并侦听这些对象,然后触发GA事件标记

如果您没有GTM,那么只要在发生更改时硬编码GA事件即可

除非您不能对每个事件发送的Javascript有任何发言权

Google Tag Manager(GTM)事件示例:

然后,您将告诉GTM侦听值为“form_change”的自定义事件


是否有可能访问相关站点进行查看?有链接吗?

您可以使用
onclick
onchange
触发事件来向GA发送上下文更改事件。我发现使用助手函数来实现这一点很有用

此函数应放置在
中,并应填充相关表单名称和上下文(

在上述示例中,每次更改文本字段或选择字段或单击复选框或单选按钮时,都将调用具有以下结构的事件:

  • 类别:表格
  • 操作:
    {{formname}
  • 标签:
    {{element name/id}}
    {{{element type}}
dataLayer.push({
    'event': 'form_change',
    'eventCategory': 'forms',
    'eventAction': [e.g. form name e.g. newsletter sign up],
    'eventLabel': [type of change e.g. field value after change]
})
<script>
// helper function to trigger a Data Layer Form Event
analyticsForm = function(f, el) {
  var formName = f;
  var elName = el.name || el.id || el.type;
  var category = 'interaction';
  var action = 'form: ' + formName;
  var label = elName + ':' + el.type;

  // GA method of sending the event
  ga('send', 'event', category, action, label);

  // GTM method of sending the event
  window.dataLayer.push({
    'event': 'event',
    'category': category,
    'action': action,
    'label': label
  });
}
</script>
<form>
  <input type="text" name="field1Name" onchange="analyticsForm('formName', this)">
  <input type="text" name="field2Name" onchange="analyticsForm('formName', this)">
  <select name="field3Name" onchange="analyticsForm('formName', this)">
    <option value=""> </option>
    <option value="A">A </option>
    <option value="B">B </option>
    <option value="C">C </option>
  </select>
  <input type="checkbox" name="agree" value="false" class="checkbox" onclick="analyticsForm('formName', this)">
</form>