代码之家  ›  专栏  ›  技术社区  ›  Marcos Pérez Gude

谷歌标签管理器包括传统分析(GA)和通用分析(UA)脚本

  •  9
  • Marcos Pérez Gude  · 技术社区  · 7 年前

    我正在提高我们网上商店的性能和加载时间,我们在网上使用谷歌标签管理器。但是包含google tag manager的脚本也加载google分析(传统 ga.js )和通用谷歌分析( analytics.js )默认情况下。我不需要两者,但如果有必要,我只需要通用的谷歌分析。

    那么,为什么谷歌标签管理器会同时包含这两个脚本呢?

    作为编码简历,这是标签管理器包含的内容:

    <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>
    

    -

    在“网络”选项卡上,它显示包含内容,然后自动加载两个脚本:

    Google Tag Manager automatic inclusion

    -

    如果我分析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"])
    }
    

    还有这个:

    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"])
    }
    

    -

    所以google tag manager包含了这两个脚本。我可以假设通用的谷歌分析,但遗产 J.J. 脚本为什么??

    我能避免两种或唯一的遗产 J.J. 脚本?

    谢谢您。

    编辑

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

    2 回复  |  直到 7 年前
        1
  •  6
  •   lossleader    7 年前

    GTM自动加载了这两个脚本。

    您在已发布容器中定义的标记将加载相关脚本,以便在以前的标记激发尚未加载时激发该脚本。

    例如,第一个标记仅在激发时加载经典GA,而最后一个标记在激发时加载UA,并在每次页面加载时激发: enter image description here

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

    enter image description here

                "tagId": "7",
                "name": "classic track event",
                "type": "ga",
    
                "tagId": "1",
                "name": "page track",
                "type": "ua",
    
        2
  •  3
  •   Marco    7 年前

    就我所测试的,我最好的假设是它只会加载 ga.js 如果你的容器需要的话。

    我唯一能找到的就是当你使用 谷歌分析经典 “标记(最旧版本)而不是” 通用分析 “标签。

    我也尝试过创建和使用数据层变量v1,但它似乎不需要 J.J. 为了这个。

    如果你能找到更多的案例,请分享它们,因为这实际上是非常有趣的,即使GTM对网站性能几乎没有影响,也要记住。