是否可以在本地托管Google跟踪代码管理器的脚本?

And*_*sen 8 javascript google-analytics google-tag-manager

是否可以在执行服务器上托管由Google Analytics生成的脚本,尤其是Tag Manager,而不是通过Google的脚本块托管客户端?

目标是避免对外部脚本的任何依赖.

我知道谷歌建议不要在本地托管分析,也不管标记管理器,但是可以这样做吗?

据我所知,标记管理器通过嵌入本地脚本来工作:

<!-- Google Tag Manager -->
<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','YOUR-GTM-CODE');</script>
<!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)

当它执行客户端时,它会获取新生成的脚本(https://www.googletagmanager.com/gtm.js?id=YOUR-CODE),其中包含自上次发布以来编辑器已添加到容器中的所有新标记或触发器.

在此输入图像描述

除了丢失新的标签管理器功能和新生成的标签外,这还有效吗?

ffe*_*ast 6

除了这些标签的开发人员之外,没有人可以 100% 保证回答这个问题。\nI\xe2\x80\x99ll 只是概述你可能面临的陷阱

\n
    \n
  1. 返回的脚本版本可能取决于您的浏览器。即使在您的浏览器版本上。或者其他什么。这是一个非常有效的技巧,可以最大限度地减少为特定环境服务的代码 - 即您不需要为现代浏览器返回任何polyfill。或者提供更轻量级的移动优化服务为慢速移动设备鉴于 Google 需要为其提供服务的流量\xe2\x80\x99s,很可能会使用此类技术。为了完全消除这个问题,您\xe2\x80\x99需要在您的网络应用程序支持的所有浏览器中测试所有内容。
  2. \n
  3. 您的脚本可能随时停止工作,恕不另行通知。或者停止在某些环境中工作。根据我的经验,当新版本推出时,会暂时提供向后兼容性。在脚本所有者确保使用过时版本的流量可以忽略不计后,它\xe2\x80\x99s 被丢弃。是的,这可能需要很长时间,但是 - 你\xe2\x80\x99很可能迟早会在​​那里,你的团队中的任何人不太可能跟踪谷歌在此类事情上的公告和发布。
  4. \n
\n

目标是避免对外部脚本的任何依赖

\n

还有一些需要考虑的注意事项:

\n
    \n
  • 这些脚本将以异步模式加载 => 无页面渲染阻塞
  • \n
  • 这些脚本可能已经在您的浏览器\xe2\x80\x99 缓存中,因为它们\xe2\x80\x99 几乎位于 Internet 上的任何站点上
  • \n
  • Google 的 CDN有数十个边缘服务器,即使脚本不在您的缓存中,它也可能会很快加载
  • \n
\n

最后,如果确实有必要,请尽力确保它可以在所有可能的环境中工作

\n