使用GTM跟踪SquareSpace中的表单提交

时间:2014-10-13 21:40:42

标签: javascript google-analytics google-tag-manager universal-analytics squarespace

我正在帮朋友在SquareSpace上设置网站。我已设置Google跟踪代码管理器(GTM)以自动跟踪表单提交和链接点击(使用自动侦听器)。

但是,SquareSpace中的表单不适用于GTM中的表单侦听器(显然是由于在代码中的onSubmit处理程序中使用了return false,请参阅https://productforums.google.com/forum/#!topic/tag-manager/Vlro87_GOVY

我一直在努力寻找另一种方法来完成这项工作(当谈到JS时,我非常感到愚蠢,我很害怕,但我还在尝试我最好的。)

我还尝试在我的页脚中实现此答案中提到的代码:http://answers.squarespace.com/questions/7450/how-can-i-track-form-submissions-in-google-analytics,没有任何事件出现在GA中。应该注意的是,我使用的是Universal Analytics,而不是旧的GA - 因此不使用SquareSpace中的GA字段,因为它只支持旧的Google Analytics。 GA代码通过Google跟踪代码管理器(GTM)添加到我的网站。

有没有人知道解决方法?例如,我可以在提交表单后添加一些自定义JS代码来触发,它会通过我的DataLayer将数据发送到GTM吗?

请注意,在SquareSpace中,您无法更改表单本身的代码(这会使事情变得更容易),但您可以添加一些将在提交表单后加载的html。

这是我迄今为止所尝试过的:

1)将以下内容添加到我的页脚部分

<!-- Form Submit tracking -->
<script>
  Y.use('node', function() {
    Y.on('domready', function() {
      Y.all('.form-block').each(function(n) {
        var d = n.getData('block-json');
        d = Y.JSON.parse(d);
        n.one('form').on('submit',function() {
         _gaq.push(['_trackEvent', d.formName + ' Submission', 'Form Submission', 'Submit']);
        });
      });
    });
  });
</script>
<!-- Form Submit Tracking END -->

2)将其添加到页脚:

<!-- Form Submit tracking -->
<script>
  Y.use('node', function() {
    Y.on('domready', function() {
      Y.all('.form-block').each(function(n) {
        var d = n.getData('block-json');
        d = Y.JSON.parse(d);
        n.one('form').on('submit',function() {
           dataLayer.push({
             'label': 'Get The Bundle',
             'action': 'Submit',
             'event': 'SS Form Submit'
           });
        });
      });
    });
  });
</script>
<!-- Form Submit Tracking END -->

3)在提交表单后将此代码添加到自定义HTML字段:

  <script onload="loadGTM()">
    </script>
    <script type="text/javascript">
      function loadGTM() {
        dataLayer.push({
            'label': 'Get The Bundle',
            'action': 'Submit',
            'event': 'SS Form Submit'
          });
       }
    </script>

我真的希望有人可以帮助我指出正确的方向。我确信必须有其他人尝试做类似的事情,也可以从中受益。

谢谢! :)

1 个答案:

答案 0 :(得分:0)

这很好。

现在在GTM中,通过触发器监听事件。然后创建一个GTM标签以将触发器发布到GA。