【问题标题】:Form submit after GTM dataLayer pushGTM dataLayer推送后表单提交
【发布时间】:2016-08-28 13:24:23
【问题描述】:

我正在使用 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 形式存在(不是拼写错误)

底线:如何在推送后提交表单?或者这不可能?

【问题讨论】:

  • 也许“eventCallback”不起作用,因为您只推送原始电子商务数据而没有任何“事件”?
  • 并仔细检查括号。 (我认为至少有一个 } 到很多)
  • 对,示例中的JSON肯定是无效的。

标签: javascript google-tag-manager


【解决方案1】:

您使用 GTM 提交表单的任何特定原因(尤其是在产品展示之后)?这可能超出了它的预期用途,而且听起来太老套了。

假设网站自己做push,你可以在网页脚本的dataLayer.push之后立即提交表单,使用GTM自己的form submit delay抓到push,自己组装产品印象标签,然后让表单提交发射后正如预期的那样。应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 2018-01-12
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 2010-12-19
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多