Javascript 使用GTM在SquareSpace中跟踪表单提交

Javascript 使用GTM在SquareSpace中跟踪表单提交,javascript,google-analytics,google-tag-manager,universal-analytics,squarespace,Javascript,Google Analytics,Google Tag Manager,Universal Analytics,Squarespace,我正在帮助一个朋友在SquareSpace上建立一个网站。我已经设置了GoogleTagManager(GTM)来自动跟踪表单提交和链接点击(使用自动侦听器) 但是,SquareSpace中的表单不能与GTM中的表单侦听器一起工作(显然是由于在代码的onSubmit处理程序中使用了return false,请参阅) 我已经花了好几个小时试图找到另一种方法来实现这一点(我担心,在JS方面,我是相当n00b的,但我正在尽我最大的努力) 我还尝试实现这个答案中提到的代码:在我的页脚中,GA中没有显示任

我正在帮助一个朋友在SquareSpace上建立一个网站。我已经设置了GoogleTagManager(GTM)来自动跟踪表单提交和链接点击(使用自动侦听器)

但是,SquareSpace中的表单不能与GTM中的表单侦听器一起工作(显然是由于在代码的onSubmit处理程序中使用了return false,请参阅)

我已经花了好几个小时试图找到另一种方法来实现这一点(我担心,在JS方面,我是相当n00b的,但我正在尽我最大的努力)

我还尝试实现这个答案中提到的代码:在我的页脚中,GA中没有显示任何事件。应该注意的是,我使用的是通用分析,而不是旧的GA-因此不使用SquareSpace中的GA字段,因为它只支持旧的Google分析。GA代码通过Google标签管理器(GTM)添加到我的站点

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

请注意,在SquareSpace中,您无法更改表单本身的代码(这会使事情变得更简单),但您可以添加一些html,这些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 -->

Y.use('节点',函数()){
Y.on('domready',function(){
Y.all('.form block')。每个(函数(n){
var d=n.getData('block-json');
d=Y.JSON.parse(d);
n、 一个('form')。在('submit',function()上{
_gaq.push([''u trackEvent',d.formName+'Submission','formsubmission','Submit']);
});
});
});
});
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 -->

Y.use('节点',函数()){
Y.on('domready',function(){
Y.all('.form block')。每个(函数(n){
var d=n.getData('block-json');
d=Y.JSON.parse(d);
n、 一个('form')。在('submit',function()上{
数据层推送({
'label':'Get The Bundle',
“操作”:“提交”,
“事件”:“SS表单提交”
});
});
});
});
});
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>

函数loadGTM(){
数据层推送({
'label':'Get The Bundle',
“操作”:“提交”,
“事件”:“SS表单提交”
});
}
我真的希望有人能帮我指出正确的方向。我相信一定有其他人也在尝试做类似的事情,从中受益

谢谢!:)

那很好


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

您在GTM中设置了哪些宏、规则和标记?仅仅添加上面的代码不会触发GA事件;它将只触发一个GTM事件。是的,它将触发一个GTM事件,然后您需要配置GTM,以便它向GA触发一个GTM标记,以便GA知道发生了什么。