【问题标题】:Placement of GTM container contradicts placement of GA containerGTM 容器的放置与 GA 容器的放置相矛盾
【发布时间】:2016-08-13 12:17:32
【问题描述】:

Google 支持建议将其 Google Analytics 跟踪代码放置为“before the closing </head> tag on every web page on your site you wish to track”。它还建议使用 Google 跟踪代码管理器来更有效地为动态网站实施您的分析跟踪代码。但是,它说要放置 Google 跟踪代码管理器代码“immediately after the opening <body> tag on every page on your site”,这似乎自相矛盾。

因此,如果我使用 Google 跟踪代码管理器安装 Google Analytics(正如它所建议的那样),那么 Google 跟踪代码管理器容器的正确位置是什么——在关闭 </head> 标记之前或在打开 <body> 标记之后?

【问题讨论】:

    标签: google-analytics google-tag-manager


    【解决方案1】:

    GA 和 GTM 是两种不同的实现“方法”,因此并不矛盾。正如 GTM 文档所指定的那样,您应该将 GTM 引导程序紧跟在打开的 <body> 标记之后,在任何包含标记的外部(即<div><p><section> 等) .

    这是一个很好的参考:http://www.simoahava.com/analytics/container-snippet-gtm-secrets-revealed/

    当 GTM 加载时,它将调用 analytics.js 库,并创建您的跟踪对象(模仿 GA sn-p 的前几位)。然后您可以创建您的综合浏览量标签并开始基本跟踪。

    【讨论】:

    • 是的,但是如果 GTM 加载到正文中,它会将 GA 跟踪代码放置在正文中,这与它所说的放置 GA 代码的位置相矛盾。
    • 您在哪里看到 GTM 放置了 GA 跟踪代码? AFAIK,GTM 不这样做。为了清楚起见,您是否认为 GTM 将整个 GA sn-p 放在网站上?如果您在您的网站上看到除了 GTM 之外的整个 GA sn-p,那么这意味着您实际上已经将前者放在那里(或有人这样做)。
    【解决方案2】:

    您将 GA 跟踪 sn-p 放置在何处并不重要。官方 GA 文档建议将其放置在 <head> 中的原因是因为您可以将其放置在 <head> 中并且它会起作用。并且尽可能早地在文档中包含 sn-p 是有利的,原因有两个:

    1. 所以analytics.js 脚​​本会尽快下载,以便尽快进行跟踪。 (注意:下载analytics.js所花的时间越长,访问您网站然后立即离开的人就越有可能不会被跟踪。也许你关心这个,也许你不关心——我不关心't)。
    2. 因为sn -p定义了ga() command queue function,越早定义越早可以使用。如果你只在 sn-p 本身中使用它,那么你在哪里定义它并不重要。

    另一方面,GTM sn-p 不能放在<head>中。我的意思是,它可以,但它可能会破坏。

    如果您查看 GTM sn-p,您会注意到它在 <noscript> 标记内包含一个 <iframe>。如果您在 HTML 文档的 <head> 中放置了 <iframe>,HTML 解析器将假定您忘记添加结束 </head> 标签并为您关闭标签。这意味着,如果您在头部的 GTM 标签 之后 有任何东西(例如 <link> 标签、<meta> 标签等),这些东西现在将在 <body> 中,这可能导致错误。

    话虽如此,如果您将 GTM 标签添加为 <head> 中的最后一个标签,让 HTML 解析器关闭 </head> 并过早启动 <body> 绝对不会有任何区别。

    简而言之,对于大多数用例而言,这可能无关紧要。另外,我强烈建议您 actually read the contents of the snippets 您正在添加到您的网站以了解他们的工作。它们没那么可怕。


    在评论中回答您的问题:

    是的,但如果 GTM 加载到正文中,它会将 GA 跟踪代码放置在正文中,这与它所说的放置 GA 代码的位置相矛盾

    这不是真的,也不是很重要。如果你看what the tracking script actually does,你会发现它主要只是下载analytics.js,而下载analytics.js<script>标签是否在<head><body>中是绝对无关紧要的。

    【讨论】:

    • GA 引导脚本创建了一个 Javascript 日期对象 - 我一直认为这是为了初始化页面速度报告的计时器,所以我不确定将代码放在哪里并不重要(因为放置它在底部意味着定时器在加载过程中初始化得太晚)。我错了吗?
    • @EikePierstorff 合理的假设,但是你错了。页面速度计时命中使用navigation timing API,这意味着不支持它的浏览器不会发送页面速度计时命中。目前,ga.l 仅在内部用于测量脚本加载延迟。它不包含在任何公开报告中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    相关资源
    最近更新 更多