GTM dataLayer推送后表单提交

时间:2016-08-28 13:24:23

标签: javascript google-tag-manager

我正在使用GTM的增强型电子商务通过推送到dataLayer变量来报告事件。

我有一种情况需要推送一个事件并立即在事件回调中提交一个表单。 Google理论上为此提供了eventCallback机制,但请考虑以下代码:

<script>
dataLayer.push({
  'ecommerce': {
    'currencyCode': 'EUR',
    'impressions': [
     {
       'name': 'Donut Friday Scented T-Shirt',
       'id': '67890',
       'price': '33.75',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Black',
       'list': 'Search Results',
       'position': 2
     }]
  }
},{
    'eventCallback': function() {
        document.location = productObj.url; // works
        document.getElementById('form-id').submit(); // fails (!?!)
    }
});
</script>

注意:

  1. 页面上没有Javascript错误
  2. 表格#form-id存在(不是拼写错误)
  3. 底线:如何在推送后使表单提交?或者这不可能吗?

1 个答案:

答案 0 :(得分:0)

您使用GTM提交表单的原因有何特别原因(特别是在产品展示后)?这可能超出了它的预期用途,并且听起来太过于苛刻。

假设网站自行推送,您可以在网页脚本上的dataLayer.push之后立即提交表单,并使用GTM自己的form submit delay抓住推送,自己组装产品展示代码,然后让表格在解雇后按预期提交。应该这样做。