【问题标题】:Duplicate dataLayer objects [GTM]重复的 dataLayer 对象 [GTM]
【发布时间】:2022-09-27 14:58:51
【问题描述】:

在特定页面(并非全部)中,我看到一些对象在 GTM dataLayer 中重复,如下所示。

这是代码的可重现版本:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'consent\', \'default\', {
    \'ad_storage\': \'denied\',
    \'analytics_storage\': \'denied\'
});
window.dataLayer.push({customerID: \"\", language:\"en\", em:\"\"});

document.addEventListener(\"DOMContentLoaded\", function(event) {
    var gtmcode = \'${gtmCode}\',
        gtmscript = \"(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\', \'\" + gtmcode + \"\');\";
        eval(gtmscript);
});

什么可能导致这个问题,这个问题与后端有关吗?

有什么帮助吗?

    标签: google-analytics google-tag-manager


    【解决方案1】:

    似乎是什么问题,它是否破坏了您的标签?

    数据层是一个对象数组并且向 dataLayer 添加具有相同键的新对象是正常的。在您的 GTM 中,您使用任一 dataLayer 变量版本 1(仅考虑当前添加的对象= 最后添加)或版本 2(将数组聚合为一个对象并更新键和值,以便仅保留这些键的最后添加值- 在您的 event=consent 示例中,仅保留第二个值)。 这确保您不必担心将对象多次添加到 dataLayer 中。

    更多关于 GTM 中的 DL 变量:https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      相关资源
      最近更新 更多