Google跟踪代码管理器包括旧版分析(GA)和通用分析(UA)脚本

Mar*_*ude 9 javascript google-analytics google-tag-manager universal-analytics

我正在为我们的在线商店提供更好的性能和加载时间,我们在其上使用Google跟踪代码管理器.但默认情况下,包含Google代码管理器的脚本也会加载Google Analytics(旧版ga.js)和Universal Google Analytics(analytics.js).我不需要它们,但如果有必要,我只需要通用Google Analytics.

那么为什么谷歌标签管理器包括两个脚本?

作为编码简历,这是标记管理器包含:

<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=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
Run Code Online (Sandbox Code Playgroud)

-

在网络选项卡上,它显示包含,在它之后,它会自动加载两个脚本:

Google跟踪代码管理器自动收录

-

如果我分析Google gtm.js跟踪代码管理器脚本(),我会看到以下内容:

else if (!a) {
    var N = c["60"] ? ".google-analytics.com/u/ga_debug.js" : ".google-analytics.com/ga.js";
    a = !0;
    u(x("https://ssl", "http://www", N, r), O, c["66"])
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

if (!a) {
    var M = b["60"] ? "u/analytics_debug.js" : "analytics.js";
    b[""] && !b["60"] && (M = "internal/" + M);
    a = !0;
    bb(x("https:", "http:", "//www.google-analytics.com/" + M, d && d.forceSSL), function() {
        var a = $a();
        a && a.loaded ||
            b["66"]();
    }, b["66"])
}
Run Code Online (Sandbox Code Playgroud)

-

所以谷歌标签管理器包括两个脚本.我可以假设通用谷歌分析,但遗留ga.js脚本为什么?

我可以避免包含两者或仅包含旧ga.js脚本吗?

谢谢.

编辑

我开始获得赏金,因为我需要解释为什么会发生这种情况,以及是否有可能避免这种行为.

los*_*der 6

GTM自动加载这些脚本.

如果先前的标记触发未加载,则在已发布容器中定义的标记会加载相关脚本.

例如,第一个Tag仅在被触发时加载经典GA,而最后一个Tag在它触发时加载UA并在每次页面加载时触发: 在此输入图像描述

您可以通过将客户端置于预览的调试模式来确定哪些标签实际触发,如果脚本仍然令人费解,您可以导出容器并查看其定义(或自定义JS)以查找与脚本相关的标记:

在此输入图像描述

            "tagId": "7",
            "name": "classic track event",
            "type": "ga",

            "tagId": "1",
            "name": "page track",
            "type": "ua",
Run Code Online (Sandbox Code Playgroud)