Javascript 是否可以托管Google Tag Manager';本地脚本是什么?

Javascript 是否可以托管Google Tag Manager';本地脚本是什么?,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,是否可以将Google Analytics生成的脚本,特别是Tag Manager生成的脚本托管在执行服务器上,而不是通过Google的脚本块从客户端获取它们 目标是避免任何对外部脚本的依赖 我知道谷歌不建议在本地托管analytics和tag manager,但有可能吗 据我所知,tag manager的工作原理是嵌入一个本地脚本,如下所示: <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[

是否可以将Google Analytics生成的脚本,特别是Tag Manager生成的脚本托管在执行服务器上,而不是通过Google的脚本块从客户端获取它们

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

我知道谷歌不建议在本地托管analytics和tag manager,但有可能吗

据我所知,tag manager的工作原理是嵌入一个本地脚本,如下所示:

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

(函数(w,d,s,l,i){w[l]=w[l]||【】;w[l]。推送({'gtm.start':
new Date().getTime(),事件:'gtm.js'});var f=d.getElementsByTagName[0],
j=d.createElement,dl=l!=“数据层”?“&l=”+l:“”;j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(窗口、文档、'script'、'dataLayer'、'YOUR-GTM-CODE');
当执行客户端时,它将获取一个新生成的脚本(),其中包含自上次发布以来编辑器添加到容器中的任何新标记或触发器


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

除了这些标签的开发人员之外,没有人能100%保证回答这个问题。 除了缺少版本更新之外,我将概述您可能面临的陷阱

  • 返回的脚本版本可能取决于您的浏览器。即使在您的浏览器版本上。或者别的什么。这是一个非常有效的技巧,可以最小化为特定环境提供的代码,也就是说,现代浏览器不需要返回任何多边形填充。或者为慢速移动设备提供更轻的移动优化的标签。考虑到谷歌需要提供的流量,很可能会使用这种技术。要完全消除这种情况,您需要在您的webapp将支持的所有浏览器中测试所有内容
  • 您的脚本可能会随时停止工作,而无需事先通知。或者在某些环境中停止工作。根据我在推出新版本时的经验,向后兼容性提供了一段时间。在脚本所有者确保使用过时版本的流量可以忽略不计后,它将被删除。是的,这可能需要很长时间,但仍然-你很可能迟早会在那里,你的团队中不太可能有人跟踪谷歌关于这些事情的公告和发布
  • 目标是避免任何对外部脚本的依赖 需要考虑的其他一些注意事项:

    • 这些脚本将以异步模式加载=>无页面呈现阻塞
    • 这些脚本可能已经存在于浏览器的缓存中,因为它们几乎位于Internet上的任何站点上
    • 谷歌的CDN有几十台边缘服务器,即使脚本不在缓存中,也可能很快加载

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

    是的,此解决方案将起作用。但是如果你不更新脚本,它会限制你使用所有GTM功能的能力。我可能会建议不要尝试使用你自己的本地托管版本。通过停留在特定的静态版本上,您将容易受到与该版本的
    gtm.js
    相关的任何可能的安全漏洞的攻击。如果您不信任谷歌来提供安全的JavaScript,您可能需要考虑使用不同的分析提供商。