GTM数据层事件回调函数

GTM data layer eventCallback function

本文关键字:回调 函数 事件 数据 GTM      更新时间:2023-09-26

所以我在GTM数据层中设置了电子商务代码,但在发送到Analytics之后,我希望页面被重定向,这样我知道我应该使用eventCallback,但由于某种原因它不起作用。

<body>
<script>
    dataLayer = [{
        'transactionId': '56833',
        'transactionAffiliation': 'TestName',
        'transactionTotal': 1540.00,
        'transactionTax': 385,
        'transactionShipping': 0,
        'transactionProducts': [{
            'sku': 'FFSS44HH',
            'name': 'test',
            'category': 'TestCategory',
            'price': 1540.00,
            'quantity': 2
        }],
        'eventCallback': function() {
            document.location.href='https://www.paypal.com/something';
        }
    }];
</script>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXX');</script>
<!-- End Google Tag Manager -->

我已经在GTM中为此URL设置了电子商务解雇规则。我尝试了hitCallback和eventCallback,但重定向没有发生。。。我在这里做错了什么?

取自:http://www.simoahava.com/gtm-tips/use-eventtimeout-eventcallback/

使用eventCallback时,始终添加eventTimeout参数。前者以一个数值作为参数,表示在调用eventCallback之前等待的毫秒数。换言之,即使您的Tags暂停并且从未发出完成信号,两秒钟后也会调用eventCallback

window.dataLayer.push({
  'event' : 'processLink',
  'eventCallback' : function() {
    window.location = targetUrl
  },
  'eventTimeout' : 2000
});

我想我找到了一个解决方案,我只是在数据层的末尾添加了这个(‘event’:‘datalayerReady’):

'event' : 'datalayerReady',
'eventCallback': function() {
  document.location = "https://www.paypal.com/something";
}

这对我来说很好。

<script type="text/javascript">
if (typeof dataLayer !== "undefined") {
        dataLayer.push({
            'event': 'MyEvent',
            'eventCallback' : function() {
                window.location = 'http://stackoverflow.com/questions/26802554/gtm-data-layer-eventcallback-function';
            }
        });
    }
</script>
<noscript>
    <meta http-equiv="refresh" content="0;url=http://stackoverflow.com/questions/26802554/gtm-data-layer-eventcallback-function" />
</noscript>

德雷德,

尝试使用此:(窗口后无href。location

'eventCallback': function() {
    window.location.href = 'https://www.paypal.com/something';
}

这应该能解决问题。希望这能有所帮助,Petr